MySQL8.0功能详解-角色【转】
角色功能对于Oracle的DBA来说,不是什么特殊功能,但对于MySQL而言,这是一个人心所盼的功能。
MySQL的DBA现在可以创建角色、对其赋予权限,并将它们授予用户。使用角色可以大量减轻DBA的工作,可以轻松管理每个团队、用户的各种复杂的权限。
下面详细介绍一下MySQL中如何使用角色:
创建删除角色:
创建角色使用 “CREATE ROLE”语句,假设我们为应用程序创建只读角色、读写角色和开发人员角色。
角色的名称与MySQL的账户名称非常相似,由用户名+主机名称构成,如果省略主机名称则默认为'%'。
删除角色使用:
赋予/撤销权限:
角色创建以后,需要对其赋予相应的权限。使用下列语句分别对角色赋予全部权限、只读权限和读写权限:
赋予角色权限后,将相应的角色授予用户。例如:
创建用户
授予角色权限
撤销用户的角色和撤销角色的权限:
查看角色的权限:
当角色授予用户后,我们可以查看用户拥有的权限,执行:
是否注意到,执行show grants语句只是看到了用户被赋予了角色,该角色具有哪些权限该如何查看呢?执行下面的语句可以确认相关内容:
强制性角色:
MySQL可以通过mandatory_roles 变量来配置强制性角色。使用强制性角色,服务器会为全部的账户默认赋予该角色,而不需要显示执行赋予角色。可以使用my.cnf文件或者使用SET PERSIST进行配置,例如:
[mysqld]
mandatory_roles='role1,role2@localhost'
SET PERSIST mandatory_roles = 'role1,role2@localhost;
需要注意的是,配置在mandatory_roles中的角色不能撤销其权限,也不能删除。
角色自动激活:
赋予用户帐户的角色在帐户会话中可以处于活动状态,也可以处于非活动状态。如果赋予的角色在会话中处于活动状态,则具有相应的权限,反之则没有。要确定当前会话中哪些角色处于活动状态,使用CURRENT_ROLE()函数。
默认情况下,向帐户赋予角色或在mandatory_roles系统变量值中为其命名后,该角色在帐户会话中不会变为活动状态。要指定每次用户连接到服务器,进行身份验证时激活角色,请使用 SET DEFAULT ROLE:
之后,用app_dev_user登陆服务器,查看当前角色权限:
要在用户连接到服务器时,使所有显式赋予的角色和强制角色自动激活,请启用activate_all_roles_on_login 系统变量。默认情况下,禁用自动角色激活。
关于MySQL中使用角色就介绍到这里,更为详尽的内容请访问官网手册
https://dev.mysql.com/doc/refman/8.0/en/roles.html
转自
MySQL8功能详解——角色 https://mp.weixin.qq.com/s/2kCC7Ab95sJhnIApnTG9vw
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-02-06 ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed【转】