MySQL 权限撤销
简介:在本教程中,您将学习如何使用MySQL REVOKE语句来撤销MySQL帐户的权限。 我们强烈建议您按照下面的教程更好地了解MySQL REVOKE的工作原理:
MySQL REVOKE语句简介
要从用户帐户撤消权限,请使用MySQLREVOKE
语句。MySQL允许您撤消用户的一项或多项权限或所有权限。
以下说明了从用户撤消特定权限的语法:
REVOKE privilege_type [(column_list)] [, priv_type [(column_list)]]... ON [object_type] privilege_level FROM user [, user]...让我们更详细地研究MySQL REVOKE语句。
- 首先,在
REVOKE
关键字后面指定要从用户撤消的权限列表。您需要用逗号分隔权限。 - 其次,指定在
ON
子句中撤销特权的特权级别。 - 第三,指定要撤消
FROM
子句中的权限的用户帐户。
GRANT OPTION
权限以及要撤消的权限。
要撤消用户的所有权限,请使用以下形式的REVOKE语句:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user]…要执行
REVOKE ALL
语句,您必须具有mysql数据库的全局CREATE USER
特权或UPDATE
特权。
要撤消代理用户,请使用以下REVOKE PROXY
命令:
REVOKE PROXY ON user FROM user [, user]...代理用户是MySQL中可以模仿其他用户的有效用户,因此,代理用户具有其模拟的用户的所有权限。 在撤消用户权限之前,最好使用以下
SHOW GRANTS
语句检查用户是否具有权限:
SHOW GRANTS FOR user;
MySQL REVOKE示例
假设rfc
用户对示例数据库具有SELECT,UPDATE和DELETE权限。如果你想撤销和来自特权用户,你可以按照如下操作步骤:mysqldemo UPDATE
DELETE
rfc
首先,检查用户使用SHOW GRANTS
语句的权限:
SHOW GRANTS FOR rfc;
GRANT SELECT, UPDATE, DELETE ON 'mysqldemo'.* TO 'rfc'@'%';请注意,并按照 授予的特权用户 的教程,你可以创建RFC帐户,并授予
SELECT
,UPDATE
以及DELETE
权限的,如下所示:
CREATE USER IF EXISTS rfc IDENTIFIED BY 'dolphin'; GRANT SELECT, UPDATE, DELETE ON mysqldemo.* TO rfc;其次,你可以撤销
UPDATE
,并DELETE
从特权 rfc
用户:
REVOKE UPDATE, DELETE ON mysqldemo.* FROM rfc;第三,您可以
rfc
使用SHOW GRANTS
命令再次检查用户的权限。
SHOW GRANTS FOR 'rfc'@'localhost';
GRANT SELECT ON 'mysqldemo'.* TO 'rfc'@'%';如果要撤消
rfc
用户的所有权限,请执行以下命令:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM rfc;如果
rfc
再次检查用户的权限,您将看到 rfc
用户没有权限。
SHOW GRANTS FOR rfc;
GRANT USAGE ON *.* TO 'rfc'@'%';
注意:
USAGE
权限意味着MySQL中没有权限。
当MySQL REVOKE命令生效时
MySQL REVOKE语句的效果取决于权限级别,如下所示:- 对全局特权所做的更改仅在客户端在后续会话中连接到MySQL时生效。更改不会应用于所有当前连接的用户。
- 在下一个
USE
语句之后应用数据库权限的更改。 - 表和列权限的更改将应用于更改后发出的所有查询。