
数库信息培训课件
数往知来
/
库藏乾坤
/
务实高效
/
成就所托 第- 2 -页
,
共 8页
安装中避免未转义的通配符字符。
有关更多信息,包括有关移除部分撤销的说明,请参阅“使用部分撤销进行权限限制”第 6.2.12 节。
在 MySQL 8.0.16 之 前 , 不 可 能 授 予 适 用 于 全 局 但 排 除 某 些 模 式 的 权 限 。 从 MySQL 8.0.16 开 始 , 如 果 启 用 了
partial_revokes 系统变量,这就成为可能。具体来说,对于在全局级别具有权限的用户,partial_revokes 允许撤销特定
模式的权限,同时保留其他模式的权限。因此,强加的权限限制可用于管理具有全局权限但不应被允许访问某些模式的
帐户。例如,可以允许一个帐户修改除了 mysql 系统模式中的表之外的任何表。
• 使用部分撤销
• 部分撤销与显式模式授权的比较
• 禁用部分撤销
• 部分撤销和复制
注意
出于简洁起见,此处显示的 CREATE USER 语句不包括密码。
对于生产使用,请始终分配帐户密码。
Using Partial Revokes
partial_revokes 系统变量控制着是否可以对帐户施加权限限制。默认情况下,partial_revokes 被禁用,尝试部分撤销全
局权限将产生错误:
mysql> CREATE USER u1;
mysql> GRANT SELECT, INSERT ON *.* TO u1;
mysql> REVOKE INSERT ON world.* FROM u1;
ERROR 1141 (42000): There is no such grant defined for user 'u1' on host '%'
要允许 REVOKE 操作,请启用 partial_revokes:
SET PERSIST partial_revokes = ON;
SET PERSIST 为正在运行的 MySQL 实例设置一个值。它还保存该值,导致其延续到后续的服务器重启。要更改正在运行
的 MySQL 实例的值,而不使其延续到后续的重启,请使用 GLOBAL 关键字而不是 PERSIST。请参见第 13.7.6.1 节,“变
量赋值的 SET 语法”。
启用 partial_revokes 后,部分撤销操作成功:
mysql> REVOKE INSERT ON world.* FROM u1;
mysql> SHOW GRANTS FOR u1;
+------------------------------------------+
| Grants for u1@% |
+------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO `u1`@`%` |
| REVOKE INSERT ON `world`.* FROM `u1`@`%` |
+------------------------------------------+
SHOW GRANTS 列出部分撤销作为 REVOKE 语句在其输出中。结果表明,u1 具有全局的 SELECT 和 INSERT 权限,只是
对于 world 模式中的表无法执行 INSERT 操作。也就是说,u1 对 world 表的访问是只读的。
服务器在 mysql.user 系统表中记录通过部分撤销实施的权限限制。如果一个帐户有部分撤销,其 User_attributes 列的
6.2.12 Privilege Restriction Using Partial Revokes
文档被以下合辑收录
评论