【MySQL 8.0】角色(一)创建角色、角色赋权限
MySQL8.0开始,提供了角色(角色:权限的集合)
一:创建角色(与Oracle创建角色相同)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 语法: CREATE ROLE [IF NOT EXISTS] role [, role ] ... # 创建两个角色r1,r2 mysql> create role 'r1','r2'; Query OK, 0 rows affected (0.00 sec) mysql> ## 查看已经创建的角色 ## 角色也存放在user表中,其实,角色很用户只是逻辑上做了区分,给我感觉,角色就是一个没有密码的用户 ## 我们看默认创建角色是的host是%,当然,创建角色也可以指定IP或localhost mysql> select host,user,authentication_string from mysql.user where user in ('r1','r2'); +------+------+-----------------------+ | host | user | authentication_string | +------+------+-----------------------+ | % | r1 | | | % | r2 | | +------+------+-----------------------+ 2 rows in set (0.00 sec) mysql> |
二:给角色授权
1 2 3 4 5 6 7 |
mysql> grant select,insert,update,delete,create,drop on am.* to 'r1'; Query OK, 0 rows affected (0.00 sec) mysql> grant select,insert,update,delete on am.* to 'r2' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) mysql> |
WITH GRANT OPTION子句的意思是,拥有改角色的用户,可以将该角色的权限授权给其他角色或用户。也就是说,没有WITH GRANT OPTION子句,那么,该角色的权限只允许被授权的用户自己使用。