資料庫mysql如何訪問控制?有哪些階段?

mug發表於2021-09-11

資料庫mysql如何訪問控制?有哪些階段?

我們在訪問一個網頁時,只需要點選連結就可以輕鬆瀏覽,當然這只是訪問在使用者介面的一個展現。我們學習python的時候,更多的傾向於內部的搭建和原理的理解。有沒有小夥伴對mysql的訪問產生興趣呢?這裡的訪問跟我們之前提到的瀏覽介面訪問有所不同,接下來就資料庫mysql的訪問控制和其中的兩個階段一起進行深入探索。


MySQL訪問控制分為兩個階段:

使用者連線檢查階段

執行SQL語句時檢查階段


1、使用者連線時的檢查

1)當使用者連線時,MySQL伺服器首先從user表裡匹配host, user, password,匹配不到則拒絕該連線2)接著檢查user表的max_connections和max_user_connections,如果超過上限則拒絕連線3)檢查user表的SSL安全連線,如果有配置SSL,則需確認使用者提供的證照是否合法只有上面3個檢查都透過後,伺服器才建立連線,連線建立後,當使用者執行SQL語句時,需要做SQL語句執行檢查。

 

2、執行SQL語句時的檢查

1)從user表裡檢查max_questions和max_updates,如果超過上限則拒絕執行SQL下面幾步是進行許可權檢查:2)首先檢查user表,看是否具有相應的全域性性許可權,如果有,則執行,沒有則繼續下一步檢查3)接著到db表,看是否具有資料庫級別的許可權,如果有,則執行,沒有則繼續下一步檢查4)最後到tables_priv, columns_priv, procs_priv表裡檢視是否具有相應物件的許可權從以上的過程我們可以知道,MySQL檢查許可權是一個比較複雜的過程,所以為了提高效能,MySQL的啟動時就會把這5張許可權表載入到記憶體。


關於mysql的一些補充:

windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。

而Linux中啟動時可用"/etc/rc.d/init.d/mysqld start”命令,注意啟動者應具有管理員許可權。

MySql預設包含一個含空密碼的root帳戶和一個匿名帳戶,應把匿名帳戶刪除、 root帳戶設定密碼。


以上就是關於mysql訪問控制兩個階段的介紹,本篇不涉及程式碼的執行,只要理解的基礎的mysql訪問控制原理就好了,沒看明白的小夥伴們可以多研究一下。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2831887/,如需轉載,請註明出處,否則將追究法律責任。

相關文章