part one:用户管理基础
(1)mysql的用户及用户信息保存在表mysql.user中;
(2)在mysql中创建用户:
CREATE USER user_name IDENTIFIED BY ‘user_password’;
注意:这时创建的用户还不能链接数据库,因为还没有给予链接权限。
(3)在mysql中删除用户:
DROP USER user_name;
注意:DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。
一旦对话被关闭用户也被取消,此用户再次试图登录时将会失败。这是有意设计的。
(4)重命名用户:
RENAME USER user_name TO NEW_USER_NAME;
(5)重置用户密码:
- 更改当前用户的密码:
SET PASSWORD = PASSWORD(‘new_password’);
- 更改其他用户密码:
SET PASSWORD FOR user_name = PASSWORD('new_password');
part two:权限管理的基本操作
(1)授予的权限可以分为多个层级:
- 全局层级
- 数据库层级
- 表层级
- 列层级
- 子程序层级
(2)MySQL使用GRANT和REVOKE命令授予或撤销针对一个用户的权限。
(3)GRANT命令:
全局级授权:
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' IDENTIFIED BY 'user_password';
数据库级授权:
GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'%' IDENTIFIED BY 'user_password';
(4)REVOKE命令:
撤销权限:
REVOKE ALL PRIVILEGES , GRANT OPTION FROM nash_su;
part three:链接管理的基本操作
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' IDENTIFIED BY 'user_password';
赋予了链接权限后刷新权限表:
FLUSH PRIVILEGES;
这里的‘%’是指从哪台计算机登陆数据库:
- 所有主机:‘%’
- 精确的主机名或IP地址:‘www.redhat.com’或‘60.28.177.214’
- 使用‘*’通配符:*.redhat.com
- 指定一个网段:192.168.1.0/255.255.255.0
阶段1:连接验证
当你试图连接MySQL服务器时,服务器基于你的身份以及你是否能通过供应正确的密码验证身份来接受或拒绝连接。如果不是,服务器完全拒绝你的访问,否则,服务器接受连接,然后进入阶段2并且等待请求。
(1)你的身份基于2个信息:
你从那个主机连接
你的MySQL用户名
(2)在user表Host值的指定方法:
Host值可以是主机名或IP号,或'localhost'指出本地主机。
你可以在Host列值使用通配符字符“%”和“_”。
阶段2:请求核实
一旦你建立了连接,服务器进入访问控制的阶段2。
对在此连接上进来的每个请求,服务器检查你想执行什么操作,并检查相应的权限是否具备。
注意:root用户默认不能远程登陆数据库,需要更改权限,如:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'user_password';
为数据库安全性考虑,不推荐用root远程登陆数据库。