1. 程式人生 > 資料庫 >MySQL使用者與許可權的管理詳解

MySQL使用者與許可權的管理詳解

本文例項講述了MySQL使用者與許可權的管理。分享給大家供大家參考,具體如下:

使用者連線到MySQL,可以做各種查詢,這都是MySQL使用者與許可權功能在背後維持著操作。

使用者與資料庫伺服器互動資料,分為兩個階段:

(1)你有沒有權連線上來
(2)你有沒有權執行本操作

1、你有沒有權連線上來

伺服器如何判斷使用者有沒有權連線上來?

依據:

1)你從哪裡來?host
2)你是誰?user
3)你的密碼是多少?password

使用者的這三個資訊,儲存在mysql庫中的user表中。

修改host域,使IP可以連線

mysql>update user set host='192.168.137.123' where user = 'root';
mysql>flush privileges; --沖刷許可權

修改使用者密碼

mysql>update user set password=password('11111111') where xxx;
mysql>flush privileges; --沖刷許可權

2、你有沒有權執行本操作

在mysql中,有一個庫是mysql庫,在這個庫中有三個表,一個是user表,user表中儲存了所有使用者的許可權資訊。一個是db表,db表儲存的是所有使用者在資料庫層的許可權資訊。一個是tables_priv表,tables_priv表儲存的是所有使用者在表層的許可權資訊。

使用者登入,user表首先能限制使用者登入,其次還儲存了該使用者的全域性許可權,如果該使用者沒有任何許可權,那麼將從db表中查詢該使用者是否有某個資料庫的操作許可權,如果都沒有,將從table_priv表中查詢該使用者是否有某個表的操作許可權,如果有,則該使用者可以按照已有的許可權來操作該表。

1)全域性授權和收回

全域性授權格式:

grant [許可權1,許可權2,許可權3] on *.* to user@'host' identified by 'password'

常用許可權:all、create、drop、select、insert、delete、update

授權:

建立lisi使用者,host為192.168.191.%,%萬用字元表示192.168.191.xxx結尾的主機都可以連線,密碼為12345678。

grant all on *.* to lisi@'192.168.191.%' identified by '12345678';

收回許可權:

revoke all on *.* from lisi@'192.168.191.%';

2)資料庫級授權和收回

需求:讓lisi使用者擁有mysqlmaster資料庫的所有操作許可權

授權:

grant all on mysqlmaster.* to lisi@'192.168.191.%' identified by '12345678';

收回:

revoke all on mysqlmaster.* from lisi@'192.168.191.%';

3)表級授權和收回

需求:讓lisi使用者具有mysqlmaster資料庫下的goods表的insert、update、select三個操作的許可權。

授權:

grant insert,update,select on mysqlmaster.goods to lisi@'192.168.191.%' identified by '12345678';

收回:

revoke insert,select on mysqlmaster.goods from lisi@'192.168.191.%';

更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧彙總》、《MySQL儲存過程技巧大全》、《MySQL資料庫鎖相關技巧彙總》及《MySQL常用函式大彙總》

希望本文所述對大家MySQL資料庫計有所幫助。