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';
    
  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';
    

    這樣一來,該用戶組下的所有用戶都具有的相同的權限。

發佈了93 篇原創文章 · 獲贊 105 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章