创建角色,Oracle很早就支持创建角色的功能了,而MySQL5.7版本依然尚不支持。目前,只有MariaDB10.0/10.1版本里支持创建角色这项功能。
Part2:为什么我们需要角色
1.在实际工作中,有大量的用户其权限是一样的,比如只读权限。如果每次在创建完用户后,DBA再去对每个用户去分别授权,那会是一件非常麻烦的事情。
2.使用role的好处是DBA只需对权限种类进行划分,然后将不同权限授予不同的role,而不必再去关注到底有哪些具体的用户。
3.当角色权限发生变化时,比如添加成员或者删除成员,系统管理员都无需执行任何关于权限的操作。
Part3:Roles Overview
Part4:MariaDB的角色使用方式
1)创建一个dbuser角色。
2)给dbuser角色授予select/insert/update/delete权限。
3)赋予helei@'%'用户dbuser角色,并创建密码 MANAGER 如下图所示:
4)对helei用户设置dbuser为默认角色并开启dbuser角色,如下图所示:
5)这里可以看到,由于只授权helei用户dbuser角色,而dbuser角色并不具备create权限,因此在建表时会抛出create command denied错误。
——总结——
角色创建功能,大大降低了维护用户权限的复杂度,也同时期待MySQL能够尽早支持该功能。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。