一、查看权限
1,查看系统所有权限
mysql> show privileges;
权限字段介绍
privileges #权限名称
context #对象,表示可以对数据库,那些资源、进行哪些操作;
comment #描述,备注解释说明;
Grant option权限说明:这个权限只能给root@''localhost'',不能授权给其他用户;
2,查看用户的权限
mysql> show grants for xinjizhiwa@'10.0.0.%';
+-----------------------------------------------+
| Grants for xinjizhiwa@10.0.0.% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `xinjizhiwa`@`10.0.0.%` |
+-----------------------------------------------+
1 row in set (0.01 sec)
二、授权权限给用户
1,授权所有权限给用户
· 未授权前查看用户权限
· 给用户授权
所有权限==>针对所有库所有表;
mysql> grant all on *.* to xinjizhiwa@'10.0.0.%';
Query OK, 0 rows affected (0.02 sec)
· 授权后查看用户权限
2,回收用户权限
mysql> revoke all on *.* from xinjizhiwa@'10.0.0.%';
Query OK, 0 rows affected (0.02 sec)
三、权限信息存储位置(了解)
1,全局权限表: user表;
用户的全局权限设置:select on *.*
2,数据库权限表:db表;
用户针对某个库权限信息设置: insert on blog.*
3,数据表权限表:tables_priv表;
用户针对某个表的权限信息设置: update on blog.stu
四、权限角色划分
MySQL8.0版本新功能;
1,创建角色role
创建两个角色“开发”和“管理员”
mysql> create role 'dev','admin';
Query OK, 0 rows affected (0.01 sec)
2,给角色授权
mysql> grant select,insert on *.* to dev;
Query OK, 0 rows affected (0.02 sec)
3,创建用户
mysql> create user xin@'%' identified by '1';
Query OK, 0 rows affected (0.01 sec)
4,授权角色给用户
mysql> grant dev to xin@'%';
Query OK, 0 rows affected (0.01 sec)
5,查看用户是否有角色的权限
mysql> show grants for xin@'%';
+-----------------------------------------------+
| Grants for xin@% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `xin`@`%` |
| GRANT `dev`@`%` TO `xinjizhiwa`@`10.0.0.%` |
+-----------------------------------------------+
6,用户自己登录,并激活角色
记住,一定是,用户自己来激活哦;
mysql> set default role all to xin@'%';
Query OK, 0 rows affected (0.01 sec)
注意:测试时,看自己的用户白名单,是否是本地,如果不是,请指定主机核端口,链接测试;