權限管理的辦法課件_第1頁
權限管理的辦法課件_第2頁
權限管理的辦法課件_第3頁
權限管理的辦法課件_第4頁
權限管理的辦法課件_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

權限管理的辦法了解MySQL的權限系統【任務提出】

王寧在使用Navicat客戶端連接MySQL服務器時,有一次誤將root用戶的密碼輸入123(正確密碼是123456),單擊“確定”按鈕后,雙擊生成的連接,結果返回了“1045-Accessdeniedforuser‘root’@’localhost’(usingpassword:YES)”的錯誤提示。

因此,他需要根據MySQL權限系統的相關知識,來解決這個問題。權限表

MySQL是一個多用戶數據庫管理系統,具有功能強大的訪問控制系統,可以為不同用戶指定允許的權限。掌握其授權機制是開始操作MySQL數據庫必須要走的第1步。下面將簡單介紹如何利用MySQL權限表的結構和服務器決定訪問權限。權限表

通過網絡連接服務器的客戶對MySQL數據庫的訪問由權限表內容來控制。這些表位于mysql數據庫中,并在第1次安裝MySQL的過程中初始化。

權限表共有5個表:user、db、tables_priv、columns_priv和procs_priv。

當MySQL服務啟動時,會首先讀取mysql中的權限表,并將表中的數據裝入內存。當用戶進行存取操作時,MySQL會根據這些表中的數據做相應的權限控制。權限表user表是MySQL中最重要的一個權限表,記錄允許連接到服務器的賬號信息。user表列出可以連接服務器的用戶及其口令,并且指定他們有哪種全局(超級用戶)權限。在user表啟用的任何權限均是全局權限,并適用于所有數據庫。例如,如果用戶啟用了DELETE權限,則該用戶可以從任何表中刪除記錄。權限表user和db的結構和作用01(1)user表權限表db表也是MySQL數據庫中非常重要的權限表。db表中存儲了用戶對某個數據庫的操作權限,決定用戶能從哪個主機存取哪個數據庫。(2)db表權限表tables_priv表用來對表設置操作權限columns_priv表用來對表的某一列設置權限procs_priv表可以對存儲過程和存儲函數設置操作權限tables_priv表、columns_priv表和procs_priv表02MySQL權限系統的工作原理為了確保數據庫的安全性與完整性,系統并不希望每個用戶可以執行所有的數據庫操作。

當MySQL允許一個用戶執行各種操作時,它將首先核實用戶向MySQL服務器發送的連接請求,然后確認用戶的操作請求是否被允許。MySQL的訪問控制分為兩個階段:連接核實階段請求核實階段MySQL權限系統的工作原理MySQL使用user表中的3個字段(Host、User和authentication_string)進行身份檢查,服務器只有在用戶提供主機名、用戶名和密碼并與user表中對應的字段值完全匹配時才接受連接。當用戶試圖連接MySQL服務器時,服務器基于用戶提供的信息來驗證用戶身份,如果不能通過身份驗證,服務器會完全拒絕該用戶的訪問。如果能夠通過身份驗證,則服務器接受連接,然后進入第2個階段等待用戶請求。連接核實階段01MySQL權限系統的工作原理一旦連接得到許可,服務器進入請求核實階段。在這一階段,MySQL服務器對當前用戶的每個操作都進行權限檢查,判斷用戶是否有足夠的權限來執行它。用戶的權限保存在user、db、tables_priv或columns_priv權限表中。在MySQL權限表的結構中,user表在最頂層,是全局級的。下面是db表,它是數據庫層級的。最后才是tables_priv表和columns_priv表,它們是表級和列級的。請求核實階段02MySQL權限系統的工作原理確認權限時,MySQL首先檢查user表,如果指定的權限沒有在user表中被授權,MySQL服務器將檢查db表,在該層級的SELECT權限允許用戶查看指定數據庫的所有表的數據。如果在該層級沒有找到限定的權限,則MySQL繼續檢查tables_priv表以及columns_priv表。如果所有權限表都檢查完畢,依舊沒有找到允許的權限操作,MySQL服務器將返回錯誤信息,用戶操作不能執行,操作失敗。請求核實階段02MySQL權限系統的工作原理MySQL請求核實階段的過程接收到用戶操作請求檢查user表中權限檢查db表中權限檢查tables_priv表中權限檢查columns_priv表中權限不允許用戶執行該操作執行用戶請求的操作無無無無有有有有了解MySQL的權限系統【任務實施】

王寧掌握了用戶權限驗證的方法和步驟后,根據錯誤提示信息,將root用戶的密碼修正為123456,成功使Navicat連接到了MySQL服務器。權限管理權限管理主要是對登錄到MySQL的用戶進行權限驗證。所有用戶的權限都存儲在MySQL的權限表中。合理的權限管理能夠保證數據庫系統的安全,不合理的權限設置會給MySQL服務器帶來安全隱患。權限管理

MySQL數據庫中有多種類型的權限,這些權限都存儲在mysql數據庫的權限表中。在MySQL啟動時,服務器將這些數據庫中的權限信息讀入內存。MySQL的權限類型01權限級別①全局層級②數據庫層級③表層級④列層級⑤子程序層級權限管理在MySQL中,必須是擁有GRANT權限的用戶才可以執行GRANT語句。GRANT語句的基本語法格式如下:GRANTpriv_type[(column_list)][,priv_type[(column_list)]][,…n]ON{table_name|*|*.*|database_name.*|database_name.table_name}TOusername[,username1][,…usernamen][WITHGRANTOPTION];授權02權限管理GRANTSELECT,INSERTon*.*TO'ken1'@'localhost'WITHGRANTOPTION;【例1】使用GRANT語句為用戶ken1賦權,使其對所有的數據有查詢、插入權限,并授予GRANT權限權限管理GRANTDELETEongradem.studentTO'ken1'@'localhost';【強化訓練1】使用GRANT語句將gradem數據庫中student表的DELETE權限授予用戶ken1。【強化訓練2】使用GRANT語句將gradem數據庫中sc表的degree列和cterm列的UPDATE權限授予用戶test1。GRANTUPDATE(degree,cterm)ongradem.scto'test1'@'localhost';權限管理

收回權限就是取消已經賦予用戶的某些權限。收回用戶不必要的權限在一定程度上可以保證數據的安全性。權限收回后,用戶賬戶的記錄將從db、host、tables_priv和columns_priv表中刪除,但是用戶賬戶記錄仍然在user表中保存。收回用戶的所有權限收回用戶指定的權限收回權限利用REVOKE語句實現,語法格式有兩種::收回權限03權限管理REVOKEALLPRIVILEGES,GRANTOPTIONFROM'username'@'hostname'[,'username'@'hostname'][,…n];其基本語法如下:【例2】使用REVOKE語句收回ken1用戶的所有權限,包括GRANT權限REVOKEALLPRIVILEGES,GRANTOPTIONFROM'ken1'@'localhost';收回所有權限權限管理REVOKEpriv_type[(column_list)][,priv_type[(column_list)]][,…n]ON{table_name|*|*.*|database_name.*|database_name.table_name}FROM'username'@'hostname'[,'username'@'hostname'][,…n];【例8.12】收回test1用戶對gradem數據庫中student表的cterm列的UPDATE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論