1. 程式人生 > 實用技巧 >使用者許可權(一)

使用者許可權(一)

1. 檢視資料庫中所有的表。和使用者許可權相關的是Mysql庫中的user,db , table_priv , columns_priv ,四個表

select * from INFORMATION_SCHEMA.TABLES

2. 分別檢視四個表的內容

User表:存放使用者賬戶資訊以及全域性級別(所有資料庫)許可權,決定了來自哪些主機的哪些使用者可以訪問資料庫例項,如果有全域性許可權則意味著對所有資料庫都有此許可權
Db表:存放資料庫級別的許可權,決定了來自哪些主機的哪些使用者可以訪問此資料庫
Tables_priv表:存放表級別的許可權,決定了來自哪些主機的哪些使用者可以訪問資料庫的這個表

Columns_priv表:存放列級別的許可權,決定了來自哪些主機的哪些使用者可以訪問資料庫表的這個欄位
Procs_priv表:存放儲存過程和函式級別的許可權

3.Mysql 許可權驗證過程

  • 先從user表中的Host,User,Password這3個欄位中判斷連線的ip、使用者名稱、密碼是否存在,存在則通過驗證。
  • 通過身份認證後,進行許可權分配,按照user,db,tables_priv,columns_priv的順序進行驗證。
  • 即先檢查全域性許可權表user,如果user中對應的許可權為Y,則此使用者對所有資料庫的許可權都為Y,將不再檢查db, tables_priv,columns_priv;
  • 如果user中為N,則到db表中檢查此使用者對應的具體資料庫,並得到db中為Y的許可權;
  • 如果db中為N,則檢查tables_priv中此資料庫對應的具體表,取得表中的許可權。