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语句使系统 Management 员可以撤消 MySQL 帐户的特权。

有关特权级别,允许的* priv_type priv_level object_type *值以及用于指定用户和密码的语法的详细信息,请参见第 13.7.1.4 节“ GRANT 语句”

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

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

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

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

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

要撤消所有特权,请使用第二种语法,该语法将删除一个或多个指定用户的所有全局,数据库,table,列和例程特权:

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

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

要撤消特权的用户帐户必须存在,但是当前不需要向其授予要撤消的特权。

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

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

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