求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

MySQL撤销权限(Revote语句)
736 次浏览
3次  

在本教程中,您将学习如何使用MySQL中的REVOKE语句从MySQL帐户中撤销权限。

我们强烈建议您遵循以下教程,以更好地了解MySQL REVOKE语句的工作原理:

MySQL访问控制系统入门

如何创建一个MySQL用户

如何授予MySQL用户权限

MySQL REVOKE语句简介

要从用户帐户撤销权限,您可以使用MySQL REVOKE语句。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语句,必须具有全局CREATE USER权限或mysql数据库的UPDATE权限。

要撤销代理用户,请使用REVOKE PROXY命令,如下所示:

REVOKE PROXY ON user FROM user [, user]...

代理用户是MySQL中有效的用户,可以模拟(假冒)另一个用户,因此代理用户拥有其模拟的用户的所有权限。

在撤消用户权限之前,最好通过使用SHOW GRANTS语句来检查用户拥有的权限的情况,如下所示:

SHOW GRANTS FOR user;

MySQL REVOKE示例

假设rfc用户对示例数据库(yiibaidb)具有SELECT,UPDATE和DELETE权限。现在,如果要从rfc用户撤销UPDATE和DELETE权限,可以按如下方式执行:

首先,使用SHOW GRANTS语句检查用户的权限:

-- 查看用户的当前权限
SHOW GRANTS FOR rfc;

-- 授予用户权限
GRANT SELECT, UPDATE, DELETE ON `yiibaidb`.* TO 'rfc'@'%';

执行上面查询语句,得到以下结果 -

+-----------------------------------------------------------+
| Grants for rfc@% |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'rfc'@'%' |
| GRANT SELECT, UPDATE, DELETE ON `yiibaidb`.* TO 'rfc'@'%' |
+-----------------------------------------------------------+

请注意,确实按照授予用户权限的教程文章学习并操作后,您可以创建rfc帐户并向其授予SELECT,UPDATE和DELETE特权,如下所示:

-- 创建用户
CREATE USER IF NOT EXISTS rfc IDENTIFIED BY 'newpasswd';

-- 授予用户权限
GRANT SELECT, UPDATE, DELETE ON yiibaidb.* TO rfc;

其次,从rfc用户撤销UPDATE和DELETE权限,参考以下语句:

REVOKE UPDATE, DELETE ON yiibaidb.* FROM rfc;

第三,可以使用SHOW GRANTS命令再次查看rfc用户的权限。

-- 查看用户权限
SHOW GRANTS FOR 'rfc'@'%';
-- 授予用户权限
GRANT SELECT ON `yiibaidb`.* 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语句之后生效。

表和列权限的更改将在进行更改之后发出的所有查询时生效。

在本教程中,您学习了如何使用MySQL REVOKE语句来撤销MySQL用户的权限。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



736 次浏览
3次
 捐助