跳转到主要内容
撤销用户或角色的特权。

语法

撤销用户的特权
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 之外所有数据库执行 SELECT 的特权:
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;
原文
最后修改于 2026年6月10日