第章數(shù)據(jù)庫安全管理_第1頁
第章數(shù)據(jù)庫安全管理_第2頁
第章數(shù)據(jù)庫安全管理_第3頁
第章數(shù)據(jù)庫安全管理_第4頁
第章數(shù)據(jù)庫安全管理_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MySQL數(shù)據(jù)庫應(yīng)用與實踐教程卜耀華石玉芳編著第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)學(xué)習(xí)要點通過本章的學(xué)習(xí),能夠了解數(shù)據(jù)的安全控制機(jī)制;掌握數(shù)據(jù)庫安全控制的各種方法。能夠?qū)ySQL數(shù)據(jù)庫中的用戶和權(quán)限進(jìn)行管理;能夠?qū)ySQL日志文件進(jìn)行管理;熟悉每種數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)的使用。第8章數(shù)據(jù)庫安全管理第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理學(xué)習(xí)內(nèi)容8.1MySQL的安全性8.2用戶管理8.3權(quán)限管理課堂實踐1:創(chuàng)建數(shù)據(jù)管理員用戶8.4日志文件8.5數(shù)據(jù)備份與恢復(fù)課堂實踐2:備份教務(wù)管理系統(tǒng)數(shù)據(jù)庫第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.1MySQL的安全性8.1.1MySQL安全性概述數(shù)據(jù)庫的安全控制有多種措施,通常使用用戶和權(quán)限管理的方法。用戶管理用來阻止非法的用戶登錄到數(shù)據(jù)庫服務(wù)器中,而利用操作權(quán)限管理來控制越權(quán)的非法操作。8.1.2MySQL安全管理等級MySQL安全管理等級包括:1.操作系統(tǒng)安全性2.服務(wù)器安全性3.數(shù)據(jù)庫安全性4.數(shù)據(jù)庫對象安全性第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.2用戶管理8.2.1創(chuàng)建用戶在MySQL中,使用CREATEUSER語句創(chuàng)建用戶。其語法格式如下:CREATEUSER<用戶>[IDENTIFIEDBY[PASSWORD]'密碼'][,用戶n[IDENTIFIEDBY[PASSWORD]'密碼n']][,…];例8.1創(chuàng)建兩個新用戶U_student1和U_student2。密碼分別為1234和5678。SQL語句如下:createuserU_student1@localhostidentifiedby‘1234’,U_student2@localhostidentifiedby‘5678’;usemysql;selectuser,host,authentication_stringfromuser;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.2.2修改用戶名和密碼1.修改用戶名語法格式如下:RENAMEUSER<舊用戶名>TO<新用戶名>[,<舊用戶名n>TO<新用戶名n>][,…];例8.2將用戶U_student1的名稱改為U_stu1。SQL語句如下:renameuserU_student1@localhosttoU_stu1;2.修改用戶密碼語法格式如下:SETPASSWORD[FOR用戶]=PASSWORD('新密碼');例8.3將用戶U_student2的密碼修改為abc123。SQL語句如下:setpasswordforU_student2@localhost=password('abc123');第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.2.3刪除用戶使用DROPUSER語句可刪除一個或多個MySQL用戶,并取消其權(quán)限。DROPUSER語句必須擁有MySQL數(shù)據(jù)庫的全局CREATEUSER權(quán)限或DELETE權(quán)限。其語法格式如下:DROPUSER<用戶>[,…];例8.4刪除U_stu1和U_student2用戶。SQL語句如下:dropuserU_stu1,U_student2@localhost;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.3權(quán)限管理8.3.1權(quán)限概述(1)列權(quán)限:作用于在一個給定表的單個列。例如,使用UPDATE語句更新student表中學(xué)號列值的權(quán)限。(2)表權(quán)限:作用于一個給定表的所有列。例如,使用SELECT語句查詢student表的所有數(shù)據(jù)的權(quán)限。(3)數(shù)據(jù)庫權(quán)限:作用于一個給定數(shù)據(jù)庫的所有表。例如,在已有的D_sample數(shù)據(jù)庫中創(chuàng)建新表的權(quán)限。(4)全局權(quán)限:作用于一個給定服務(wù)器上的所有數(shù)據(jù)庫。例如,刪除已有的數(shù)據(jù)庫或者創(chuàng)建一個新的數(shù)據(jù)庫的權(quán)限。第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理權(quán)限的管理包含如下兩個內(nèi)容。(1)授予權(quán)限:允許用戶具有某種操作權(quán)。(2)收回權(quán)限:不允許用戶具有某種操作權(quán),或者收回曾經(jīng)授予的權(quán)限。8.3.2授予權(quán)限在MySQL中,使用GRANT語句授予權(quán)限。擁有GRANT權(quán)限的用戶才可以執(zhí)行GRANT語句。其語法格式如下:GRANT<權(quán)限名稱>[(列名)][,<權(quán)限名稱>[(列名)]][,…n]ON[TABLE|FUNCTION|PROCEDURE]{表名或視圖名|*|*.*|數(shù)據(jù)庫名.*|數(shù)據(jù)庫名.表名或視圖名}TO<用戶>[IDENTIFIEDBY[PASSWORD]'密碼'][,<用戶>[IDENTIFIEDBY[PASSWORD]'密碼']][,…n][WITHGRANTOPTION];第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理例8.5使用GRANT語句創(chuàng)建一個新用戶U_student,密碼為studentpwd。用戶U_student對所有的數(shù)據(jù)有查詢和插入權(quán)限,并授予GRANT權(quán)限。SQL語句如下:grantselect,inserton*.*toU_student@localhostidentifiedby‘studentpwd’withgrantoption;例8.6使用GRANT語句將D_sample數(shù)據(jù)庫中student表的DELETE權(quán)限授予用戶U_student。SQL語句如下:grantdeleteonD_sample.studenttoU_student@localhost;例8.7使用GRANT語句將D_sample數(shù)據(jù)庫中sc表的成績列的UPDATE權(quán)限授予用戶U_student1。SQL語句如下:grantupdate(成績)onD_sample.sctoU_student1@localhost;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.3.3收回權(quán)限(1)收回所有權(quán)限其語法格式如下:REVOKEALLPRIVILEGES,GRANTOPTIONFROM<用戶>[,<用戶>][,…n];例8.8使用REVOKE語句收回U_student用戶的所有權(quán)限,包括GRANT權(quán)限。SQL語句如下:revokeallprivileges,grantoptionfromU_student@localhost;(2)收回指定權(quán)限其語法格式如下:REVOKE<權(quán)限名稱>[(列名)][,<權(quán)限名稱>[(列名)]][,…n]ON{表名或視圖名|*|*.*|數(shù)據(jù)庫名.*|數(shù)據(jù)庫名.表名或視圖名}FROM<用戶>[,<用戶>][,…n];第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理例8.9收回U_student1用戶對D_sample數(shù)據(jù)庫中sc表的成績列的UPDATE權(quán)限。SQL語句如下:revokeupdate(成績)onD_sample.scfromU_student1@localhost;8.3.4查看權(quán)限1.使用SELECT語句查看權(quán)限例8.10使用SELECT語句查看user表中用戶的基本權(quán)限信息。SQL語句如下:selecthost,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv,alter_priv,show_db_priv,create_user_privfrommysql.user;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理2.使用SHOWGRANTS語句查看權(quán)限使用SHOWGRANTS語句可以查看指定用戶的權(quán)限信息,其語法格式如下:SHOWGRANTSFOR<用戶>;例8.11使用SHOWGRANTS語句查看U_student1用戶的權(quán)限信息。SQL語句如下:showgrantsforU_student1@localhost;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理課堂實踐1:創(chuàng)建數(shù)據(jù)管理員用戶1.使用GRANT語句,創(chuàng)建一個數(shù)據(jù)管理員用戶U_eams,密碼為system123。用戶U_eams對D_eams數(shù)據(jù)庫的數(shù)據(jù)有查詢和更新權(quán)限,并授予GRANT權(quán)限。SQL語句如下:grantselect,updateonD_eams.*toU_eams@localhostidentifiedby‘system123’withgrantoption;2.以數(shù)據(jù)管理員U_eams用戶身份登錄MySQL服務(wù)器,操作步驟為:(1)打開命令行窗口,進(jìn)入MySQL安裝目錄下的bin目錄:cdC:\ProgramFiles\MySQL\MySQLServer5.7\bin(2)通過mysql命令來登錄MySQL服務(wù)器。命令如下:mysql-hlocalhost-uU_eams-psystem123第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.4日志文件8.4.1二進(jìn)制日志1.查看二進(jìn)制日志開啟狀態(tài)使用SHOWGLOBAL語句查看二進(jìn)制日志開啟狀態(tài)。SQL語句如下:showglobalvariableslike‘%log_bin%’;2.查看二進(jìn)制日志大小使用SHOWBINARYLOGS語句查看當(dāng)前服務(wù)器使用的二進(jìn)制文件及其大小。SQL語句如下:showbinarylogs;3.查看二進(jìn)制日志信息使用SHOWBINLOGEVENTS語句查看二進(jìn)制日志信息。其語法格式如下:SHOWBINLOGEVENTS[IN'日志文件名'][FROM位置][LIMIT[offset,]行數(shù)];第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理例8.12使用SHOWBINLOGEVENTS語句查看從指定的事件位置開始的二進(jìn)制日志信息。SQL語句如下:showbinlogeventsfrom98886limit3\G;4.刪除二進(jìn)制日志文件(1)刪除所有二進(jìn)制日志文件語法格式如下:RESETMASTER;(2)刪除部分二進(jìn)制日志文件其語法格式如下:PURGE{MASTER|BINARY}LOGS{TO'日志文件名'|BEFORE'date'};8.4.2錯誤日志1.查看錯誤日志使用SHOWGLOBAL語句查看錯誤日志。SQL語句如下:showglobalvariableslike‘%log_error%’;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理2.刪除錯誤日志文件使用mysqladmin命令刪除錯誤日志。其命令如下:mysqladmin-uroot-pflush-logs8.4.3通用查詢?nèi)罩?.查看通用查詢?nèi)罩鹃_啟狀態(tài)使用SHOWGLOBAL語句查看通用查詢?nèi)罩鹃_啟狀態(tài)。SQL語句如下:showglobalvariableslike‘general_log%’;設(shè)置通用查詢?nèi)罩竟δ転殚_啟狀態(tài),SQL語句如下:setglobalgeneral_log='on';2.查看通用查詢?nèi)罩拘畔⒉榭赐ㄓ貌樵內(nèi)罩拘畔?。SQL語句如下:showcreatetablemysql.general_log\G;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.4.4慢查詢?nèi)罩?.查看慢查詢?nèi)罩鹃_啟狀態(tài)使用SHOWGLOBAL語句查看慢查詢?nèi)罩鹃_啟狀態(tài)。SQL語句如下:showglobalvariableslike‘slow_query_log%’;2.查看慢查詢?nèi)罩拘畔⒉榭绰樵內(nèi)罩拘畔?。SQL語句如下:select*frommysql.slow_log;第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理8.5數(shù)據(jù)備份與恢復(fù)8.5.1數(shù)據(jù)備份1.備份的重要性2.備份類型MySQL提供以下3種數(shù)據(jù)庫備份類型。(1)完整備份完整備份指備份整個數(shù)據(jù)庫,包括表、視圖、存儲過程等數(shù)據(jù)庫對象以及日志。(2)增量備份增量備份是指數(shù)據(jù)庫從上一次完整備份或者最近一次的增量備份以來改變的內(nèi)容的備份。(3)差異備份差異備份是指將從最近一次完整數(shù)據(jù)庫備份以后發(fā)生改變的數(shù)據(jù)進(jìn)行備份。第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理3.備份數(shù)據(jù)(1)使用mysqldump命令備份數(shù)據(jù)①備份數(shù)據(jù)庫或表使用mysqldump命令備份數(shù)據(jù)庫或表。其命令格式如下:MYSQLDUMP–u<用戶名>–h<主機(jī)名>-p<密碼><數(shù)據(jù)庫名>[表名[表名…]]><備份文件的名>.sql例8.13使用mysqldump命令備份數(shù)據(jù)庫D_sample中的所有表。其命令如下:mysqldump-uroot-hlocalhost-pD_sample>d:\database_bak\D_sample_bak.sql例8.14使用mysqldump命令備份數(shù)據(jù)庫D_sample中的student表、coure表和sc表,其命令如下:mysqldump-uroot-hlocalhost-pD_samplestudentcoursesc>d:\database_bak\D_sample_table_bak.sql第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理②備份多個數(shù)據(jù)庫使用mysqldump命令備份多個數(shù)據(jù)庫。其命令格式如下:MYSQLDUMP–u<用戶名>–h<主機(jī)名>-p<密碼>--databases<數(shù)據(jù)庫名>[<數(shù)據(jù)庫名>…]><備份文件的名>.sql例8.15使用mysqldump命令備份數(shù)據(jù)庫D_sample和D_test,其命令如下:mysqldump-uroot-hlocalhost-p--databasesD_sampleD_test>d:\database_bak\db_bak.sql③備份所有數(shù)據(jù)庫使用mysqldump命令備份所有數(shù)據(jù)庫。其命令格式如下:MYSQLDUMP–u<用戶名>–h<主機(jī)名>-p<密碼>--all-databases><備份文件的名>.sql第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理例8.16使用mysqldump命令備份所有數(shù)據(jù)庫,其命令如下:mysqldump-uroot-hlocalhost-p--all-databases>d:\database_bak\all_bak.sql(2)使用SQL語句備份數(shù)據(jù)語法格式如下:SELECT*FROM<表名>[WHERE條件]INTOOUTFILE'目標(biāo)文件'[選項];例8.17使用SELECTINTOOUTFILE語句備份D_sample數(shù)據(jù)庫中student表的數(shù)據(jù)。要求字段值之間用“、”隔開,字符型數(shù)據(jù)用雙引號括起來。每行以“?!睘榻Y(jié)束標(biāo)志。SQL語句如下:useD_sample;select*fromstudentintooutfile'd:/database_bak/table_bak.txt'fieldsterminatedby'、‘optionallyenclosedby'"'linesterminatedby'。';第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理(3)使用日志備份數(shù)據(jù)①做完整備份。備份到mysqldump命令所在的目錄的fullbackup.sql文件。其命令如下:mysqldump-hlocalhost-uroot-p--single-transaction--flush-logs--master-data=2--all-databases>fullbackup.sql②做增量備份。完整備份整個服務(wù)器的數(shù)據(jù)庫后,并刷新日志文件。其命令如下:mysqladmin-hlocalhost-uroot-pflush-logs8.5.2數(shù)據(jù)恢復(fù)1.使用mysql命令恢復(fù)數(shù)據(jù)命令格式如下:MYSQL–u<用戶名>–p[數(shù)據(jù)庫名]<文件名.sql第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理例8.18使用mysql命令將備份文件D_sample_bak.sql恢復(fù)到數(shù)據(jù)庫中,其命令如下:mysql–uroot–pD_sample<d:\database_bak\D_sample_bak.sql2.使用SQL語句恢復(fù)數(shù)據(jù)(1)使用LOADDATAINFILE語句恢復(fù)數(shù)據(jù)語法格式如下:LOADDATAINFILE'文件名.txt'INTOTABLE<表名>[選項][IGNORE行數(shù)LINES];例8.19使用LOADDATAINFILE語句把d:/database_bak/table_bak.txt文件中的數(shù)據(jù)恢復(fù)到D_sample數(shù)據(jù)庫中student表中。SQL語句如下:useD_sample;loaddatainfile'd:/database_bak/table_bak.txt'intotablestudentfieldsterminatedby'、'optionallyenclosedby'"‘linesterminatedby'。';第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理(2)使用SOURCE語句恢復(fù)數(shù)據(jù)語法格式如下:SOURCE文件名.sql;例8.20使用SOURCE語句將備份文件D_sample_bak.sql恢復(fù)到數(shù)據(jù)庫D_sample中,SQL語句如下:useD_sample;sourced:/database_bak/D_sample_bak.sql;3.使用日志恢復(fù)數(shù)據(jù)(1)恢復(fù)fullbackup.sql文件的完整備份。其命令如下:mysql-uroot-p<fullbackup.sql(2)恢復(fù)PROF-PC-bin.000043和PROF-PC-bin.000044的增量備份。其命令如下:mysqlbinlogPROF-PC-bin.000043PROF-PC-bin.000044|mysql-uroot-p第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)第8章數(shù)據(jù)庫安全管理課堂實踐2:備份教務(wù)管理系統(tǒng)數(shù)據(jù)庫1.使用mysqldump命令備份教務(wù)管理系統(tǒng)數(shù)據(jù)庫D_eams中的

溫馨提示

  • 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

提交評論