Documentation Home

13.7.1.6 REVOKE 语句

REVOKE
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    FROM user [, user] ...

REVOKE ALL [PRIVILEGES], GRANT OPTION
    FROM user [, user] ...

REVOKE PROXY ON user
    FROM user [, user] ...

REVOKE语句使系统管理员能够撤销 MySQL 帐户的权限。

有关特权存在的级别、允许priv_typepriv_level、 和 object_type值以及指定用户和密码的语法的详细信息,请参阅第 13.7.1.4 节,“GRANT 语句”

read_only启用系统变量 时,除了以下讨论中描述的任何其他所需特权之外,还需要特权 REVOKESUPER

每个帐户名都使用 第 6.2.4 节“指定帐户名”中描述的格式。例如:

REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';

帐户名的主机名部分(如果省略)默认为 '%'.

要使用第一种REVOKE语法,您必须拥有GRANT OPTION 特权,并且必须拥有要撤销的特权。

要撤销所有权限,请使用第二种语法,它会删除指定用户的所有全局、数据库、表、列和例程权限:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

要使用此REVOKE语法,您必须具有全局CREATE USER 权限或系统数据库 UPDATE 权限。mysql

要撤销权限的用户帐户必须存在,但要撤销的权限不需要当前授予它们。

REVOKE删除权限,但不会从mysql.user 系统表中删除行。要完全删除用户帐户,请使用 DROP USER。请参阅 第 13.7.1.3 节,“DROP USER 语句”

如果授权表包含包含大小写混合的数据库或表名称的特权行,并且 lower_case_table_names系统变量设置为非零值, REVOKE则不能用于撤销这些特权。有必要直接操作授权表。(设置GRANT时不会创建此类行 lower_case_table_names,但此类行可能在设置变量之前已创建。)

mysql 程序成功执行时,REVOKE响应为 Query OK, 0 rows affected. 要确定操作后保留的特权,请使用 SHOW GRANTS。请参阅 第 13.7.5.22 节,“SHOW GRANTS 语句”