權(quán)限管理的辦法課件_第1頁
權(quán)限管理的辦法課件_第2頁
權(quán)限管理的辦法課件_第3頁
權(quán)限管理的辦法課件_第4頁
權(quán)限管理的辦法課件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

權(quán)限管理的辦法了解MySQL的權(quán)限系統(tǒng)【任務(wù)提出】

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

因此,他需要根據(jù)MySQL權(quán)限系統(tǒng)的相關(guān)知識(shí),來解決這個(gè)問題。權(quán)限表

MySQL是一個(gè)多用戶數(shù)據(jù)庫管理系統(tǒng),具有功能強(qiáng)大的訪問控制系統(tǒng),可以為不同用戶指定允許的權(quán)限。掌握其授權(quán)機(jī)制是開始操作MySQL數(shù)據(jù)庫必須要走的第1步。下面將簡(jiǎn)單介紹如何利用MySQL權(quán)限表的結(jié)構(gòu)和服務(wù)器決定訪問權(quán)限。權(quán)限表

通過網(wǎng)絡(luò)連接服務(wù)器的客戶對(duì)MySQL數(shù)據(jù)庫的訪問由權(quán)限表內(nèi)容來控制。這些表位于mysql數(shù)據(jù)庫中,并在第1次安裝MySQL的過程中初始化。

權(quán)限表共有5個(gè)表:user、db、tables_priv、columns_priv和procs_priv。

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

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

王寧掌握了用戶權(quán)限驗(yàn)證的方法和步驟后,根據(jù)錯(cuò)誤提示信息,將root用戶的密碼修正為123456,成功使Navicat連接到了MySQL服務(wù)器。權(quán)限管理權(quán)限管理主要是對(duì)登錄到MySQL的用戶進(jìn)行權(quán)限驗(yàn)證。所有用戶的權(quán)限都存儲(chǔ)在MySQL的權(quán)限表中。合理的權(quán)限管理能夠保證數(shù)據(jù)庫系統(tǒng)的安全,不合理的權(quán)限設(shè)置會(huì)給MySQL服務(wù)器帶來安全隱患。權(quán)限管理

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

收回權(quán)限就是取消已經(jīng)賦予用戶的某些權(quán)限。收回用戶不必要的權(quán)限在一定程度上可以保證數(shù)據(jù)的安全性。權(quán)限收回后,用戶賬戶的記錄將從db、host、tables_priv和columns_priv表中刪除,但是用戶賬戶記錄仍然在user表中保存。收回用戶的所有權(quán)限收回用戶指定的權(quán)限收回權(quán)限利用REVOKE語句實(shí)現(xiàn),語法格式有兩種::收回權(quán)限03權(quán)限管理REVOKEALLPRIVILEGES,GRANTOPTIONFROM'username'@'hostname'[,'username'@'hostname'][,…n];其基本語法如下:【例2】使用REVOKE語句收回ken1用戶的所有權(quán)限,包括GRANT權(quán)限REVOKEALLPRIVILEGES,GRANTOPTIONFROM'ken1'@'localhost';收回所有權(quán)限權(quán)限管理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用戶對(duì)gradem數(shù)據(jù)庫中student表的cterm列的UPDATE

溫馨提示

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

評(píng)論

0/150

提交評(píng)論