《MySQL數(shù)據(jù)庫原理與應(yīng)用案例教程》 課件 項(xiàng)目10 用戶安全性管理_第1頁
《MySQL數(shù)據(jù)庫原理與應(yīng)用案例教程》 課件 項(xiàng)目10 用戶安全性管理_第2頁
《MySQL數(shù)據(jù)庫原理與應(yīng)用案例教程》 課件 項(xiàng)目10 用戶安全性管理_第3頁
《MySQL數(shù)據(jù)庫原理與應(yīng)用案例教程》 課件 項(xiàng)目10 用戶安全性管理_第4頁
《MySQL數(shù)據(jù)庫原理與應(yīng)用案例教程》 課件 項(xiàng)目10 用戶安全性管理_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《MySQL數(shù)據(jù)庫項(xiàng)目化教程》項(xiàng)目10用戶安全性管理MySQL是一個多用戶數(shù)據(jù)庫,具有功能強(qiáng)大的訪問控制系統(tǒng)。處于安全方面的考慮,需要創(chuàng)建多個普通用戶,并且為每一用戶賦于對不同數(shù)據(jù)庫的訪問限制,以滿足不同用戶的需求。本項(xiàng)目通過典型任務(wù)學(xué)習(xí)新用戶的創(chuàng)建、查看用戶記錄和用戶管理,以及設(shè)置用戶權(quán)限和用戶權(quán)限管理。前言掌握如何創(chuàng)建新用戶、查看用戶記錄。掌握用戶管理。掌握如何設(shè)置、查看用戶權(quán)限。掌握如何取消用戶權(quán)限。學(xué)習(xí)目標(biāo)知識重點(diǎn)創(chuàng)建新用戶。設(shè)置用戶權(quán)限。知識難點(diǎn)用戶管理。用戶權(quán)限管理。知識重點(diǎn)與難點(diǎn)用戶管理任務(wù)1任務(wù)2用戶權(quán)限管理學(xué)習(xí)任務(wù)用戶管理任務(wù)1任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識鏈接45MySQL數(shù)據(jù)庫中,root用戶是超級管理員,擁有所有權(quán)限,包括創(chuàng)建用戶、刪除用戶和修改用戶密碼等管理權(quán)限。在實(shí)際工作過程中,經(jīng)常需要創(chuàng)建擁有不同權(quán)限的普通用戶。根據(jù)需求,完成新用戶的創(chuàng)建、查看用戶記錄、修改用戶名、修改用戶密碼和刪除用戶等操作。任務(wù)描述(1)會創(chuàng)建用戶。(2)會修改用戶名、修改用戶密碼。(3)會刪除用戶。(4)通過用戶管理,提升學(xué)生的數(shù)據(jù)安全意識。任務(wù)目標(biāo)學(xué)習(xí)user權(quán)限表,了解user表中字段的含義。學(xué)習(xí)使用createuser語句和insert語句創(chuàng)建新用戶的方法,以及用戶管理的語句,完成新用戶的創(chuàng)建、查看用戶記錄、修改用戶名、修改用戶密碼和刪除用戶等操作。任務(wù)分析使用createuser語句創(chuàng)建用戶使用insert語句創(chuàng)建用戶修改用戶名user權(quán)限表任務(wù)實(shí)施修改用戶密碼刪除用戶(2)使用createuser創(chuàng)建兩個新用戶,用戶user2的密碼是user2,用戶user3的密碼是user3,連接的主機(jī)名都是locahost。mysql>createuser'user2'@'localhost'identifiedby'user2','user3'@'127.0.0.1'identifiedby'user3';任務(wù)實(shí)施小貼士:在創(chuàng)建用戶的過程中,如果只指定了用戶名而沒指定主機(jī)名,則主機(jī)名默認(rèn)為“%”,表示一組主機(jī)。用戶名后面連接的如果是本機(jī),可以用關(guān)鍵字“l(fā)ocalhost”或者“127.0.0.1”表示。多個用戶之間用“,”分割。步驟2使用insert語句創(chuàng)建用戶使用insert創(chuàng)建一個新用戶,用戶名是user4,密碼是user4,主機(jī)名是locahost。mysql>insertintomysql.user(Host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject)values('localhost','user4','user4','','','');mysql>flushprivileges;);任務(wù)實(shí)施

