mysql中存在4個控制權限的表,`分別為user表,db表,tables_priv表,columns_priv表`,我當前的版本mysql 5.7.22 。
**mysql權限表的驗證過程為:**
1. 先從user表中的Host,User,Password這3個字段中判斷連接的ip、用戶名、密碼是否存在,存在則通過驗證。
2. 通過身份認證后,進行權限分配,按照user,db,tables\_priv,columns\_priv的順序進行驗證。即先檢查全局權限表user,如果user中對應的權限為Y,則此用戶對所有數據庫的權限都為Y,將不再檢查db, tables\_priv,columns\_priv;如果為N,則到db表中檢查此用戶對應的具體數據庫,并得到db中為Y的權限;如果db中為N,則檢查tables\_priv中此數據庫對應的具體表,取得表中的權限Y,以此類推。
**mysql權限級別**
分為:?
全局性的管理權限: 作用于整個MySQL實例級別?
數據庫級別的權限: 作用于某個指定的數據庫上或者所有的數據庫上?
數據庫對象級別的權限:作用于指定的數據庫對象上(表、視圖等)或者所有的數據庫對象上
權限存儲在mysql庫的user, db, tables\_priv, columns\_priv, and procs\_priv這幾個系統表中,待MySQL實例啟動后就加載到內存中
查看mysql 有哪些用戶:
`select user,host from mysql.user;`
查看已經授權給用戶的權限信息
`show grants for root@'localhost';`
**權限詳解**
* All/All Privileges權限代表全局或者全數據庫對象級別的所有權限
* Alter權限代表允許修改表結構的權限,但必須要求有create和insert權限配合。如果是rename表名,則要求有alter和drop原表, create和insert新表的權限
* Alter routine權限代表允許修改或者刪除存儲過程、函數的權限
* Create權限代表允許創建新的數據庫和表的權限
* Create routine權限代表允許創建存儲過程、函數的權限
* Create tablespace權限代表允許創建、修改、刪除表空間和日志組的權限
* Create temporary tables權限代表允許創建臨時表的權限
* Create user權限代表允許創建、修改、刪除、重命名user的權限
* Create view權限代表允許創建視圖的權限
* Delete權限代表允許刪除行數據的權限
* Drop權限代表允許刪除數據庫、表、視圖的權限,包括truncate table命令
* Event權限代表允許查詢,創建,修改,刪除MySQL事件
* Execute權限代表允許執行存儲過程和函數的權限
* File權限代表允許在MySQL可以訪問的目錄進行讀寫磁盤文件操作,可使用的命令包括load data infile,select … into outfile,load file()函數
* Grant option權限代表是否允許此用戶授權或者收回給其他用戶你給予的權限,重新付給管理員的時候需要加上這個權限
* Index權限代表是否允許創建和刪除索引
* Insert權限代表是否允許在表里插入數據,同時在執行analyze table,optimize table,repair table語句的時候也需要insert權限
* Lock權限代表允許對擁有select權限的表進行鎖定,以防止其他鏈接對此表的讀或寫
* Process權限代表允許查看MySQL中的進程信息,比如執行show processlist, mysqladmin processlist, show engine等命令
* Reference權限是在5.7.6版本之后引入,代表是否允許創建外鍵
* Reload權限代表允許執行flush命令,指明重新加載權限表到系統內存中,refresh命令代表關閉和重新開啟日志文件并刷新所有的表
* Replication client權限代表允許執行show master status,show slave status,show binary logs命令
* Replication slave權限代表允許slave主機通過此用戶連接master以便建立主從復制關系
* Select權限代表允許從表中查看數據,某些不查詢表數據的select執行則不需要此權限,如Select 1+1, Select PI()+2;而且select權限在執行update/delete語句中含有where條件的情況下也是需要的
* Show databases權限代表通過執行show databases命令查看所有的數據庫名
* Show view權限代表通過執行show create view命令查看視圖創建的語句
* Shutdown權限代表允許關閉數據庫實例,執行語句包括mysqladmin shutdown
* Super權限代表允許執行一系列數據庫管理命令,包括kill強制關閉某個連接命令, change master to創建復制關系命令,以及create/alter/drop server等命令
* Trigger權限代表允許創建,刪除,執行,顯示觸發器的權限
* Update權限代表允許修改表中的數據的權限
* Usage權限是創建一個用戶之后的默認權限,其本身代表連接登錄權限
- 序言
- 從業感悟
- 常用名詞
- HTML
- JS
- ES6新特性
- jquery和vue對比
- 徹底理解this
- JQuery添加自定義函數
- js的實現
- 原始值和引用值
- MYSQL
- 簡介
- 術語
- 特點
- 范式
- 數據類型1
- 數據類型2
- 編碼
- 權限管理
- 事務
- mvvc
- 引擎
- MyISAM與InnoDB區別
- 索引類型
- 鎖
- 死鎖
- 分層架構
- 執行計劃
- join原理
- 高可用
- 日志類型
- 分庫分表
- 中間件
- 服務器
- 操作系統
- 信號量 鎖 隊列
- PHP
- composer加載原理
- composer基礎知識
- 自動加載函數
- composer加載代碼
- composer 自動加載
- 內存管理
- PHP執行流程
- cgi,fastCgi,php-fpm
- HTTP
- 錯誤碼
- 跨域請求
- 面試
- 安全
- HTTP劫持
- 設計模式
- 如何正確的使用設計模式
- 單例模式
- 原型模式
- 簡單工廠模式
- 工廠方法模式
- 抽象工廠模式
- 建造者模式
- 設計原則
- 算法
- PHP短標簽