MySQL动态和静态的特权当组织事情有助于简化生活。

前一篇文章,我们开始探索与静态动态权限和互动的。我们也看到了如何从一个DBA帐户删除超级特权。

我们所做的是减法。但在现实生活中,我们应该表现不同。我们应该只有真正需要的是什么帐户添加到正常工作。

添加权限,并为每个用户是有问题他们可能的交互,也容易产生错误。

相反,我们可以使用角色组,分配和撤销正确的特权更容易的方式。

这是在MySQL的出现变得更重要的动态权限。

我们应该正确地使用角色吗?首先设计。

第一步是确定的角色,在这个过程中我们需要保持一个基本的原则,使它简单,因此让我们尽量避免太多的角色,或与太多的跨职能权限的角色。

我的建议:

  • DBA(主数据库谁能做)
  • MaintenanceAdmin(DBAminions they can perform only some action on the server, and server only)
  • UserAdmin(可以创建用户分配拨款等等)
  • raybet雷竞技竞猜在线官网MonitorUser(从performance_schema看到所有过程和阅读)
  • DBManager(可以添加/删除/修改/表/模式触发/视图/程序等)
  • DBDesigner(可以修改特定对象主要是明确鉴定模式/表)
  • ReplicationAdmin(可以添加/修改/删除启动/停止复制也GR)
  • BackupAdmin(可以备份,不能恢复)

我们有八个管理角色,他们应该覆盖所有我们需要管理任务。

现在让我们创建:

让我们检查一个接一个的角色,看看我们需要分配权限。

我们的测试用户没有任何格兰特:

DBA

好吧,你可能会说. .容易格兰特。

错了!如已经在前一篇文章中指出,这样做也会分配超级,弃用从MySQL 8.0.x。让我们从右脚开始,只添加我们需要:

格兰特应该一模一样但是没有超级。

将角色分配给我们的测试用户:

现在我们的用户有:

正确的你现在看到DBA格兰特但这不是活跃:

激活一个角色你需要明确:

并让用户重新连接!

一旦激活作用我们还可以使用:

检查哪些特权现在积极为一个特定的用户。

我们也可以控制哪些角色是用户查询表mysql.default_roles活跃。

把积极的作用:

不管怎样,现在我们有DBA角色可供所有DBA和如果我们需要改变一些我们能做的只是在这个角色,而不是每一个用户。

MaintenanceAdmin

UserAdmin

raybet雷竞技竞猜在线官网MonitorUser

DBManager

DBDesigner

ReplicationAdmin

BackupAdmin

一旦所有我们的角色,我们可以测试它们。例如,我们可以检查ReplicationAdmin检查我们组二进制日志和停止/启动复制(或正常复制):

如果创建并分配角色并不活跃。现在让我们为用户启用角色:

记得重新连接!

这些是活跃的特权:

结论

使用角色可以让我们在一个地方修改所需的特权,同时将使我们能够控制可能扩散的动态权限由于使用组件或插件,大大减少拥有多个权限来源的复杂性。

角色通常用于最常见的数据库和MySQL实现他们很晚了。但使用角色是自然进化的我们应该如何处理用户授予从小型中型/大型平台。

我们分配单独的用户权限的时候走了,欢迎来到2021 MySQLers !

为了你的方便,我分发一个简单SQL与所有命令创建文件在本文中描述的角色。

引用

https://dev.mysql.com/doc/refman/8.0/en/roles.html

一些查询有关MySQL的角色

MySQL 8.0:清单的角色

角色和Graphml MySQL 8.0

雷竞技下载官网MySQL Percona分布是最完整的,稳定的,可伸缩的,和安全,开源MySQL解决方案,提供企业级的数据库环境最关键业务应用程序…和它的免费使用!

raybetapp2下载

订阅
通知的
客人

0评论
内联反馈
查看所有评论