天天看點

mysql 通路控制指令_資料庫mysql如何通路控制?有哪些階段?

mysql 通路控制指令_資料庫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通路控制原理就好了,沒看明白的小夥伴們可以多研究一下。