




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章數(shù)據(jù)庫的安全管理數(shù)據(jù)庫存在的不安全因素非授權(quán)用戶對數(shù)據(jù)庫的惡意存取和破壞
一些黑客和犯罪分子在用戶存取數(shù)據(jù)庫時(shí)獵取用戶名和用戶口令,然后假冒合法用戶偷取、修改甚至破壞用戶數(shù)據(jù)。數(shù)據(jù)庫中重要或敏感的數(shù)據(jù)被泄露
黑客和敵對分子千方百計(jì)盜竊數(shù)據(jù)庫中的重要數(shù)據(jù),一些機(jī)密信息被暴露。安全環(huán)境的脆弱性
數(shù)據(jù)庫的安全性與計(jì)算機(jī)系統(tǒng)的安全性,包括計(jì)算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等的安全性是緊密聯(lián)系的。操作系統(tǒng)安全的脆弱,網(wǎng)絡(luò)協(xié)議安全保障的不足等都會(huì)造成數(shù)據(jù)庫安全性的破壞。曾經(jīng)在伊朗以及其他中東國家發(fā)現(xiàn)過一種被稱為“flame”(火焰)的病毒程序,這個(gè)程序可以讓自己假冒成Windows更新文件隱藏在目標(biāo)計(jì)算機(jī)里。它的作用非常特別,可以隨時(shí)復(fù)制文件、截圖、下載聊天記錄甚至可以遠(yuǎn)程啟動(dòng)計(jì)算機(jī)、激活麥克風(fēng)和攝像頭并偷偷錄下視頻和音頻。這是一種特工病毒,它的作用不是搞破壞而是盡可能的隱藏自己竊取一切有用的信息?!癴lame”通過藍(lán)牙系統(tǒng)來接收指令,并且可以制造假的電子憑證來隱藏身份,最牛的是當(dāng)它被發(fā)現(xiàn)后還可以立即刪除掉所有記錄痕跡并自我毀滅,這簡直就跟特工干的事兒一模一樣。7.1數(shù)據(jù)庫安全性概述數(shù)據(jù)庫原理與設(shè)計(jì)5數(shù)據(jù)庫安全技術(shù)用戶標(biāo)識與鑒別存取控制視圖審計(jì)數(shù)據(jù)加密1.用戶標(biāo)識與鑒別
當(dāng)前最常用的鑒別方法。即用什么來標(biāo)識一個(gè)用戶,又怎樣去識別它。用戶的個(gè)人特征識別:如用戶的聲音、指紋、簽名等。用戶的特有東西識別:如用戶的磁卡、鑰匙等。用戶的自定義識別:如用戶設(shè)置口令、密碼和一組預(yù)定的問答等。2.存取控制策略(1)定義用戶權(quán)限,并將用戶權(quán)限登記到數(shù)據(jù)字典中。用戶對某一數(shù)據(jù)對象的操作權(quán)力稱為權(quán)限。某個(gè)用戶應(yīng)該具有何種權(quán)限是個(gè)管理問題和政策問題而不是技術(shù)問題。DBMS的功能就是保證這些決定的執(zhí)行。DBMS系統(tǒng)必須提供適當(dāng)?shù)恼Z言來定義用戶權(quán)限,這些定義經(jīng)過編譯后存放在數(shù)據(jù)字典中,被稱做安全規(guī)則或授權(quán)規(guī)則。(2)合法權(quán)限檢查當(dāng)用戶發(fā)出存取數(shù)據(jù)庫的操作請求后,DBMS查找數(shù)據(jù)字典,根據(jù)安全規(guī)則進(jìn)行合法權(quán)限檢查,若用戶的操作請求超出了定義的權(quán)限,系統(tǒng)將拒絕執(zhí)行此操作。通過視圖用戶只能查看和修改他們所能看到的數(shù)據(jù)。①建立視圖score_db。CREATEVIEWscore_dbASSELECT*FROMscoreWHEREcnam=’數(shù)據(jù)庫’;示例②為用戶授予操作視圖的權(quán)限。GRANTSELECTONscore_dbTO王莎;視圖+授權(quán)常用的安全性控制方法3.視圖機(jī)制
審計(jì)功能把用戶對數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入“審計(jì)日志”中,稱為審計(jì)跟蹤。
審計(jì)員可以利用審計(jì)日志監(jiān)控?cái)?shù)據(jù)庫中的各種行為,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
還可以通過對審計(jì)日志分析,對潛在的威脅提前采取措施加以防范。審計(jì)通常是很費(fèi)時(shí)間和空間的,所以DBMS往往都將其作為可選特征,審計(jì)功能一般主要用于安全性要求較高的部門。4.審計(jì)跟蹤數(shù)據(jù)加密是防止數(shù)據(jù)庫中數(shù)據(jù)在存儲(chǔ)和傳輸中失密的有效手段。加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)(稱為明文)變換為不可直接識別的格式(稱為密文),從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
由于數(shù)據(jù)加密與解密也是比較費(fèi)時(shí)的操作,而且數(shù)據(jù)加密與解密程序會(huì)占用大量系統(tǒng)資源,因此數(shù)據(jù)加密功能通常也作為可選特征。5.數(shù)據(jù)加密7.2MySQL的安全設(shè)置數(shù)據(jù)庫原理與設(shè)計(jì)137.2.1權(quán)限表1.user表user表字段可以分為4類,用戶列、權(quán)限列、安全列和資源控制列。(1)用戶列用戶列常用的字段有Host、User、authentication_string,分別表示主機(jī)名、用戶名和密碼。當(dāng)添加、刪除、修改或者查看用戶信息時(shí),其實(shí)就是對user表進(jìn)行增、刪、改、查的操作。【例7-1】查詢user表中相關(guān)用戶字段信息。SELECTHost,User,authentication_stringFROMmysql.user;(2)權(quán)限列user表中包含了幾十個(gè)以_priv結(jié)尾的與權(quán)限有關(guān)的字段,這些權(quán)限不僅包括查詢權(quán)限、修改權(quán)限等普通權(quán)限,還包括關(guān)閉服務(wù)器權(quán)限、超級權(quán)限和加載用戶等高級權(quán)限?!纠?-2】查詢localhost主機(jī)下的用戶的select、insert、update權(quán)限。SELECTselect_priv,insert_priv,update_priv,User,HostFROMmysql.userWHEREHost='localhost';(3)安全列安全列有12個(gè)字段,其中ssl用于加密,x509標(biāo)準(zhǔn)可用于標(biāo)識用戶,plugin字段是用于驗(yàn)證用戶身份的插件,如果該字段為空,服務(wù)器就使用內(nèi)建授權(quán)驗(yàn)證機(jī)制驗(yàn)證用戶身份?!纠?-3】查詢服務(wù)器是否支持ssl功能。SHOWVARIABLESLIKE'have_openssl';(4)資源控制列資源控制列的字段用來限制用戶使用的資源,包括4個(gè)字段。①max_questions:用戶每小時(shí)允許執(zhí)行的查詢操作次數(shù)。②max_updates:用戶每小時(shí)允許執(zhí)行的更新操作次數(shù)。③max_connections:用戶每小時(shí)允許執(zhí)行的連接操作次數(shù)。④max_user_connections:用戶允許同時(shí)建立的連接次數(shù)?!纠?-4】查詢r(jià)oot用戶的4個(gè)資源控制字段的信息。SELECTmax_questions,max_updates,max_connections,max_user_connectionsFROMmysql.userWHEREUser='root';2.db表
db表中存儲(chǔ)了用戶對某個(gè)數(shù)據(jù)庫的操作權(quán)限,決定用戶能從哪個(gè)主機(jī)存取哪個(gè)數(shù)據(jù)庫。(1)用戶列db表的用戶列有3個(gè)字段Host、User、Db,分別表示主機(jī)名、用戶名和數(shù)據(jù)庫名,具體表示從某個(gè)主機(jī)連接某個(gè)用戶對某個(gè)數(shù)據(jù)庫的操作權(quán)限。(2)權(quán)限列db表中有19個(gè)權(quán)限字段,其中create_routine_priv和alter_routine_priv兩個(gè)字段表明用戶是否有創(chuàng)建和修改存儲(chǔ)過程的權(quán)限。3.tables_priv表
tables_priv表用來對單個(gè)表設(shè)置操作權(quán)限,包括8個(gè)字段。(1)Host、Db、User、Table_name分別表示主機(jī)名、數(shù)據(jù)庫名、用戶名和表名。(2)Grantor表示修改該記錄的用戶。(3)Timestamp表示修改該記錄的時(shí)間。(4)Table_priv表示對表進(jìn)行操作的權(quán)限,包括select、insert、update、delete、create、drop、grant、references、index和alter。(5)Column_priv表示對表中的列進(jìn)行操作的權(quán)限,包括select、insert、update和refrences。4.column_priv表
column_priv表用來對表中的某一列設(shè)置操作權(quán)限。包括7個(gè)字段,分別是Host、Db、User、Table_name、Column_name、Timestamp、Column_priv。其中Column_name用來指定對哪些數(shù)據(jù)列具有操作權(quán)限。5.proc_priv表
proc_priv表用來對存儲(chǔ)過程和存儲(chǔ)函數(shù)設(shè)置操作權(quán)限,(1)Host、Db、User分別表示主機(jī)名、數(shù)據(jù)庫名和用戶名。(2)Routine_name表示存儲(chǔ)過程或存儲(chǔ)函數(shù)的名稱。(3)Routine_type表示存儲(chǔ)過程或存儲(chǔ)函數(shù)的類型。(4)Grantor表示插入或修改該記錄的用戶。(5)Proc_priv表示擁有的權(quán)限,包括excute、alterroutine、grant三種。(6)Timestamp表示存儲(chǔ)記錄更新的時(shí)間。7.2.2用戶管理MySQL的用戶包括root用戶和普通用戶,root用戶是超級管理員,擁有對整個(gè)MySQL服務(wù)器完全控制的權(quán)限,而普通用戶只能擁有賦予給它的權(quán)限。在MySQL數(shù)據(jù)庫中,為了防止非授權(quán)用戶對數(shù)據(jù)庫進(jìn)行存取,DBA可以創(chuàng)建登錄用戶、修改用戶信息和刪除用戶。1.創(chuàng)建用戶CREATEUSER用戶[IDENTIFIEDBY'密碼'][,用戶[IDENTIFIEDBY'密碼']]…;【說明】①用戶的格式:用戶名@主機(jī)名主機(jī)名即用戶連接MySQL時(shí)所在主機(jī)的名字。如果在創(chuàng)建時(shí)只給出了賬號的用戶名,而沒有指定主機(jī)名,則主機(jī)名會(huì)默認(rèn)為是“%”,表示一組主機(jī);localhost表示本地主機(jī)。②IDENTIFIEDBY子句指定創(chuàng)建用戶時(shí)的密碼?!纠?-6】創(chuàng)建本機(jī)用戶tempuser,其密碼為temp。CREATEUSERtempuser@localhostIDENTIFIEDBY'temp';
創(chuàng)建的新用戶的詳細(xì)信息自動(dòng)保存在系統(tǒng)數(shù)據(jù)庫mysql的user表中,執(zhí)行如下SQL語句,可查看數(shù)據(jù)庫服務(wù)器的用戶信息。USEmysql;SELECT*FROMuserWHEREuser='tempuser';2.修改用戶密碼SETPASSWORDFOR用戶='新密碼';【例7-7】修改用戶賬號tempuser的密碼為123456。SETPASSWORDFORtempuser@localhost='123456';【例7-8】修改root超級用戶的密碼為root。SETPASSWORDFORroot@localhost='root';3.修改用戶名RENAMEUSER舊用戶名TO新用戶名[,舊用戶名TO新用戶名][,…];【例7-9】修改普通用戶tempuser的用戶名為temp_U。RENAMEUSERtempuser@localhostTOtemp_U@localhost;USEmysql;SELECT*FROMuserWHEREuser='temp_U'andhost='localhost';4.刪除用戶DROPUSER用戶[,…];【例7-10】刪除用戶temp_U。DROPUSERtemp_U@localhost;USEmysql;SELECT*FROMuserWHEREuser='temp_U'andhost='localhost';7.2.3權(quán)限管理權(quán)限管理主要是對登錄到MySQL服務(wù)器的數(shù)據(jù)庫用戶進(jìn)行權(quán)限驗(yàn)證。所有用戶的權(quán)限都存儲(chǔ)在MySQL的權(quán)限表中。合理的權(quán)限管理能夠保證數(shù)據(jù)庫系統(tǒng)的安全,不合理的權(quán)限設(shè)置會(huì)給數(shù)據(jù)庫系統(tǒng)帶來危害。權(quán)限管理主要包括兩個(gè)內(nèi)容:授予權(quán)限和取消權(quán)限。1.授予權(quán)限(1)授予MySQL字段級別權(quán)限GRANT
權(quán)限名稱(列名[,列名,…])[,權(quán)限名稱(列名[,列名,…]),…]
ONTABLE數(shù)據(jù)庫名.表名或視圖名
TO用戶[,用戶,…];在MySQL中,針對不同的數(shù)據(jù)庫資源,可以將權(quán)限分為五類,即MySQL字段級別權(quán)限、MySQL表級別權(quán)限、MySQL存儲(chǔ)程序級別權(quán)限、MySQL數(shù)據(jù)庫級別權(quán)限和MySQL服務(wù)器管理員級別權(quán)限。
系統(tǒng)數(shù)據(jù)庫mysql的系統(tǒng)表columns_priv中記錄了用戶字段級別權(quán)限的驗(yàn)證信息?!纠?-11】創(chuàng)建新用戶column_user,并為其授予對fruits表中列的操作權(quán)限。CREATEUSERcolumn_user@localhostIDENTIFIEDBY'password';GRANT
SELECT(f_name,f_price),UPDATE(f_price),REFERENCES(s_id)
ONTABLEfruitsales.fruits
TOcolumn_user@localhost;SELECT*FROMmysql.columns_priv;以column_user用戶連接MySQL服務(wù)器SELECTf_name,f_priceFROMfruitsales.fruits;SELECTf_idFROMfruitsales.fruits;(2)授予MySQL表級別權(quán)限GRANT
權(quán)限名稱[,權(quán)限名稱,…]
ONTABLE數(shù)據(jù)庫名.表名或數(shù)據(jù)庫名.視圖名
TO用戶[,用戶,…];
系統(tǒng)數(shù)據(jù)庫mysql的系統(tǒng)表tables_priv中記錄了用戶MySQL表級別權(quán)限的驗(yàn)證信息。【例7-12】創(chuàng)建新用戶table_user,并為其授予對fruits表的操作權(quán)限。CREATEUSERtable_user@localhostIDENTIFIEDBY'password';GRANTALTER,SELECT,INSERT(f_id,f_name,f_price)
ONTABLEfruitsales.fruits
TOtable_user@localhost;SELECT*FROMmysql.tables_privWHEREhost='localhost'anduser='table_user';以table_user用戶連接MySQL服務(wù)器ALTERTABLEfruitsales.fruits
ADDf_originVARCHAR(50);
DESCfruitsales.fruits;【例7-13】創(chuàng)建新用戶view_user,授予其只能查詢供應(yīng)商101水果銷售情況信息。CREATEUSERview_user@localhostIDENTIFIEDBY'password';USEfruitsales;CREATEVIEWs101_od
ASSELECTs_name,o_num,f_name,quantityFROMfruitsf,orderitemso,supplierssWHEREf.f_id=o.f_idANDf.s_id=s.s_idANDs.s_id=101;GRANTSELECTON
s101_od
TOview_user@localhost;以view_user用戶連接MySQL服務(wù)器SELECT*FROMfruitsales.s101_od;(3)授予MySQL存儲(chǔ)程序級別權(quán)限GRANT權(quán)限名稱[,權(quán)限名稱,…]
ONFUNCTION|PROCEDURE數(shù)據(jù)庫名.函數(shù)名|數(shù)據(jù)庫名.存儲(chǔ)過程名
TO用戶[,用戶,…];
系統(tǒng)數(shù)據(jù)庫mysql的系統(tǒng)表procs_priv中記錄了用戶MySQL存儲(chǔ)程序級別權(quán)限的驗(yàn)證信息。【例7-14】創(chuàng)建新用戶proc_user,并為其授予對fruitsales數(shù)據(jù)庫中的存儲(chǔ)過程的操作權(quán)限。CREATEUSERproc_user@localhostIDENTIFIEDBY'password';DELIMITER@@CREATEPROCEDUREfruitsales.test_p()BEGINSELECT*FROMfruitsales.fruits;END@@GRANTEXECUTEONPROCEDUREfruitsales.test_pTOproc_user@localhost;以proc_user用戶連接MySQL服務(wù)器CALLfruitsales.test_p;(4)授予MySQL數(shù)據(jù)庫級別權(quán)限GRANT權(quán)限名稱[,權(quán)限名稱,…]
ON
數(shù)據(jù)庫名.*TO用戶[,用戶,…];
系統(tǒng)數(shù)據(jù)庫mysql的系統(tǒng)表db中記錄了用戶MySQL數(shù)據(jù)庫級別權(quán)限的驗(yàn)證信息。【例7-15】創(chuàng)建新用戶database_user,并為其授予對fruitsales數(shù)據(jù)庫的操作權(quán)限。CREATEUSERdatabase_user@localhostIDENTIFIEDBY'password';GRANTCREATE,SELECT,DROPONfruitsales.*
TOdatabase_user@localhost;以database_user用戶連接MySQL服務(wù)器CREATETABLEfruitsales.test(idINTNOTNULLPRIMARYKEY,nameVARCHAR(10));DROPTABLEfruitsales.test;(5)授予MySQL服務(wù)器管理員級別權(quán)限GRANT權(quán)限名稱[,權(quán)限名稱,…]
ON
*.*
TO用戶[,用戶,…];
系統(tǒng)數(shù)據(jù)庫mysql的系統(tǒng)表user中記錄了用戶MySQL服務(wù)器管理員級別權(quán)限的驗(yàn)證信息?!纠?-16】創(chuàng)建新用戶server_user,并為其授予對所有數(shù)據(jù)庫的操作權(quán)限。CREATEUSERserver_user@localhostIDENTIFIEDBY'password';GRANTALLPRIVILEGES
ON*.*
TOserver_user@localhost;以sever_user用戶連接MySQL服務(wù)器CREATEDATABASEtest_db;(6)權(quán)限的轉(zhuǎn)移權(quán)限的轉(zhuǎn)移通過在GRANT語句中使用WITHGRANTOPTION子句來實(shí)現(xiàn)。如果指定為WITHGRANTOPTION,則表示TO子句中的所有用戶都具有把自己所擁有的權(quán)限授予給其他用戶的權(quán)利,而無論那些其它用戶是否擁有該權(quán)限?!纠?-17】創(chuàng)建新用戶u1和u2,為u1賦予對fruits表增刪改查的權(quán)限,并且u1能夠?qū)⑺鶕碛械臋?quán)限再賦予給u2。CREATEUSERu1@localhostIDENTIFIEDBY'123';CREATEUSERu2@localhostIDENTIFIEDBY'456';GRANTSELECT,INSERT,UPDATE,DELETEONfruitsales.fruits
TO
u1@localhost
WITHGRANTOPTION;以u1用戶連接MySQL服務(wù)器GRANTSELECTONfruitsales.fruitsTO
u2@localhost;以u2用戶連接MySQL服務(wù)器SELECT*FROMfruitsales.fruits;2.撤消權(quán)限(1)撤消所有權(quán)限REVOKE
ALLPRIVILEGES,GRANTOPTION
FROM用戶[,用戶,…];【例7-18】撤消例7-11用戶column_user@localhost的所有權(quán)限。SELECT*FROMmysql.columns_priv
WHEREuser='column_user'ANDhost='localhost';REVOKE
ALLPRIVILEGES,GRANTOPTION
FROMcolumn_user@localhost;
SELECT*FROMmysql.columns_privWHEREuser='column_user'ANDhost='localhost';(2)撤消指定權(quán)限REVOKE權(quán)限名稱[(列名[,列名,…])][,權(quán)限名稱[(列名[,列名,…])],…]ON*.*|數(shù)據(jù)庫名.*|數(shù)據(jù)庫名.表名或視圖名FROM用戶[,用戶,…];【例7-19】撤消例7-14用戶database_user@localhost的CREAT和DROP權(quán)限。SELECT*FROMdbWHEREhost='localhost'anduser='database_user';REVOKE
CREATE,DROP
ONfruitsales.*
FROMdatabase_user@localhost;SELECT*FROMmysql.dbWHEREhost='localhost'anduser='database_user';7.2.4角色管理MySQL的權(quán)限設(shè)置是非常復(fù)雜的,權(quán)限的類型也非常多,這就為DBA有效地管理數(shù)據(jù)庫權(quán)限帶來了困難。另外,數(shù)據(jù)庫的用戶通常有幾十個(gè)、幾百個(gè)、甚至成千上萬個(gè)。如果管理員為每個(gè)用戶授予或者撤銷相應(yīng)的權(quán)限,則這個(gè)工作量是非常龐大的。為了簡化權(quán)限管理,MySQL提供了角色的概念。角色是具有名稱的一組相關(guān)權(quán)限的集合,即將不同的權(quán)限集合在一起就形成了角色??梢允褂媒巧珵橛脩羰跈?quán),同樣也可以撤銷角色。由于角色集合了多種權(quán)限,所以當(dāng)為用戶授予角色時(shí),相當(dāng)于為用戶授予了多種權(quán)限。這樣就避免了向用戶逐一授權(quán),從而簡化了用戶權(quán)限的管理。1.創(chuàng)建角色CREATEROLE角色;【說明】角色格式:角色名@主機(jī)名?!纠?-20】分別在本地主機(jī)上創(chuàng)建應(yīng)用程序角色app、運(yùn)維人員角色ops、開發(fā)人員讀角色dev_read、開發(fā)人員寫角色dev_write。CREATEROLEapp@localhost,ops@localhost,dev_read@localhost,dev_write@localhost;SELECT*FROMmysql.userWHEREhost='localhost'ANDuserIN('app','ops','dev_read','dev_write');2.授予角色權(quán)限只需將GRANT語句TO后的用戶改為角色即可?!纠?-21】分別授予角色app數(shù)據(jù)讀寫權(quán)限、角色ops訪問數(shù)據(jù)庫權(quán)限、角色dev_read讀取權(quán)限、角色dev_write寫權(quán)限。GRANTSELECT,INSERT,UPDATE,DELETEONfruitsales.*TOapp@localhost;GRANTALLPRIVILEGESONfruitsales.*TOops@localhost;GRANTSELECTONfruitsales.*TOdev_read@localhost;GRANTINSERT,UPDATE,DELETEONfruitsales.*TOdev_write@localhost;3.授予用戶角色GRANT
角色[,角色,…]TO用戶[,用戶,…];【例7-22】分別將角色授予新用戶app01、ops01、dev01、dev02、dev03。CREATEUSERapp01@localhostIDENTIFIEDBY'000000';CREATEUSERops01@localhostIDENTIFIEDBY'000000';CREATEUSERdev01@localhostIDENTIFIEDBY'000000';CREATEUSERdev02@localhostIDENTIFIEDBY'000000';CREATEUSERdev03@localhostIDENTIFIEDBY'000000';創(chuàng)建新的用戶賬號GRANTapp@localhostTOapp01@localhost;GRANTops@localhostTOops01@localhost;GRANTdev_read@localhostTOdev01@localhost;GRANTdev_read@localhost,dev_write@localhostTOdev02@localhost,dev03@localhost;給用戶賬號分配角色setglobalactivate_all_roles_on_login=ON;用戶使用角色權(quán)限前,必須要先激活角色以dev01用戶連接MySQL服務(wù)器SELECT*FROMfruitsales.suppliers;4.撤消用戶角色REVOKE角色[,角色,…]FROM用戶[,用戶,…];【例7-23】撤消用戶dev01的角色dev_read。REVOKEdev_read@localhostFROMdev01@localhost;以dev01用戶連接MySQL服務(wù)器SELECT*FROMfruitsales.suppliers;5.刪除角色DROPROLE角色[,角色,…];【例7-24】刪除角色app和ops。DROPROLE'app'@'localhost','ops'@'localhost';7.2.5密碼管理**1.Windows系統(tǒng)下丟失MySQLroot登錄密碼的解決方法(1)授予MySQL字段級別權(quán)限(1)以管理員身份打開“命令提示符”窗口,關(guān)閉MySQL服務(wù),進(jìn)入MySQL的bin目錄,執(zhí)行命令及執(zhí)行結(jié)果如圖7-1所示。(2)開啟安全模式下的MySQL服務(wù),執(zhí)行命令及執(zhí)行結(jié)果如圖7-2所示,命令執(zhí)行后光標(biāo)一直在閃爍。(3)在不關(guān)閉圖7-2窗口的基礎(chǔ)上,重新打開一個(gè)“命令提示符”窗口,登錄MySQL,執(zhí)行命令及執(zhí)行結(jié)果如圖7-3所示。(4)使用UPDATE語句將root的密碼置空。在MySQL8.0版本的安全模式下,如果root用戶的密碼不為空,就無法直接修改。SQL語句及執(zhí)行結(jié)果如圖7-4所示。(5)執(zhí)行完圖7-4中的語句后,需要刷新一下,如果不刷新將會(huì)報(bào)錯(cuò),SQL語句及執(zhí)行結(jié)果如圖7-5所示。(6)刷新之后使用ALTERUSER語句修改用戶的密碼,SQL語句及執(zhí)行結(jié)果如圖7-6所示。(7)退出MySQL,SQL語句及執(zhí)行結(jié)果如圖7-7所示。(8)關(guān)閉圖7-7和圖7-2所示的兩個(gè)“命令提示符”窗口。(9)重新打開一個(gè)新的“命令提示符”窗口,重啟MySQL服務(wù),執(zhí)行命令及執(zhí)行結(jié)果如圖7-8所示。(10)MySQL服務(wù)啟動(dòng)成功之后,root用戶用新密碼登錄MySQL,執(zhí)行命令及執(zhí)行結(jié)果如圖7-9所示。執(zhí)行結(jié)果顯示,在Windows下重新設(shè)置root用戶密碼成功。2.密碼管理(1)密碼過期策略手動(dòng)設(shè)置賬號密碼過期的SQL語句格式如下:
ALTERUSER用戶PASSWORDEXPIRE;【例7-25】將用戶pwd賬號的密碼設(shè)置為過期。CREATEUSERpwd@localhostIDENTIFIEDBY'123456';SELECTuser,host,password_last_changed,password_lifetime,password_expiredFROMmysql.userWHEREuser='pwd'ANDhost='localhost';ALTERUSERpwd@localhostPASSWORDEXPIRE;
以pwd用戶連接MySQL服務(wù)器,將會(huì)顯示密碼過期重置的窗口,在窗口中重新設(shè)置新密碼,如圖7-10所示。因?yàn)槊艽a過期后,只有重新設(shè)置了新密碼,該用戶才能正常使用。為每個(gè)用戶單獨(dú)設(shè)置密碼過期策略的SQL語句
ALTERUSER用戶PASSWORDEXPIRE
INTERVALnDAY|NEVER|DEFAULT;①INTERVALnDAY:設(shè)置密碼過期的天數(shù);②NEVER:設(shè)置密碼永不過期;③DEFAULT:延用全局密碼過期策略。ALTERUSERpwd@localhostPASSWORDEXPIREINTERVAL90DAY;SELECTuser,host,password_last_changed,password_lifetime,password_expiredFROMmysql.userWHEREuser='pwd'ANDhost='localhost';設(shè)置pwd用戶賬號密碼每90天過期【例7-26】設(shè)置用戶pwd密碼過期策略。ALTERUSERpwd@localhostPASSWORDEXPIRENEVER;SELECTuser,host,password_last_changed,password_lifetime,password_expiredFROMmysql.userWHEREuser='pwd'ANDhost='localhost';設(shè)置密碼永不過期SETPERSISTdefault_password_lifetime=180;設(shè)置全局密碼過期策略,每隔180天過期延用全局密碼過期策略ALTERUSERpwd@localhostPASSWORDEXPIREDEFAULT;SELECTuser,host,password_last_changed,password_lifetime,password_expiredFROMmysql.userWHEREuser='pwd'ANDhost='localhost';(2)密碼重用策略
賬號的歷史密碼包含過去該賬號所使用的密碼。MySQL基于以下規(guī)則來限制密碼重用。①如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項(xiàng)目聯(lián)盟協(xié)議書
- 合伙做淘寶協(xié)議書
- 語文學(xué)習(xí)協(xié)議書
- 車險(xiǎn)分期協(xié)議書
- 親媽簽婚前協(xié)議書
- 跑腿簽約協(xié)議書
- 起草定金協(xié)議書
- 2025至2030中國羅漢果茶市場產(chǎn)能預(yù)測與供需發(fā)展趨勢研究報(bào)告
- 2025至2030中國電話口譯(OPI)行業(yè)發(fā)展現(xiàn)狀及前景預(yù)測研究報(bào)告
- 2025至2030中國玻璃雨棚市場應(yīng)用趨勢與企業(yè)核心競爭力對策報(bào)告
- GB/T 38472-2023再生鑄造鋁合金原料
- 莫高窟經(jīng)典簡介
- 2023年貴州黔南州人民檢察院招考聘用派遣制檢察輔助人員筆試題庫含答案解析
- 機(jī)械制造技術(shù)基礎(chǔ)課程設(shè)計(jì)講課用
- CMOS反相器的與設(shè)計(jì)
- 核醫(yī)學(xué)科儀器管理操作保養(yǎng)維修制度
- 《祝?!放涮讋”?課件
- 電源板QC工程圖
- 蘇州市初一信息技術(shù)期末復(fù)習(xí)知識點(diǎn)整理-葵花寶典
- 小學(xué)數(shù)學(xué)小升初小升初專題復(fù)習(xí)小升初專題復(fù)習(xí)
- GB/T 8162-2008結(jié)構(gòu)用無縫鋼管
評論
0/150
提交評論