REVOKE 语句
撤销用户或角色的权限。
语法
撤销用户权限
REVOKE [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} FROM {user | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user | CURRENT_USER} [,...]
撤销用户角色
REVOKE [ON CLUSTER cluster_name] [ADMIN OPTION FOR] role [,...] FROM {user | role | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user_name | role_name | CURRENT_USER} [,...]
描述
要撤销某些权限,您可以使用比您计划撤销的范围更广的权限。例如,如果用户拥有 SELECT (x,y)
权限,管理员可以执行 REVOKE SELECT(x,y) ...
,或者 REVOKE SELECT * ...
,甚至 REVOKE ALL PRIVILEGES ...
查询来撤销此权限。
部分撤销
您可以撤销部分权限。例如,如果用户拥有 SELECT *.*
权限,您可以从中撤销从某些表或数据库读取数据的权限。
示例
授予 john
用户账户从所有数据库中选择的权限,但 accounts
数据库除外
GRANT SELECT ON *.* TO john;
REVOKE SELECT ON accounts.* FROM john;
授予 mira
用户账户从 accounts.staff
表的所有列中选择的权限,但 wage
列除外。
GRANT SELECT ON accounts.staff TO mira;
REVOKE SELECT(wage) ON accounts.staff FROM mira;