开门见山
前文讲述了MySQL用户管理之认证,当某客户端成功认证,接下来的操作就需要进行权限验证,如验证用户的select、insert、update等操作权限,shutdown、process、file等管理权限等。
MySQL授权杂货
授权层级
MySQL支持global、database、table、column等不同层级授权。同时,还可以对用户的routine(procedures & functions)等权限进行控制,具体控制项可以查看mysql.user表的列信息。如下:
管理权限
MySQL的主要管理选项有:FILE、PROCESS:、SUPER、ALL等。
FILE:允许用户读写服务器上的文件;
PROCESS:允许用户执行show PROCESSLIST命令查看所有连接的客户端;
SUPER: 允许用户kill掉其他客户端的连接;
ALL:允许所有权限, 除了给其他用户授权;
注意:
给其他用户授权的权限,需要在对此用户本身授权时加上WITH GRANT OPTION子句。如下,笔者用debian-sys-maint用户登录(密码在/etc/mysql/debian.cnf文件中,root用户本身没有grant权限),并创建一个super用户,赋予WITH GRANT OPTION选项。后面就可以用super给其他用户授权了。
- root用户给test1用户授权,失败---因为root用户本身没有grant权限;
- debian-s