欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL权限

程序员文章站 2022-05-31 19:59:46
...

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';
    
  2. 查询用户权限

    #查看用户dev被赋予的所有权限
    show grants for dev;
    
  3. 取消对用户的授权

    REVOKE SELECT(id,name) on architect.account TO 'dev';
    

四. MySQL的角色

  1. MySQL中的角色本质上就是用户(Role Like)。

  2. 查询角色相关变量

    show variables like '%proxy%';
    
  3. 开启角色代理

    set GLOBAL check_proxy_users =1;
    set GLOBAL mysql_native_password_proxy_users = 1;
    
  4. 创建一个角色:dev_role

    create USER 'dev_role'
    
  5. 创建2个开发用户

    create USER 'rd1';
    create USER 'rd2';
    
  6. 把这2个用户加到用户组中

    grant proxy on 'dev_role' to  'rd1';
    grant proxy on 'dev_role' to  'rd2';
    
  7. 查看rd1的权限,发现rd1已经属于dev_role角色

    show grants from 'rd1';
    
  8. 为用户组授权(也即为用户组所对应的用户本身授权)

    grant select(id,name) on architect.account to 'dev_role';
    

    这样一来,该用户组下的所有用户都具有的相同的权限。

相关标签: 架构