步驟3查看創(chuàng)建的用戶記錄切換到mysql數(shù)據(jù)庫,通過select語句查看user數(shù)據(jù)表中步驟1和步驟2創(chuàng)建的用戶信息。mysql>usemysql;mysql>selecthost,userfromuser;任務(wù)實(shí)施步驟4修改用戶名將用戶名user1修改為testuser1。mysql>renameuser'user1'@'localhost'to'testuser1'@'localhost';執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施步驟5修改用戶密碼修改用戶user2的密碼為testuser2。mysql>setpasswordfor'user2'@'localhost'='testuser2';任務(wù)實(shí)施步驟6刪除用戶刪除用戶user4。mysql>dropuseruser4@localhost;MySQL在安裝時會自動創(chuàng)建一個名為mysql的數(shù)據(jù)庫,mysql數(shù)據(jù)庫中存儲的都是用戶權(quán)限表。用戶登錄以后,MySQL會根據(jù)這些權(quán)限表的內(nèi)容為每個用戶賦予相應(yīng)的權(quán)限。user數(shù)據(jù)表是MySQL中最重要的一個權(quán)限表,用來記錄允許連接到服務(wù)器的賬號信息,以及一些權(quán)限信息。在user數(shù)據(jù)表里啟用的所有權(quán)限都是全局級的,適用于所有數(shù)據(jù)庫。user數(shù)據(jù)表中的字段大致可以分為4類,分別是用戶列、權(quán)限列、安全列和資源控制列??梢允褂谩癲esc”語句查看user數(shù)據(jù)表的表結(jié)構(gòu)。(1)用戶列用戶列存儲了用戶連接MySQL數(shù)據(jù)庫時需要輸入的信息。包括Host、User和authentication_string,分別表示主機(jī)名、用戶名和密碼。用戶登錄時,如果這3個字段同時匹配,MySQL數(shù)據(jù)庫系統(tǒng)才會允許其登錄。創(chuàng)建新用戶時,也是設(shè)置這3個字段的值。修改知識鏈接——user權(quán)限表用戶密碼時,實(shí)際就是修改user表的authentication_string字段的值。因此,這3個字段決定了用戶能否登錄。(2)權(quán)限列權(quán)限列的字段決定用戶的權(quán)限,用來描述在全局范圍內(nèi)允許對數(shù)據(jù)和數(shù)據(jù)庫進(jìn)行的操作。權(quán)限大致分為兩大類,分別是高級管理權(quán)限和普通權(quán)限:高級管理權(quán)限主要對數(shù)據(jù)庫進(jìn)行管理,例如關(guān)閉服務(wù)的權(quán)限、超級權(quán)限和加載用戶等;普通權(quán)限主要操作數(shù)據(jù)庫,例如查詢權(quán)限、修改權(quán)限等。user表的權(quán)限列包括Select_priv、Insert_priv等以priv結(jié)尾的字段,這些字段值的數(shù)據(jù)類型為ENUM,可取的值只有Y和N:Y表示該用戶有對應(yīng)的權(quán)限,N表示該用戶沒有對應(yīng)的權(quán)限。從安全角度考慮,這些字段的默認(rèn)值都為N。知識鏈接——user權(quán)限表(3)安全列安全列主要用來管理用戶的安全信息,其中包括6個字段,具體如下。ssl_type和ssl_cipher:用于加密。x509_issuer和x509_subject:用于標(biāo)識用戶。plugin和authentication_string:用于存儲與授權(quán)相關(guān)的插件。(4)資源控制列資源控制列的字段用來限制用戶使用的資源。所有字段的默認(rèn)值都為0,表示沒有限制。一個小時內(nèi)用戶查詢或者連接數(shù)量超過資源控制限制,用戶將被鎖定,直到下一個小時才可以在此執(zhí)行對應(yīng)的操作。資源控制列包括以下4個字段:max_questions :規(guī)定每小時允許執(zhí)行查詢的操作次數(shù)知識鏈接——user權(quán)限表max_updates:規(guī)定每小時允許執(zhí)行更新的操作次數(shù)max_connections:規(guī)定每小時允許執(zhí)行的連接操作次數(shù)max_user_connections:規(guī)定允許同時建立的連接次數(shù)知識鏈接——user權(quán)限表CREATEUSER:創(chuàng)建用戶關(guān)鍵字。user:指定創(chuàng)建用戶賬號,格式為'user_name'@'host_name'。其中user_name是用戶名,host_name為主機(jī)名,即用戶連接MySQL時所用主機(jī)的名字。如果在創(chuàng)建的過程中,只給出了用戶名,而沒指定主機(jī)名,那么主機(jī)名默認(rèn)為“%”,表示一組主機(jī),即對所有主機(jī)開放權(quán)限。[IDENTIFIEDBY'auth_string']:用于指定用戶密碼。新用戶可以沒有初始密碼,若該用戶不設(shè)密碼,可省略此子句。'auth_string'表示用戶登錄時使用的密碼,需要用單引號括起來。知識鏈接——使用createuser語句創(chuàng)建用戶知識鏈接——使用insert語句創(chuàng)建用戶可以使用insert語句直接將用戶的信息添加到mysql.user數(shù)據(jù)表中。使用insert語句創(chuàng)建用戶需要注意以下幾點(diǎn):(1)通常使用insert語句創(chuàng)建用戶,只添加Host、User和authentication_string這3個字段的值。(2)由于mysql數(shù)據(jù)庫的user表中,ssl_cipher、x509_issuer和x509_subject這3個字段沒有默認(rèn)值,所以向user表插入新記錄時,一定要設(shè)置這3個字段的值,否則insert語句將不能執(zhí)行。(3)user表中的User和Host字段區(qū)分大小寫,創(chuàng)建用戶時要指定正確的用戶名稱或主機(jī)名。知識鏈接——使用insert語句創(chuàng)建用戶(4)使用insert語句創(chuàng)建用戶后。這時如果通過該賬戶登錄MySQL服務(wù)器,不會登錄成功,因?yàn)閯?chuàng)建的用戶還沒有生效。需要使用flushprivileges命令刷新系統(tǒng)權(quán)限相關(guān)數(shù)據(jù)表,讓用戶生效。insert語句創(chuàng)建新用戶的基本語句為:知識鏈接——修改用戶名語法分析:RENAMEUSER:修改用戶名關(guān)鍵字。old_user:已經(jīng)存在的用戶名。new_user:修改后的新用戶名。知識鏈接——修改用戶密碼在MySQL中,只有root用戶可以通過更新MySQL數(shù)據(jù)庫來更改密碼。使用root用戶登錄到MySQL服務(wù)器后,可以使用set語句來修改普通用戶密碼。SETPASSWORD:修改用戶密碼關(guān)鍵字。[FORuser]:表示修改指定主機(jī)上特定普通用戶的密碼,此選項(xiàng)為可選項(xiàng)。如果省略,則修改當(dāng)前用戶密碼。auth_string:為設(shè)置的新密碼。知識鏈接——刪除用戶DROPUSER:刪除用戶關(guān)鍵字。[IFEXISTS]:用于防止刪除用戶時,在用戶不存在的情況下發(fā)生錯誤。user:需要刪除的用戶,由用戶的用戶名和主機(jī)名組成。用戶權(quán)限管理任務(wù)2任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識鏈接45

