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 removes privileges, but does not remove rows from the mysql.user system table. To remove a user account entirely, use DROP USER. See Section 13.7.1.3, “DROP USER Statement”.

If the grant tables hold privilege rows that contain mixed-case database or table names and the lower_case_table_names system variable is set to a nonzero value, REVOKE cannot be used to revoke these privileges. It is necessary to manipulate the grant tables directly. (GRANT does not create such rows when lower_case_table_names is set, but such rows might have been created prior to setting the variable.)

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