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_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
特权,并且必须拥有要撤销的特权。
要撤销所有权限,请使用第二种语法,它会删除指定用户的所有全局、数据库、表、列和例程权限:
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 语句”。