增删改查用户授权
-
授权
GRANT 权限 ON 数据库名.表名 TO '用户名'@'主机IP地址'
PS: 权限指SELECT , INSERT , UPDATE 等.如果要授予所有的权限,则使用all privileges;
如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
操作完成之后,不会立即生效,要想立即生效,需输入 flush privileges,将数据读取到内存中,从而立即生效
授权目标数据库的各类方式:
授权用户的各类方式:
常见的例子:
-
创建用户同时授权
grant 权限 on 数据库名.表名 to 用户名@IP地址 identified by '密码';
flush privileges;
PS:必须执行flush privileges; 否则登录时提示:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES )
-
查看用户的授权
show grants for 用户名@IP地址;
PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干
-
取消用户权限
REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'IP地址';
例子: REVOKE SELECT ON db1.* FROM '用户名'@'IP';
PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

浙公网安备 33010602011771号