MySQL數(shù)據(jù)庫原理與應用(微課版)ch13MySQL權限與安全管理_第1頁
MySQL數(shù)據(jù)庫原理與應用(微課版)ch13MySQL權限與安全管理_第2頁
MySQL數(shù)據(jù)庫原理與應用(微課版)ch13MySQL權限與安全管理_第3頁
MySQL數(shù)據(jù)庫原理與應用(微課版)ch13MySQL權限與安全管理_第4頁
MySQL數(shù)據(jù)庫原理與應用(微課版)ch13MySQL權限與安全管理_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第13章

MySQL權限與安全管理本章概述MySQL是一個多用戶數(shù)據(jù)庫,具有功能強大的訪問控制系統(tǒng),可以為不同用戶指定允許的權限。MySQL用戶可以分為普通用戶和root用戶。root用戶是超級管理員,擁有所有權限,包括創(chuàng)建用戶、刪除用戶和修改用戶的密碼等管理權限;普通用戶只擁有被授予的各種權限。用戶管理包括管理用戶賬戶、權限等。本章學習目標了解什么是權限表;掌握權限表的用法;掌握賬戶管理的方法;掌握權限管理的方法;掌握訪問控制的用法;熟練運用本章知識來新建MySQL用戶。目錄01020304權限管理賬戶管理訪問控制權限表05提升安全性06管理角色07綜合管理用戶權限本章小結(jié)08權限表MySQL服務器通過權限表來控制用戶對數(shù)據(jù)庫的訪問,權限表存放在MySQL數(shù)據(jù)庫中,由mysql_install_db腳本初始化。存儲賬戶權限信息表主要有user、db、host、tables_priv、columns_priv和procs_priv。存儲權限的數(shù)據(jù)表權限表user表是MySQL中最重要的一個權限表,記錄允許連接到服務器的賬號信息,里面的權限是全局級的。例如,一個用戶在user表中被授予了DELETE權限,則該用戶可以刪除MySQL服務器上所有數(shù)據(jù)庫中的任何記錄。MySQL8.0中user表有42個字段,這些字段可以分為4類,分別是用戶列、權限列、安全列和資源控制列。user表權限表db表是MySQL數(shù)據(jù)中非常重要的權限表。db表中存儲了用戶對某個數(shù)據(jù)庫的操作權限,決定用戶能從哪個主機存取哪個數(shù)據(jù)庫。db表比較常用。db表權限表tables_priv表用來對表設置操作權限,columns_priv表用來對表的某一列設置權限。tables_priv表和columns_priv表的結(jié)構(gòu)分別如表所示。tables_priv表和columns_priv表表表tables_priv表結(jié)構(gòu)字段名數(shù)據(jù)類型默認值HostCHAR(60)

DbCHAR(64)

UserCHAR(16)

Table_nameCHAR(64)

GrantorCHAR(77)

TimestamptimestampCURRENT_TIMESTAMPTable_privset('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','CreateView','ShowView','Trigger')

Column_privset('Select','Insert','Update','References')權限表tables_priv表用來對表設置操作權限,columns_priv表用來對表的某一列設置權限。tables_priv表和columns_priv表的結(jié)構(gòu)分別如表所示。tables_priv表和columns_priv表表表

columns_priv表結(jié)構(gòu)字段名數(shù)據(jù)類型默認值HostCHAR(60)

DbCHAR(64)

UserCHAR(16)

Table_nameCHAR(64)

Column_nameCHAR(64)

TimstamptimestampCURRENT_TIMESTAMPColumn_privset('Select','Insert','Update','References')權限表procs_priv表可以對存儲過程和存儲函數(shù)設置操作權限。procs_priv表結(jié)構(gòu)如表所示。procs_priv表表

procs_priv表結(jié)構(gòu)字段名數(shù)據(jù)類型默認值HostCHAR(60)

DbCHAR(64)

UserCHAR(16)

Routine_nameCHAR(64)

Routine_typeenum('FUNCTION','PROCEDURE')NULLGrantorCHAR(77)

Proc_privset('Excute','AlterRoutine','Grant')

