資料庫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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 外網訪問MySQL資料庫MySql資料庫
- Serverless 解惑——函式計算如何訪問 MySQL 資料庫Server函式MySql資料庫
- Python學習之旅:訪問MySQL資料庫PythonMySql資料庫
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- 什麼是mysql資料庫?MySQL的特點有哪些?MySql資料庫
- 分散式文件儲存資料庫之MongoDB訪問控制分散式資料庫MongoDB
- 雲資料庫MySQL有什麼作用?有哪些優點?資料庫MySql
- JDBC資料庫訪問JDBC資料庫
- mysql有哪些資料操作MySql
- Spring Boot入門(五):使用JDBC訪問MySql資料庫Spring BootJDBCMySql資料庫
- 人工智慧學習階段有哪些?人工智慧
- 如何從公網訪問內網MongoDB資料庫內網MongoDB資料庫
- 基於gin的golang web開發:訪問mysql資料庫GolangWebMySql資料庫
- Mysql資料庫亂碼出現的各個階段以及對應方法MySql資料庫
- Sqlserver限制賬戶在哪些ip下才可以訪問資料庫SQLServer資料庫
- Python高階 -- 07 MySQL資料庫PythonMySql資料庫
- 資料庫分類有哪些資料庫
- Oracle資料庫限制訪問IPOracle資料庫
- 專案啟動階段有哪些管理技巧?
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- Spring Boot入門(七):使用MyBatis訪問MySql資料庫(xml方式)Spring BootMyBatisMySql資料庫XML
- JAVA訪問雲資料mysql出現問題JavaMySql
- Serverless 解惑——函式計算如何訪問 Redis 資料庫Server函式Redis資料庫
- Serverless 解惑——函式計算如何訪問 Mongo 資料庫Server函式Go資料庫
- Serverless 解惑——函式計算如何訪問 PostgreSQL 資料庫Server函式SQL資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- MySQL資料庫快問快答MySql資料庫
- 如何使用 Node.js 訪問 SAP HANA Cloud 資料庫裡的資料Node.jsCloud資料庫
- 一文讀懂圖資料庫 Nebula Graph 訪問控制實現原理資料庫
- 資料庫設計的 6 個階段詳解資料庫
- python常用的資料庫有哪些?Python資料庫
- Rust的資料DataFrame庫有哪些?Rust
- 使用 @NoRepositoryBean 簡化資料庫訪問Bean資料庫
- jmeter 使用 ssh 方式訪問資料庫JMeter資料庫
- MySQL資料庫有哪些優勢特點?Linux學習有用嗎MySql資料庫Linux
- 允許區域網內其他主機訪問本地MySql資料庫MySql資料庫
- Spring Boot 2.x基礎教程:使用JdbcTemplate訪問MySQL資料庫Spring BootJDBCMySql資料庫