6.3.2 添加用户账户
---------------------
有2种方法可以用来添加用户账户;
1、使用账户管理语句,例如:CREATE USER 和 GRANT; 这种方式会使得mysql服务器对底层的授权表做相应的修改;
2、使用INSERT UPDATE DELETE 等语句直接操作授权表;
前一种方法更加简介、出错更少;
不鼓励直接操作授权表;
还有其他的添加用户账户的选项:使用 GUI tool MySQL Workbench或者第三方的工具(如:phpadmin)
下面是一个例子:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';
解释:
1、创建了2个名为monty密码为some_pass的用户,他们两个都是超级用户,拥有所有权限,可以做任何事情;
'monty'@'localhost'这个用户只能在本机使用;
'monty'@'%'这个用户在“主机”这个部分使用了'%',因此他可以连接到任何机器;
(如果本机-localhost上有匿名用户的话,'monty'@'localhost'账户是必要的;
如果没有'monty'@'localhost'账户,当使用monty在本机进行连接的时候,匿名用户回取得优先权,并且monty会被当作匿名用户)
2、'admin'@'localhost'账户的密码是admin_pass。这个账户只能使用admin来连接本机;
他被授予RELOAD 和PROCESS权限;这些权限让admin用户能执行mysqladmin reload、mysqladmin refresh、mysqladmin porcesslist 以及mysqladmin flush-xxx等命令;
没有授予任何访问数据库的权限;我们可以使用grant语句添加这些权限;
3、'dummy'@'localhost'用户没有密码(不安全,不推荐);这个账户只能连接本机;没有任何特权;
可以使用下面的命令查看某个用户的特权;
mysql> SHOW GRANTS FOR 'admin'@'localhost';
可以使用下面的命令查看某个用户的非特权属性:
mysql> SHOW CREATE USER 'admin'@'localhost'\G
mysql> CREATE USER 'custom'@'localhost' IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO 'custom'@'localhost';
mysql> CREATE USER 'custom'@'host47.example.com' IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> TO 'custom'@'host47.example.com';
mysql> CREATE USER 'custom'@'%.example.com' IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO 'custom'@'%.example.com';
6.3.2 删除用户账户
---------------------
mysql> DROP USER 'jeffrey'@'localhost';
还没有评论,来说两句吧...