TimstamptimestampCURRENT_TIMESTAMP目錄權限管理賬戶管理訪問控制權限表提升安全性管理角色綜合管理用戶權限本章小結(jié)0102030405060708權限表使用root用戶登錄到本地MySQL服務器的mysql庫,命令如下:mysql-hlocalhost-uroot-P3307-p登錄和退出MySQL服務器權限表執(zhí)行CREATEUSER或GRANT語句時,服務器會修改相應的用戶授權表,添加或者修改用戶及其權限。CREATEUSER語句的基本語法格式如下:CREATEUSERuser_specification[,user_specification]…User_specification:user@host[IDENTIFIEDBY[PASSWORD]'password'|IDENTIFIEDWITHauth_plugin[AS'auth_string']]新建普通用戶權限表使用CREATEUSER創(chuàng)建一個用戶,用戶名是buaalandy,密碼是mypass,主機名是localhost,命令如下:CREATEUSER'buaalandy'@'localhost'IDENTIFIEDBY'mypass';新建普通用戶權限表使用INSERT語句創(chuàng)建新用戶的基本語法格式如下:INSERTINTOMYSQL.user(Host,User,authentication_string)VALUES('host','username',MD5('password'));Host、User、authentication_string分別為user表中的主機、用戶名稱和密碼字段;MD5()函數(shù)為密碼加密函數(shù)。直接操作MySQL用戶表權限表在MySQL數(shù)據(jù)庫中,可以使用DROPUSER語句刪除用戶,也可以直接通過DELETE從MySQL.user表中刪除對應的記錄來刪除用戶。DROPUSER語句語法如下:DROPUSERuser[,user];刪除普通用戶權限表DELETE語句基本語法格式如下:DELETEFROMMySQL.userWHEREhost='hostname'anduser='username'host和user為user表中的兩個字段,兩個字段的組合確定所要刪除的賬戶記錄。使用DELETE語句刪除用戶權限表root用戶擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他用戶的密碼。root用戶登錄MySQL服務器后,可以通過SET語句修改MySQL.user表,以及通過UPDATE語句修改用戶的密碼。創(chuàng)建用戶user1,命令如下:CREATEUSER'user1'@'localhost'IDENTIFIEDBY'my123';root用戶修改普通用戶密碼目錄權限管理賬戶管理訪問控制權限表提升安全性管理角色綜合管理用戶權限本章小結(jié)0104050607080302權限管理賬戶權限信息被存儲在MySQL數(shù)據(jù)庫的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL啟動時,服務器將這些數(shù)據(jù)庫表中權限信息的內(nèi)容讀入內(nèi)存。MySQL的各種權限權限管理授權:授權就是為某個用戶授予權限。合理的授權可以保證數(shù)據(jù)庫的安全。MySQL中可以使用GRANT語句為用戶授予權限。授予的權限可以分為多個層級:1.全局層級:全局權限適用于一個給定服務器中的所有數(shù)據(jù)庫。這些權限存儲在MySQL.user表中。GRANTALLON*.*和REVOKEALLON*.*只授予和撤銷全局權限。2.數(shù)據(jù)庫層級:數(shù)據(jù)庫權限適用于一個給定數(shù)據(jù)庫中的所有目標。這些權限存儲在MySQL.db和MySQL.host表中。GRANTALLONdb_name.和REVOKEALLONdb_name.*只授予和撤銷數(shù)據(jù)庫權限。3.表層級:表權限適用于一個給定表中的所有列。這些權限存儲在MySQL.talbes_priv表中。GRANTALLONdb_name.tbl_name和REVOKEALLONdb_name.tbl_name只授予和撤銷表權限。4.列層級:列權限適用于一個給定表中的單一列。這些權限存儲在MySQL.columns_priv表中。當使用REVOKE時,必須指定與被授權列相同的列。5.子程序?qū)蛹墸篊REATEROUTINE、ALTERROUTINE、EXECUTE和GRANT權限適用于已存儲的子程序。這些權限可以被授予為全局層級和數(shù)據(jù)庫層級。MySQL的各種權限權限管理SHOWGRANTS語句可以顯示指定用戶的權限信息,使用SHOWGRANT查看賬戶信息的基本語法格式如下:SHOWGRANTSFOR'user'@'host';其中,user表示登錄用戶的名稱,host表示登錄的主機名稱或者IP地址。在使用該語句時,要確保指定的用戶名和主機名都要用單引號引起來,并使用“@”符號將兩個名字分隔開。例如:SHOWGRANTSFOR'user2'@'localhost'\G;收回權限目錄權限管理賬戶管理訪問控制權限表提升安全性管理角色綜合管理用戶權限本章小結(jié)0105060708020403訪問控制當連接MySQL服務器時,服務器基于用戶的身份以及用戶是否能通過正確的密碼身份驗證來接受或拒絕連接,即客戶端用戶連接請求中會提供用戶名稱、主機地址名和密碼,MySQL使用user表中的3個字段(Host、User和authentication_string)執(zhí)行身份檢查,服務器只有在user表記錄的Host和User字段匹配客戶端主機名和用戶名,并且提供正確的密碼時才接受連接。如果連接核實沒有通過,服務器就完全拒絕訪問;否則,服務器接受連接,然后進入階段2等待用戶請求。一、連接核實階段訪問控制建立了連接之后,服務器進入訪問控制的階段2。對在此連接上的每個請求,服務器檢查用戶要執(zhí)行的操作,然后檢查是否有足夠的權限來執(zhí)行它。這正是在授權表中的權限列發(fā)揮作用的地方。這些權限可以來自user、db、host、tables_priv或columns_priv表。二、請求核實階段目錄權限管理賬戶管理訪問控制權限表提升安全性管理角色綜合管理用戶權限本章小結(jié)0106070802030504提升安全性MySQL8.0支持多種AES256加密模式,通過更大的密鑰長度和不同的塊模式增強了高級加密標準。例如,通過加密函數(shù)AES_ENCODE()和解密函數(shù)AES_DECODE()來提高安全強度。AES_ENCODE()的語法格式如下:AES_ENCODE(str,pswd_str)//str為需要加密的字符串,參數(shù)pswd_str是密鑰AES_DECODE()的語法格式如下:AES_ENCODE(str,pswd_str)//str為需要解密的字符串,參數(shù)pswd_str是密鑰提升安全性MySQL8.0允許數(shù)據(jù)庫管理員手動設置賬戶密碼過期時間。任何密碼超期的賬戶想要連接服務端時都必須更改密碼。通過設置default_password_lifetime參數(shù)可以設置賬戶過期時間。首先查看系統(tǒng)中賬戶的過期時間。輸入語句如下:SELECTuser,host,password_last_changed,password_lifetime,password_expiredFROMmysql.user\G;提升安全性MySQL新增了“安全模式”的安裝形式,從而可以避免用戶的數(shù)據(jù)被泄漏。用戶通過以下方式來提升MySQL安裝的安全性:(1)為root賬戶設置密碼。(2)移除能從本地主機以外的地址訪問數(shù)據(jù)庫的root賬戶。(3)移除匿名賬戶。(4)移除test數(shù)據(jù)庫,該數(shù)據(jù)庫默認可被任意用戶甚至匿名賬戶訪問。目錄權限管理賬戶管理訪問控制權限表提升安全性管理角色綜合管理用戶權限本章小結(jié)0107080203040605管理角色創(chuàng)建角色,執(zhí)行語句如下:CREATEROLErole_tt;#創(chuàng)建角色給角色授予權限,執(zhí)行語句如下:GRANTSELECTONdb.*to'role_tt';#給角色role_tt授予查詢權限創(chuàng)建用戶user3,執(zhí)行語句如下:CREATEUSER'user3'@'%'identifiedby'123456';為用戶user3賦予角色role_tt,執(zhí)行語句如下:GRANT'role_tt'TO'user3'@'%';給角色role_tt刪除insert權限,執(zhí)行語句如下:REVOKEINSERTONdb.*FROM'role_tt';查看默認角色

溫馨提示

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

評論

0/150

提交評論