我想向用户授予所有权限。
为此我做:
GRANT ALL PRIVILEGES TO 'carl'@'%';
现在,我想从用户carl撤消指定表的权限。我现在是否要撤销所有特权并分别授予每个表格,还是有其他方式授予所有特权并撤销特殊权限?
感谢您的帮助。
托马斯
答案 0 :(得分:0)
撤销,请使用:
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON {tbl_name | * | *.* | db_name.*}
FROM user [, user] ...
或
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
编辑: 别忘了冲洗特权:
FLUSH PRIVILEGES;
答案 1 :(得分:0)
还是有另一种方式来授予ALL PRIVILEGES并REVOKE特殊 一个?
不,没有任何捷径可以做到这一点。您必须从用户撤消ALL PRIVILEGE
,然后分别为每个表撤消GRANT
。
REVOKE ALL PRIVILEGES ON db.* FROM 'carl'@'%';
虽然可以选择使用以下脚本分别自动执行GRANTING
所有表的任务:
伪代码
1. You can list out all tables using `SHOW TABLES;`
2. for each item is on table list
3. if(item != "specific table name") then
GRANT table privilege to user
查看此类似帖子MySQL grant all privileges to database except one table