MySQL权限
程序员文章站
2022-05-31 19:59:46
...
MySQL权限
一. 用户标识
用户标识= 用户名+ IP
二. 用户权限相关的表
- mysql.user:一行记录代表一个用户标识(用户名+ip)
- mysql.db:一行记录代表一个数据库的权限
- mysql.tables_priv:一行记录代表对表的权限
- mysql.columns_priv:一行记录代表对某一列的权限
三. 权限相关的常用命令
-
为用户授权
#为用户dev授权,允许查询architect库下的account表的id和name列 grant SELECT(id,name) on architect.account TO 'dev';
-
查询用户权限
#查看用户dev被赋予的所有权限 show grants for dev;
-
取消对用户的授权
REVOKE SELECT(id,name) on architect.account TO 'dev';
四. MySQL的角色
-
MySQL中的角色本质上就是用户(Role Like)。
-
查询角色相关变量
show variables like '%proxy%';
-
开启角色代理
set GLOBAL check_proxy_users =1; set GLOBAL mysql_native_password_proxy_users = 1;
-
创建一个角色:dev_role
create USER 'dev_role'
-
创建2个开发用户
create USER 'rd1'; create USER 'rd2';
-
把这2个用户加到用户组中
grant proxy on 'dev_role' to 'rd1'; grant proxy on 'dev_role' to 'rd2';
-
查看rd1的权限,发现rd1已经属于dev_role角色
show grants from 'rd1';
-
为用户组授权(也即为用户组所对应的用户本身授权)
grant select(id,name) on architect.account to 'dev_role';
这样一来,该用户组下的所有用户都具有的相同的权限。
上一篇: GitLab修改用户密码
下一篇: GitLab新手配置