您好,登錄后才能下訂單哦!
本文實例講述了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,update,select on mysqlmaster.goods from lisi@'192.168.191.%';
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。