求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


AI 智能化软件测试方法与实践
5月23-24日 上海+在线



人工智能.机器学习TensorFlow
5月22-23日 北京



图数据库与知识图谱
5月22-23日 北京
 
 

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语句)
797 次浏览
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元





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



797 次浏览
3次
 捐助