MySQL資料庫許可權體系入門(1)---工作原理
ORACLE等大型資料庫的許可權驗證,一般都是XX擁有ZZ的許可權,而MySQL資料庫的許可權驗證在設計階段就體現的有所不同,它在這中間又加了一級緯度,變成:從YY來的那個XX擁有ZZ的許可權,如果換一個角度來描述,也可以說是:XX只有從YY連線過來,才能夠訪問ZZ。這樣理解的話,就跟ORACLE這類資料庫的身份驗證機制相同了,只不過ORACLE這類資料庫中,預設是不加YY這一層的(如果想加當然也可以支援),而在MYSQL中,YY成了一個必選項。
在本文正式開始前先描述這樣一段,並不是想說MySQL有多麼高階或先進,只是想表達這樣一種看法,MySQL確實有所不同。Ok,接下來,跟隨三思一起,進入Mysql的許可權世界吧~~~~
一、工作原理
所有許可權認證的根本目地,都是為了保證使用者只能做允許它做的事情,MySQL也不例外,大家(範指資料庫產品)實現的原理也都差不多,只不過機制上稍有差異,在許可權粒度控制上有所不同。
MySQL資料庫對許可權的驗證有兩個層面:
l 能不能連線:主要由mysql.user,mysql.db,mysql.host三個字典表控制(事實上截止到5.1版本,Host表也基本沒啥用,主要由user,db兩表控制);
l 能不能執行操作:這個複雜一點點,除了上面三個字典表外,另外還有mysql.tables_priv、mysql.columns_priv、mysql.proc_priv三個字典表做更細粒度的控制。
由上可以看出,MySQL資料庫主要是通過這六個字典表,來實現不同粒度的許可權需求,關於這幾個檢視後面會有章節詳細描述,這裡簡要介紹其處理邏輯。
MySQL啟動時將這幾個表中的內容讀到記憶體裡,當有使用者連線或執行操作時,根據記憶體中的資料來檢查使用者是否有許可權執行相應的操作。
注意,如果你讀的足夠認真並且大腦持續在進行思考,這會兒應該會產生這樣的一個疑問:如果使用者連線上資料庫後,又有其它人對其許可權進行了修改操作,是否會即時生效呢?這個問題的答案是:看情況!
l 如果是通過grant、revoke、set password、rename user等命令執行的修改,那麼會馬上生效,這些命令將觸發系統重新載入授權表(grant tables)。
l 如果是手動修改字典表方式(insert,update,delete),那麼許可權並不會馬上生效,除非重啟伺服器,或管理使用者顯式的重新裝載了授權表。
授權表被重新裝載後,對當前已連線的客戶端影響如下:
l 表或列的許可權將在客戶端下次執行操作時生效;
l 資料庫的許可權將在客戶端執行use db_name語句時生效;
l 全域性許可權和密碼修改對已連線的客戶端無效,下次連線時才會生效。
提示:關於許可權級別將在後面章節介紹!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-672261/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- MySQL資料庫許可權體系入門(6)---管理表、列及程式相關許可權MySql資料庫
- MySQL資料庫許可權體系入門(2)---建立使用者MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(1)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(1)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(3)MySql資料庫
- Mysql資料庫許可權問題MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(3)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(2)MySql資料庫
- MySQL許可權體系--PPT分享~MySql
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.1談談許可權處理邏輯MySql資料庫
- MySQL資料庫Root許可權MOF方法提權研究MySql資料庫
- MySQL之test資料庫預設許可權MySql資料庫
- 入門MySQL——使用者與許可權MySql
- MySQL入門--使用者與許可權MySql
- [MySQL光速入門]031 許可權管理MySql
- 【MySql】mysql的許可權體系介紹MySql
- 【MySql】mysql 的許可權體系介紹MySql
- 系統許可權資料庫設計方案資料庫
- MySQL許可權系統MySql
- 資料庫的許可權管理資料庫
- [資料庫]MYSQL之授予/查驗binlog許可權資料庫MySql
- Oracle資料庫的系統和物件許可權Oracle資料庫物件
- 客戶端使用sysdba許可權登入資料庫客戶端資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.4帳戶安全管理MySql資料庫
- 資料庫學習:許可權管理資料庫
- Linux 許可權入門指南Linux
- 資料許可權
- 《MySQL 入門教程》第 05 篇 賬戶和許可權MySql
- 登入失敗,提示“資料庫目錄許可權寫入不足”,可以操作設定資料庫目錄許可權為 777。資料庫
- mysql許可權MySql
- MySQL 許可權MySql
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- MySQL許可權系統簡介MySql
- Mysql存取許可權系統(轉)MySql