MySQL 8.0.16新特性:SYSTEM_USER动态权限(英译中文)

本文介绍了MySQL 8.0.16的新特性SYSTEM_USER权限,详细阐述了其工作原理、如何通过角色授予权限、何时可以授予或撤销,以及与SYSTEM_USER()函数和操作系统用户的关系。通过实例展示了具有SYSTEM_USER权限的用户如何影响其他用户修改,以及在不同权限场景下的行为。
摘要由CSDN通过智能技术生成

文本使用翻译工具协助翻译,存在明显机翻味,同时加入了我的一些实际操作见解。

  翻译这篇文章,源于我在最新(8.0.16)版本的MySQL使用root用户创建用户并授予所有(all)权限后,出现无法通过revoke all撤销新建用户的所有权限,后在官网得知这是8.0.16新出的一个权限,又由于本人捉急的英语水平和直接用翻译页面的错误翻译,于是尝试手动调整翻译内容,便于理解,便有了本文,欢迎大佬指出、完善翻译。


本系列共三部分:

  若要修改用户,必须在MySQL架构上具有CREATE USER权限或UPDATE权限。在MySQL 8.0.16中我们添加了SYSTEM_USER动态权限,以保护用户不受第一种情况的影响:其他拥有CREATE USER权限的用户进行修改。具有SYSTEM_USER权限的帐户不能被没有SYSTEM_USER的帐户修改,即使该帐户具有CREATE USER权限

  在本文中,我们将讨论第一个用例。下一篇博客文章(原文)将介绍如何防止用户被MySQL模式上具有UPDATE权限的帐户所修改

SYSTEM_USER权限是如何工作的?

  SYSTEM_USER权限强制执行这样的约定:如果要修改授予SYSTEM_USER权限的用户,那么除了修改用户所需的权限外,还需要具有SYSTEM_USER权限。换句话说,拥有SYSTEM_USER和CREATE权限的用户可以修改拥有SYSTEM_USER权限的用户

下面我们通过例子更好的理解:

使用root用户,创建两个用户,一个具有CREATE USER权限,另一个具有SYSTEM_USER权限

在实际操作中,在不改动配置下,不能创建空密码的用户:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,但这并不影响教程所要表达的意思

mysql> CREATE USER admin_user, elite_user; #创建admin_user用户和elite_user用户
Query OK, 0 rows affected (0.01 sec)
 
mysql> GRANT CREATE USER ON *.* TO admin_user; #赋予admin_user用户CREATE USER权限
Query OK, 0 rows affected (0.01 sec)
 
mysql> GRANT SYSTEM_USER ON *.* TO elite_user; #赋予elite_user用户SYSTEM_USER权限
Query OK, 0 rows affected (0.00 sec)
复制代码

尝试在admin_user用户会话下更改elite_user用户的密码

mysql> SELECT USER();
+----------------------+
| USER()               |
+----------------------+
| admin_user@localhost |
+----------------------+
1 row i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值