1 用户管理
1.1 创建用户
- create user ‘name’@‘xxx’ identified by ‘password’;
- xxx指登录的权限,如’192.168.1.%'等
创建之后会在mysql这个数据库中的user表里面生成 - 此时默认的该用户权限仅有登录的权限
1.2 删除用户
- drop user ‘name’; (默认删除host为 % 的用户)
1.3 修改当前用户密码
- alter user user() identified by ‘new_password’;
- user()是一个函数
1.4 修改其他用户密码
- alter user ‘user_name’@‘xxx’ identified by ‘new_password’;
- xxx同上
2 权限管理
2.1 最小原则
2.2授予权限
2.2.1 通过角色授予
- 后面讲角色专门讲
2.2.2 直接授予
- grant select,update on db_name. * to ‘user_name’@‘%’
- 此时用户具备查询和更新的权限,但不具备删除等
2.2.3 回收权限
- revoke select on db_name. * from ‘user_name’@‘%’;
- 回收了用户在db_name数据库下的所有表的查询权限
2.3 权限表
1.user
2.db
3.table_priv 和 columns_priv
4.procs_priv
2.4 访问控制
3 角色管理
3.1 角色理解
- 为了更方便的给用户赋予权限,先把权限赋予角色,再把角色赋予用户
3.2 创建角色
- create role ‘role_name’@‘%’;
- 一次性创建多个
- 角色创建之后,也会出现在user表里面
3.3给角色赋予权限
- grant select,update on db_name. * to ‘role_name’@‘%’;
3.4 查看角色权限
- show grants for ‘name’;
- 注:name里面不只可以填role_name,还可以填user_name
3.5 回收角色权限
- revoke update on db_name. * from ‘role_name’;
3.6 删除角色
- drop role ‘role_name’;
3.7 给用户赋予角色
- grant ‘role_name’@‘%’ to ‘user_name’@‘%’;
3.8 激活角色
3.8.1 方式1
- 1.先用user登录数据库
- 2.set default ‘role_name’@‘%’ all to ‘user_name’@‘%’;
3.8.2 方式2
- 将activate_all_roles_on_login设置为on
- 查看
show variables like ‘activate_all_roles_on_login’;
设置 - set global activate_all_roles_on_login = on;
- 也可以在配置文件里设置
3.9 撤销用户的角色
- revoke role from user
- 自己不能撤销自己的
3.10 设置强制角色
- 即创建每个账户的默认角色
- 强制角色无法被revoke或drop
3.10.1 方式1:服务启动前设置
配置文件里面添加
- mandatory_roles=‘role1,role2@localhost,r3@%.atguigu,com’
3.10.2 方式2:运行时设置
强制角色了解即可