mysql权限控制一般分两个阶段
阶段1.服务器检查是否允许连接
阶段2.假如有连接权限,服务器检测是否有访问权限(库、表等的增删改查等权限)
强调:mysql5.7和之前的版本在user表字段有不同
一、创建用户
常见语法为:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; //表示创建一个允许连接的用户
假设我现在要创建一个xiangys0134的用户
mysql> CREATE USER 'xiangys0134'@'localhost' IDENTIFIED BY '123';
mysql> FLUSH PRIVILEGES;
#一般操作了user表后都要进行一次权限刷新,这是一个习惯
二、授权
常见语法为:
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
假设我要给创建的用户允许操作xiangystest数据库下所有的表
mysql> GRANT ALL ON xiangystest.* TO 'xiangys0134'@'localhost';
三、测试新用户是否有增删改查权限
# mysql -u xiangys0134 -p
四、撤销权限
常见的语法为:
REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
假设我现在要撤销用户xiangys0134连接数据库的权限
mysql> revoke all privileges on xiangystest.* from 'xiangys0134'@'localhost';
mysql> FLUSH PRIVILEGES;
五、删除用户
撤销权限和删除用户完全是两码事
常见的语法为:
DROP USER 'jeffrey'@'localhost';
mysql> DROP USER 'xiangys0134'@'localhost';
mysql> FLUSH PRIVILEGES;