用戶權(quán)限管理主要是對數(shù)據(jù)庫的用戶進(jìn)行權(quán)限驗(yàn)證。所有用戶的權(quán)限都存儲在MySQL的權(quán)限表中。數(shù)據(jù)庫管理員要對用戶權(quán)限進(jìn)行管理,合理的權(quán)限管理能夠保證數(shù)據(jù)庫系統(tǒng)的安全,不合理的權(quán)限設(shè)置可能會給數(shù)據(jù)庫系統(tǒng)帶來意想不到的危害。根據(jù)需求,完成對用戶權(quán)限的設(shè)置、查看用戶權(quán)限和取消用戶權(quán)限等操作。任務(wù)描述(1)會設(shè)置用戶權(quán)限。(2)會查看用戶權(quán)限。(3)會取消用戶權(quán)限。(4)通過用戶權(quán)限管理,提升學(xué)生的數(shù)據(jù)安全意識。任務(wù)目標(biāo)學(xué)習(xí)設(shè)置用戶權(quán)限、查看用戶權(quán)限、取消用戶權(quán)限的命令,根據(jù)實(shí)際任務(wù)需求,完成對用戶權(quán)限的設(shè)計(jì)和管理。任務(wù)分析設(shè)置用戶權(quán)限查看用戶權(quán)限取消用戶權(quán)限任務(wù)實(shí)施MySQL的權(quán)限步驟1設(shè)置用戶權(quán)限(1)創(chuàng)建一個新的用戶user10,密碼為user10。授予用戶user10對所有的數(shù)據(jù)庫的所有表有查詢、插入權(quán)限,并授予grant權(quán)限。mysql>createuser'user10'@'localhost'identifiedby'user10';mysql>grantselect,inserton*.*to'user10'@'localhost'withgrantoption;任務(wù)實(shí)施(2)創(chuàng)建一個新的用戶user11,密碼為user11。授予用戶user11在數(shù)據(jù)庫chjgl_db的所有權(quán)限。mysql>createuser'user11'@'localhost'identifiedby'user11';mysql>grantallonchjgl_db.*to'user11'@'localhost';任務(wù)實(shí)施(3)創(chuàng)建一個新的用戶user12,密碼為user12。授予用戶user12在數(shù)據(jù)庫chjgl_db中的tb_student數(shù)據(jù)表上查詢、刪除權(quán)限。mysql>createuser'user12'@'localhost'identifiedby'user12';mysql>grantselect,deleteonchjgl_db.tb_studentto'user12'@'localhost';任務(wù)實(shí)施(4)創(chuàng)建一個新的用戶user13,密碼為user13。授予用戶user13在數(shù)據(jù)庫chjgl_db中的tb_student數(shù)據(jù)表上,對sname、ssex字段值具有修改的權(quán)限。mysql>createuser'user13'@'localhost'identifiedby'user13';mysql>grantupdate(sname,ssex)onchjgl_db.tb_studentto'user13'@'localhost';任務(wù)實(shí)施任務(wù)實(shí)施步驟2查看用戶權(quán)限查看用戶user10的權(quán)限。mysql>showgrantsfor'user10'@'localhost';小貼士:由于用戶的基本權(quán)限存儲在mysql.user數(shù)據(jù)表中,因此,查看用戶權(quán)限也可以使用“select*frommysql.user;”語句。任務(wù)實(shí)施步驟3取消用戶權(quán)限(1)取消用戶user10的所有權(quán)限,并查看取消后user10的權(quán)限。mysql>revokeallprivileges,grantoptionfrom'user10'@'localhost';mysql>showgrantsfor'user10'@'localhost';(2)取消用戶user11在數(shù)據(jù)庫chjgl_db的所有數(shù)據(jù)表的update和delete權(quán)限。mysql>revokeupdate,deleteonchjgl_db.*from'user11'@'localhost';任務(wù)實(shí)施MySQL中的權(quán)限信息被存儲在MySQL數(shù)據(jù)庫的user、db、host、columns_priv和tables_priv等數(shù)據(jù)表中。MySQL的相關(guān)權(quán)限以及在user數(shù)據(jù)表中對應(yīng)的字段和權(quán)限范圍見表10-1。知識鏈接——MySQL的權(quán)限知識鏈接——MySQL的權(quán)限知識鏈接——MySQL的權(quán)限在特定的SQL語句中對MySQL權(quán)限有更具體的要求,表中部分權(quán)限說明如下:(1)create權(quán)限,可以創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表、索引。(2)drop權(quán)限,可以刪除已有的數(shù)據(jù)庫、數(shù)據(jù)表、索引。(3)insert、delete、update、select權(quán)限,可以對數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行增加、刪除、更新和查詢操作。(4)alter權(quán)限,可以用于修改數(shù)據(jù)表的結(jié)構(gòu)或重命名數(shù)據(jù)表。(5)grantoption權(quán)限,允許為其他用戶授權(quán),可用于數(shù)據(jù)庫和數(shù)據(jù)表。(6)all[privileges]權(quán)限,授予在指定的訪問級別的所有權(quán)限,除了grantoption和proxy。(7)usage權(quán)限,“noprivileges”的同義詞,沒有權(quán)限。知識鏈接——MySQL的權(quán)限知識鏈接——設(shè)置用戶權(quán)限一般情況下,數(shù)據(jù)庫管理員首先使用createuser創(chuàng)建用戶并定義其非特權(quán)特征,比如密碼,是否使用安全連接以及對服務(wù)器資源的訪問限制,然后使用grant語句來設(shè)置用戶的權(quán)限。其基本語法格式為:GRANT:設(shè)置用戶權(quán)限關(guān)鍵字。priv_type:表示設(shè)置權(quán)限的類型。例如,select、insert、delete等。column_list:表示權(quán)限作用于哪些字段,如果省略該參數(shù),則作用于整個數(shù)據(jù)表。priv_level:用于指定權(quán)限級別的值,有以下幾類格式:知識鏈接——設(shè)置用戶權(quán)限(1)*:表示當(dāng)前數(shù)據(jù)庫中的所有表。(2)*.*:表示所有數(shù)據(jù)庫中的所有表。(3)db_name.*:表示某個數(shù)據(jù)庫中的所有表,db_name指定數(shù)據(jù)庫名。(4)db_name.tbl_name:表示某個數(shù)據(jù)庫中的某個表或視圖,db_name指定數(shù)據(jù)庫名,tbl_name指定表名或視圖名。(5)db_name.routine_name:表示某個數(shù)據(jù)庫中的某個存儲過程或函數(shù),routine_name指定存儲過程名或函數(shù)名。user:設(shè)置權(quán)限的用戶,由用戶的用戶名和主機(jī)名組成。格式為'username'@'hostname'。WI

溫馨提示

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

評論

0/150

提交評論