MySQL訪問權限系統

MySQL權限系統的主要功能是驗證從給定主機鏈接的用戶,並將該用戶與數據庫上的權限(如select, insert, update和delete)相關聯。附加功能包括維護匿名用戶,授予MySQL特定功能(如load data infile)和管理性操做的權限。mysql


MySQL權限系統具備以下限制:sql

● 不具有用戶黑名單功能數據庫

不能顯式指定拒絕訪問的用戶列表。也就是說,你不能顯式指定一個用戶,讓MySQL拒絕其鏈接;服務器


● 建表刪表和建庫刪庫的權限緊密相連不可分割spa

即有權限建表刪表就有權限建庫刪庫,有建庫刪庫的權限就有建表刪表的權限。也就是說,你不能爲用戶指定權限,使其能夠在數據庫中建表刪表,但又不能建立或者刪除數據庫自己;對象


● 密碼只能在全局範圍內做用於一個帳號接口

即你不能爲特定對象,如數據庫,表或例程,賦予密碼;
內存


MySQL權限系統的用戶接口由SQL語句組成,如create user, grant和revokedate


在內部,MySQL將權限信息存儲在「mysql」數據庫的權限表中。MySQL服務器在啓動時將這些權限表的內容讀入內存,並基於這些內存副本進行訪問控制決策file


MySQL權限系統確保全部用戶只能執行自各自容許的操做。做爲一個用戶,當你鏈接到MySQL服務器時,你的身份由你鏈接的主機和你指定的用戶名決定。當你在鏈接完成後發出請求時,系統將根據你的身份和你想要執行的操做來賦予權限


MySQL使用主機名和用戶名來識別你的身份,由於沒有理由相信來自不一樣主機的相同用戶屬於同一我的,例如從office.example.com鏈接的用戶joe與從home.example.com鏈接的用戶joe可能不是一我的。MySQL經過對來自不一樣主機的相同用戶進行區分來解決這個問題:你能夠對從office.example.com鏈接的用戶joe賦予一組權限,而對從home.example.com鏈接的用戶joe賦予另外一組權限。


要查看給定帳號的權限,請使用「show grants」語句,例如:



MySQL訪問控制包括兩個階段:

① 服務器根據你的身份以及你所提供的密碼正確與否,接受或拒絕鏈接;

② 鏈接成功後,服務器將檢查你所發出的每一個語句,以肯定你是否有足夠的權限執行它。例如,若是你嘗試從表中檢索行或者從數據庫中刪除表,則服務器將驗證你是否擁有表的select權限或數據庫的drop權限;

相關文章
相關標籤/搜索