使用者許可權(一)
阿新 • • 發佈:2020-07-14
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中此資料庫對應的具體表,取得表中的許可權。