MySQL权限

时间:2022-07-24
本文章向大家介绍MySQL权限,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

MySQL权限

一. 用户标识

用户标识= 用户名+ IP

二. 用户权限相关的表

  1. mysql.user:一行记录代表一个用户标识(用户名+ip)
  2. mysql.db:一行记录代表一个数据库的权限
  3. mysql.tables_priv:一行记录代表对表的权限
  4. mysql.columns_priv:一行记录代表对某一列的权限

三. 权限相关的常用命令

  1. 为用户授权
#为用户dev授权,允许查询architect库下的account表的id和name列 grant SELECT(id,name) on architect.account TO 'dev';
  1. 查询用户权限
#查看用户dev被赋予的所有权限 show grants for dev;
  1. 取消对用户的授权
REVOKE SELECT(id,name) on architect.account TO 'dev';

四. MySQL的角色

  1. MySQL中的角色本质上就是用户(Role Like)。
  2. 查询角色相关变量
show variables like '%proxy%';
  1. 开启角色代理
set GLOBAL check_proxy_users =1; set GLOBAL mysql_native_password_proxy_users = 1;
  1. 创建一个角色:dev_role
create USER 'dev_role'
  1. 创建2个开发用户
create USER 'rd1'; create USER 'rd2';
  1. 把这2个用户加到用户组中
grant proxy on 'dev_role' to  'rd1'; grant proxy on 'dev_role' to  'rd2';
  1. 查看rd1的权限,发现rd1已经属于dev_role角色
show grants from 'rd1';
  1. 为用户组授权(也即为用户组所对应的用户本身授权)
grant select(id,name) on architect.account to 'dev_role';
  1. 这样一来,该用户组下的所有用户都具有的相同的权限。