確定用戶是否允許連接數據庫服務器 2:授權->確定用戶是否擁有足夠的權限執行查詢請求等。 顯然從上面可知,如果認證不成功的話,哪么授權肯定是無法進行的。在這里我們要關注兩個表,分別是在MySQ" />
MySQL的權限系統圍繞著兩個概念:
1:認證->確定用戶是否允許連接數據庫服務器
2:授權->確定用戶是否擁有足夠的權限執行查詢請求等。
顯然從上面可知,如果認證不成功的話,哪么授權肯定是無法進行的。在這里我們要關注兩個表,分別是在MySQL數據庫中user表和db表。
user表在某種程度上是獨一無二的,因為它是唯一一個在權限請求的認證和授權階段都起作用的表,也是唯一一個存數MySQL服務器相關權限的權限表。在認證階段,它只是負責為用戶授權訪問MySQL服務器,確定用戶每小時的最大連接數和最大并發數;在授權階段,user確定允許訪問服務器的用戶是否被賦予了操作數據庫的全局權限,確定用戶每小時的最大查詢數和更新數。
db表用于為每個用戶針對每個數據庫賦予權限。具體的可以查看db的字段。
用戶和權限管理命令:
create user :用于創建新的用戶賬戶(從5.0版本開始有這個命令),在創建這個用戶的時候不分配任何權限,需要在創建之后通過grant命令來給改用戶分配相應的權限。
eg:create user guest@localhost identified by '123456';
grant select on mydb.* to guest@localhost;
drop user:刪除一個用戶賬戶(注意在4.1.1版本之前只能刪除沒有任何權限的賬戶,5.0.2之后可以刪除任何賬戶)
eg:drop user guest;
rename user:可以實現重命名一個用戶賬號。
grant:用于管理訪問權限,也就是給用戶賬號授權。當然它同樣可以創建一個新的用戶賬戶。
eg:grant select, insert, update, delete on new_db.* to guest@'%' identified by '88888888';
grant 權限 on 數據庫.表 to 用戶 @ 訪問方式 identified by 密碼
grant select on mydb.* to guest@localhost identified by '123456';
BTW:如果需要一個空密碼或者無密碼的賬戶,必須先用Create User命令,然后通過
grant來分配權限。如果如下操作:
grant all privileges on mydb.* to visitor@'%' ;而在數據庫user表中沒有先創建visitor
用戶,則會發生1133錯誤"Can't find any matching row in the user table"。grant只能創
有密碼的賬戶。
revoke:刪除一個賬戶,具體查看MySQL的文檔。
bitsCN.com聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com