Mysql體系與用戶權限管理

1、Mysql模型(C/S)
在這裏插入圖片描述
2、連接方式

TCP/IP:mysql -uroot  -h xx.xx.xx.xx -P3306 -pxxx
Socket: mysql -uroot -pxx -S /tmp/mysql.sock

3、Mysql程序結構在這裏插入圖片描述
連接層:

提供連接協議:TCP/IP 、SOCKET
提供驗證:用戶、密碼,IP,SOCKET
提供專用連接線程:接收用戶SQL,返回結果

SQL層:

(1)接收上層傳送的SQL語句
(2)語法驗證模塊:驗證語句語法,是否滿足SQL_MODE
(3)語義檢查:判斷SQL語句的類型
DDL :數據定義語言
DCL :數據控制語言
DML :數據操作語言

(4)權限檢查:用戶對庫表有沒有權限
(5)解析器:對語句執行前,進行預處理,生成解析樹(執行計劃),說白了就是生成多種執行方案.
(6)優化器:根據解析器得出的多種執行計劃,進行判斷,選擇最優的執行計劃
        代價模型:資源(CPU IO MEM)的耗損評估性能好壞
(7)執行器:根據最優執行計劃,執行SQL語句,產生執行結果
執行結果:在磁盤的xxxx位置上
(8)提供查詢緩存(默認是沒開啓的),會使用redis tair替代查詢緩存功能
(9)提供日誌記錄(日誌管理章節):binlog,默認是沒開啓的。

存儲層:

負責根據SQL層執行的結果,從磁盤上拿數據。
將16進制的磁盤數據,交由SQL結構化化成表,
連接層的專用線程返回給用戶。

4、用戶,權限管理
用戶白名單支持的方式:

[email protected]'%'
[email protected]'localhost'
[email protected]'192.168.2.2'
[email protected]'192.168.2.%'
[email protected]'192.168.2.2%'
[email protected]'db01'
[email protected]'192.168.2.0/24'

常用權限:

ALL:
SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
ALL : 以上所有權限,一般是普通管理員擁有的
with grant option:超級管理員才具備的,給別的用戶授權的功能

權限作爲範圍:

 *.*             ———— 管理用戶
 mysql.*         ———— 一般用戶
 mysql.user 

權限管理操作:


創建用戶: create user [email protected]'192.168.2.%' identified by 
'123456'

添加權限: grant all on   wordpress.* to [email protected]'192.168.2.%'  identified by '123456'

查看權限: show grants for [email protected]'192.168.2.%'

回收權限: revoke delete on wordpress.* from [email protected]'192.168.2.%' 

5、忘記管理員密碼

1、先關閉mysql systemctl stop mysqld
2、使用mysqld_safe啓動: mysqld_safe --skip-grant-tables &
3、進入數據庫修改密碼:
mysql> flush privileges;
mysql>  alter user [email protected]'localhost' identified by '123456';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章