MySQL REVOKE 语句

REVOKE 命令用于撤销先前授予用户的权限。
它的语法是:

REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
       ON {tbl_name | * | *.* | db_name.*}
       FROM user_name [, user_name ...]

与 GRANT 命令的情况一样,也许真正了解它的操作方式的最好方法是尝试几个示例。
假设管理员想要取消用户 widgetAdmin 的 DELETE 权限。
这是使用以下命令完成的:

mysql>REVOKE DELETE ON widgets.*
    ->FROM widgetAdmin@localhost;

要记住的一点是,虽然 REVOKE 可以删除用户的所有权限(包括连接权限),但它不会从权限表中明确删除该用户。
为了说明这一点,请考虑以下命令:

mysql>REVOKE ALL PRIVILEGES ON widgets.*
    ->FROM widgetAdmin@localhost;

虽然这会导致用户 widgetAdmin 的所有权限被撤销,但它不会从权限表中删除相关行!如果打算从数据库中完全删除用户,则必须使用 delete 命令删除行,如下所示:

mysql>DELETE FROM user WHERE user = 'widgetAdmin';
Query OK, 1 row affected (0.00 sec)
mysql>flush privileges;

这将有效地拒绝该用户连接到 MySQL 服务器。
请注意,如果管理员希望从权限表中完全删除用户,则必须使用 DELETE 显式删除用户表中的行。

日期:2020-09-17 00:11:13 来源:oir作者:oir