![MYSQL數(shù)據(jù)庫系統(tǒng)安全管理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/097bc3ba-6951-425e-9d44-b46e204e6e4e/097bc3ba-6951-425e-9d44-b46e204e6e4e1.gif)
![MYSQL數(shù)據(jù)庫系統(tǒng)安全管理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/097bc3ba-6951-425e-9d44-b46e204e6e4e/097bc3ba-6951-425e-9d44-b46e204e6e4e2.gif)
![MYSQL數(shù)據(jù)庫系統(tǒng)安全管理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/097bc3ba-6951-425e-9d44-b46e204e6e4e/097bc3ba-6951-425e-9d44-b46e204e6e4e3.gif)
![MYSQL數(shù)據(jù)庫系統(tǒng)安全管理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/097bc3ba-6951-425e-9d44-b46e204e6e4e/097bc3ba-6951-425e-9d44-b46e204e6e4e4.gif)
![MYSQL數(shù)據(jù)庫系統(tǒng)安全管理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/097bc3ba-6951-425e-9d44-b46e204e6e4e/097bc3ba-6951-425e-9d44-b46e204e6e4e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄正文1.1研究的背景2.2研究的目的和意義2.3研究的內(nèi)容2.3.1 MySQL數(shù)據(jù)庫的安全配置 系統(tǒng)內(nèi)部安全 外部網(wǎng)絡(luò)安全6.3.2 MySQL用戶帳號管理 MD5力口密143.3.1 數(shù)據(jù)庫中數(shù)據(jù)加密的原因143.3.2 加密方式 Md5力口密原理.4 具體算法17.4總結(jié)18.參考文獻(xiàn):1.9.附錄:1.9.MySQL數(shù)據(jù)庫安全管理摘要:MySQL是完全網(wǎng)絡(luò)化的跨平臺關(guān)系型數(shù)據(jù)庫系統(tǒng),同時(shí)是具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng)。它具有功能強(qiáng)、使用簡便、管理方便、運(yùn)行速度快、安全可靠性強(qiáng)等優(yōu)點(diǎn),用戶可利
2、用許多語言編寫訪問MySQL數(shù)據(jù)庫的程序,特別是與PHP更是黃金組合,運(yùn)用十分廣泛。由于MySQL是多平臺的數(shù)據(jù)庫,它的默認(rèn)配置要考慮各種情況下都能適用,所以在用戶自己的使用環(huán)境下應(yīng)該進(jìn)行安全加固。用戶有責(zé)任維護(hù)MySQL數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)安全性和完整性。關(guān)鍵詞:MYSQL;數(shù)據(jù)庫;數(shù)據(jù)庫安全;訪問控制;MD5加密正文MySQL數(shù)據(jù)庫的安全配置必須從兩個(gè)方面入手,系統(tǒng)內(nèi)部安全和外部網(wǎng)絡(luò)安全;MySQL用戶帳號管理主要用grant(授權(quán))和revoke(撤權(quán))兩個(gè)SQL指令來管理;MD5在實(shí)際中的一個(gè)應(yīng)用就是對數(shù)據(jù)庫中的用戶信息加密,當(dāng)用戶創(chuàng)建一個(gè)新的賬號或者密碼,他的信息不是直接保存到數(shù)據(jù)庫,而
3、是經(jīng)過一次加密以后再保存,這樣,即使這些信息被泄露,也不能立即理解這些信息的真正含義。有效的提高了前臺和后臺的數(shù)據(jù)安全性。1研究的背景隨著計(jì)算機(jī)技術(shù)和信息技術(shù)的迅速發(fā)展。數(shù)據(jù)庫的應(yīng)用十分廣泛,深入到各個(gè)領(lǐng)域,但隨之而來產(chǎn)生了數(shù)據(jù)的安全問題。近年來,數(shù)據(jù)庫供應(yīng)商競相為大眾提供功能豐富的數(shù)據(jù)庫環(huán)境,大多數(shù)主要系統(tǒng)都支持XML、Web服務(wù)、分布式復(fù)制、操作系統(tǒng)集成以及其他一些有用的功能。與以前相比,數(shù)據(jù)庫更加容易遭受到攻擊,它已經(jīng)成為了更有價(jià)值的攻擊目標(biāo),所以需要配置更多的安全功能,管理也要更加的謹(jǐn)慎。2研究的目的和意義本文對MySQL數(shù)據(jù)庫的安全配置、MySQL用戶帳號管理以及使用MD5加密提高數(shù)
4、據(jù)庫前臺和后臺數(shù)據(jù)安全性做了詳細(xì)研究。由于MySQL是多平臺的數(shù)據(jù)庫,它的默認(rèn)配置要考慮各種情況下都能適用,所以用戶需要根據(jù)具體的環(huán)境進(jìn)行相關(guān)的安全配置,通過本文的研究,對如何提高數(shù)據(jù)庫的安全性有很大的幫助。3研究的內(nèi)容3.1 MySQL數(shù)據(jù)庫的安全配置3.1.1 系統(tǒng)內(nèi)部安全MySQL安裝好,運(yùn)行了mysql_db_install腳本以后就會建立數(shù)據(jù)目錄和初始化數(shù)據(jù)庫。如果我們用MySQL源碼包安裝,而且安裝目錄是/usr/local/mysql,那么數(shù)據(jù)目錄一般會是/usr/local/mysql/var。數(shù)據(jù)庫系統(tǒng)由一系列數(shù)據(jù)庫組成,每個(gè)數(shù)據(jù)庫包含一系列數(shù)據(jù)庫表。MySQL是用數(shù)據(jù)庫名在
5、數(shù)據(jù)目錄建立建立一個(gè)數(shù)據(jù)庫目錄,各MYD、MYI、frm 的三個(gè)文件數(shù)據(jù)庫表分別以數(shù)據(jù)庫表名作為文件名,擴(kuò)展名分別為放到數(shù)據(jù)庫目錄中。MySQL的授權(quán)表給數(shù)據(jù)庫的訪問提供了靈活的權(quán)限控制,但是如果本地用戶擁有對庫文件的讀權(quán)限的話,攻擊者只需把數(shù)據(jù)庫目錄打包拷走,然后拷到自己本機(jī)的數(shù)據(jù)目錄下就能訪問竊取的數(shù)據(jù)庫。所以MySQL所在的主機(jī)的安全性是最首要的問題,如果主機(jī)不安全,被攻擊者控制,那么MySQL的安全性也無從談起。其次就是數(shù)據(jù)目錄和數(shù)據(jù)文件的安全性,也就是權(quán)限設(shè)置問題。從MySQL主站一些老的binary發(fā)行版來看,3.21.xx版本中數(shù)據(jù)目錄的屬性是775,這樣非常危險(xiǎn),任何本地用戶都
6、可以讀數(shù)據(jù)目錄,所以數(shù)據(jù)庫文件很不安全。3.22.xx版本中數(shù)據(jù)目錄的屬性是770,這種屬性也有些危險(xiǎn),本地的同組用戶既能讀也能寫,所以數(shù)據(jù)文件也不安全。3.23.xx版本數(shù)據(jù)目錄的屬性是700,這樣就比較好,只有啟動數(shù)據(jù)庫的用戶可以讀寫數(shù)據(jù)庫文件,保證了本地?cái)?shù)據(jù)文件的安全。如果啟動MySQL數(shù)據(jù)庫的用戶是mysql,那么像如下的目錄和文件的是安全的,請注意數(shù)據(jù)目錄及下面的屬性:shellls-l/usr/local/mysqltotal40drwxrwxr-x2rootroot4096Feb2720:07bindrwxrwxr-x3rootroot4096Feb2720:07included
7、rwxrwxr-x2rootroot4096Feb2720:07infodrwxrwxr-x3rootroot4096Feb2720:07libdrwxrwxr-x2rootroot4096Feb2720:07libexecdrwxrwxr-x3rootroot4096Feb2720:07manshellls-l/usr/local/mysql/vartotal8drwx2mysqlmysql4096Feb2720:08mysqldrwx2mysqlmysql4096Feb2720:08testshellls-l/usr/local/mysql/var/mysqltotal104- rw1my
8、sqlmysql0Feb2720:08columns_priv.MYD- rw1mysqlmysql1024Feb2720:08columns_priv.MYI- rw1mysqlmysql8778Feb2720:08columns_priv.frm- rw1mysqlmysql302Feb2720:08db.MYD- rw1mysqlmysql3072Feb2720:08db.MYI- rw1mysqlmysql8982Feb2720:08db.frm- rw1mysqlmysql0Feb2720:08func.MYD- rw1mysqlmysql1024Feb2720:08func.MYl
9、- rw1mysqlmysql8641Feb2720:08func.frm- rw1mysqlmysql0Feb2720:08host.MYD- rw1mysqlmysql1024Feb2720:08host.MYI- rw1mysqlmysql8958Feb2720:08host.frm- rw1mysqlmysql0Feb2720:08tables_priv.MYD- rw1mysqlmysql1024Feb2720:08tables_priv.MYI如果這些文件的屬主及屬性不是這樣,請用以下兩個(gè)命令修正之:shellchown-Rmysql.mysql/usr/local/mysql/v
10、arshellchmod-Rgo-rwx/usr/local/mysql/var用root用戶啟動遠(yuǎn)程服務(wù)一直是安全大忌,因?yàn)槿绻?wù)程序出現(xiàn)問題,遠(yuǎn)程攻擊者極有可能獲得主機(jī)的完全控制權(quán)。MySQL從3.23.15版本開始時(shí)作了小小的改動,默認(rèn)安裝后服務(wù)要用mysql用戶來啟動,不允許root用戶啟動。如果非要用root用戶來啟動,必須加上-user=root的參數(shù)(./safe_mysqld-user=root&)。因?yàn)镸ySQL中有LOADDATAINFILE和SELECT.INTOOUTFILE的SQL語句,如果是root用戶啟動了MySQL服務(wù)器,那么,數(shù)據(jù)庫用戶就擁有了root用戶的
11、寫權(quán)限。不過MySQL還是做了一些限制的,比如LOADDATAINFILE只能讀全局可讀的文件,SELECT.INTOOUTFILE不能覆蓋已經(jīng)存在的文件。本地的日志文件也不能忽視,包才Sshell的日志和MySQL自己的日志。有些用戶在本地登陸或備份數(shù)據(jù)庫的時(shí)候?yàn)榱藞D方便,有時(shí)會在命令行參數(shù)里直接帶了數(shù)據(jù)庫的密碼,如:shell/usr/local/mysql/bin/mysqldump-uroot-ptesttesttest.sqlshell/usr/local/mysql/bin/mysql-uroot-ptest這些命令會被shell記錄在歷史文件里,比如bash會寫入用戶目錄的.ba
12、sh_history文件,如果這些文件不慎被讀,那么數(shù)據(jù)庫的密碼就會泄漏。用戶登陸數(shù)據(jù)庫后執(zhí)行的SQL命令也會被MySQL記錄在用戶目錄的.mysql_history文件里。如果數(shù)據(jù)庫用戶用SQL語句修改了數(shù)據(jù)庫密碼,也會因.mysql_history文件而泄漏。所以我們在shell登陸及備份的時(shí)候不要在-p后直接加密碼,而是在提示后再輸入數(shù)據(jù)庫密碼。另外這兩個(gè)文件我們也應(yīng)該不讓它記錄我們的操作,以防萬一。shellrm.bash_history.mysql_historyshellln-s/dev/null.bash_historyshellln-s/dev/null.mysql_histo
13、ry上門這兩條命令把這兩個(gè)文件鏈接到/dev/null,那么我們的操作就不會被記錄到這兩個(gè)文件里了。3.1.2外部網(wǎng)絡(luò)安全MySQL數(shù)據(jù)庫安裝好以后,Unix平臺的user表是這樣的:mysqlusemysql;DatabasechangedmysqlselectHost,User,Password,Select_priv,Grant_privfromuser;HostUserIPassword.Stlect_piivIGrant_priv-11-m1localhostIroot|1T1Y1xedliat|root|1v11localhost111m1N1redhat111n11圖3.1.2.
14、1Unix平臺的user表Windows平臺的user表是這樣的:mysqlusemysql;DatabasechangedmysqlselectHost,User,Password,Select_priv,Grant_privfromuser;selectHost,UserPPasswortSelectjp*iu.Grant,pi*iufn.user;*44i-+!Host!值融1Rasjuotd!eltct_piiu!小!-I441IUaUwstIwtI明園班E354孫跚悌4明1眼隔犒朋即”IVI:mysqladmin-urootpasswordtest這樣,MySQL數(shù)據(jù)庫root用戶的
15、口令就被改成test了。用setpassword修改口令:mysqlsetpasswordforrootlocalhost=password(test);這時(shí)root用戶的口令就被改成test了。直接修改user表的root用戶口令:mysqlusemysql;mysqlupdateusersetpassword=password(test)whereuser=root;mysqlflushprivileges;這樣,MySQL數(shù)據(jù)庫root用戶的口令也被改成test了。其中最后一句命令flushprivileges的意思是強(qiáng)制刷新內(nèi)存授權(quán)表,否則用的還是緩沖中的口令,這時(shí)非法用戶還可以用ro
16、ot用戶及空口令登陸,直到重啟MySQL服務(wù)器。我們還看到user為空的匿名用戶,雖然它在Unix平臺下沒什么權(quán)限,但為了安全起見我們應(yīng)該刪除它:mysqldeletefromuserwhereuser二;Windows版本MySQL的user表有很大不同,我們看到Host字段除了localhost還有是。這里的意思是允許任意的主機(jī)連接MySQL服務(wù)器,這是非常不安全的,給攻擊者造成可乘之機(jī),我們必須刪除Host字段為的記錄:mysqldeletefromuserwherehost=%;默認(rèn)root用戶的空密碼也是必須修改,三種修改方法和Unix平臺一樣。對user表操作以后不要忘了用flus
17、hprivileges來強(qiáng)制刷新內(nèi)存授權(quán)表,這樣才能生效。MySQL的5個(gè)授權(quán)表:user,db,host,tables_priv和columns_priv提供非常靈活的安全機(jī)制,從MySQL3.22.11開始引入了兩條語句GRANT和REVOKE來創(chuàng)建和刪除用戶權(quán)限,可以方便的限制哪個(gè)用戶可以連接服務(wù)器,從哪里連接以及連接后可以做什么操作。在3.22.11版本以前的MySQL授權(quán)機(jī)制不完善,和新版本也有較大的不同,建議升級到最新版本的MySQL。我們先來了解授權(quán)表的結(jié)構(gòu)。MySQL授權(quán)表的結(jié)構(gòu)與內(nèi)容:mysqldescuser;user表是5個(gè)授權(quán)表中最重要的一個(gè),列出可以連接服務(wù)器的用戶及
18、其加密口令,并且它指定他們有哪種全局(超級用戶)權(quán)限。在user表啟用的任何權(quán)限均是全局權(quán)限,并適用于所有數(shù)據(jù)庫。所以我們不能給任何用戶訪問mysql.user表的權(quán)限!權(quán)限說明:袂眼指足同則書1把用褲作-rhrnV!,V-b.n;n-hiwa-kv;a-a-vv一wa-a-vb-v_,-bw_一!v.-,IIpnv|M肯科米的藥同,足時(shí)范據(jù)宓電存節(jié)同TP盯gut田旬不裳手粕,區(qū)和制立此UL444-ILSSert|InsfictjtzV|加日燈啟用inm巨士七他句斑仃寫一,慌作.IUpdate|UpcatijKi|兀許用中仁吐心噂句嵯漫由1TlM再id款.IDelete|Deletx)1M|尤
19、許用deJetelB句則除表中現(xiàn)有記錄.4-!1-I此白日抬|CDcatt_pzT|九許矗立舉灰狼赤限.唧景.I取*IDEOPJEII九河腳修觀有的帔克卑厘展.ILods|Indwc_piiv|尤許科睡.修改表則除索引.IAlter|AL.teE_pzivIX詢用aLt吐m旬蠟或賽銃將IGrantICct_jniv|九將白TH臺的現(xiàn)源及千反七用戶.國ISg1出心.IRelMd|AeJoad|尤許魚葷是根忠.副產(chǎn)重為器等看守.4-!+I&11匕1。骨1|Mnud二eiprjulR詢用n7zqlaiiLL日ahntil:)皿華中關(guān)情HfSQ肥外莖-公權(quán)限比較也I曲*III不應(yīng)感觸使拉千.+=0k=
20、”=K1M.*.K,.=M.=.=,=IPtQMfl:IPEOClflffUC1VI尤許的白河堂上H西叮邪界施Lit由行啊旗假:注汽3艮圖正在自行(H看電四句Ii,包括執(zhí)行解改赍場白者陶七句.誄根用比較畫或,布庫嫉嘀蜜痍手.descdb;FieldType1Hull1Ke/yIDefault1ExtraI,4卜,1Host1DbUstrSelect_ptivInseEtjpcivDeleCteate_privDropjrivGrantjjrzLVReferences_pr1.VALter_priv卜chat(60)binatY11p?I111chat(64)binary11?R111Ichar
21、(16)binary11PRIi1envuufYJ1N13enua(M1fY1)111m11eau(HfY1)1IIN11enum(ll1,YJ|KTjenvuafIf,Y1)|W(envm(/Y1)11IM11enuafM1/Y1)11IM11enu&(M1,V1)11KT1ill1/Y1)111Ut!enua(M;Y1)IIIUII卜+4+圖數(shù)據(jù)庫db表列出數(shù)據(jù)庫,而用戶有權(quán)限訪問它們。在這里指定的權(quán)限適用于一個(gè)數(shù)據(jù)庫中的所有表。mysqldeschost;4+q+IFzeldJTypeIHullIK2雪1DefaultIEycisJ+-+-1-1-土1Hostctiar(6
22、0)binary11PBI11i1LLchaf(64)binary11PR11111Select_j)rivmmWLY)111M111IrL9ert_j)riv由11IM1I1Update_privenuiQtIT1.1Y1)|M1J1Delete_privenuaCWf)111M111Create_privEDumflC1,Y)i11M111Drop_privenusKn1,YJ111M111GtanjpEi引enuaiC,Nl.Y1)11M111RefeEntices_privenuaifli1,Y1)111M111lndeK_priv皿皿/1,f)111M111Alterj?riv+He
23、numCW/)1卜+11M-一十+1JJ圖host表host表與db表結(jié)合使用在一個(gè)較好層次上控制特定主機(jī)對數(shù)據(jù)庫的訪問權(quán)限,這可能比單獨(dú)使用db好些。這個(gè)表不受GRANT和REVOKE語句的影響。3.2 MySQL用戶帳號管理MySQL用戶帳號管理主要用grant(授權(quán))和revoke(撤權(quán))兩個(gè)SQL指令來管理。這兩個(gè)指令實(shí)質(zhì)是通過操作user(連接權(quán)限和全局權(quán)限)、db(數(shù)據(jù)庫級權(quán)限)、tables_priv(數(shù)據(jù)表級權(quán)限卜columns_priv(數(shù)據(jù)列級權(quán)限)四個(gè)權(quán)限表來分配權(quán)限的。host權(quán)限表不受這兩個(gè)指令影響。下面將會詳細(xì)介紹用戶權(quán)限管理的內(nèi)容。GRANT語法說明
24、:GRANTprivileges(columns)#privileges表示授予的權(quán)限,columns表示作用的列(可選)ONwhat#設(shè)置權(quán)限級別,全局級、數(shù)據(jù)庫級、數(shù)據(jù)表級和數(shù)據(jù)列級TOaccount#權(quán)限授予的用戶,用user_namehost_name這種用戶名、主機(jī)名格式IDENTIFIEDBYpassword#設(shè)置用戶帳號密碼REQUIREencryptionrequirements#設(shè)置經(jīng)由SSL連接帳號WITHgrantorresourcemanagementoptions;#設(shè)置帳號的管理和資源(連接服務(wù)器次數(shù)或查詢次數(shù)等)選項(xiàng)示例:mysqlgrantallondb.*to
25、testlocalhostidentifiedbytest;上例運(yùn)行后的效果是,test用戶只能通過test密碼從本機(jī)訪問db數(shù)據(jù)庫mysqlgrantallondb.*totest%identifiedbytest;上例運(yùn)行后的效果是,test用戶可通過test密碼從任意計(jì)算機(jī)上訪問db數(shù)據(jù)庫。%代表任意字符,_代表一個(gè)任意字符。主機(jī)名部份還可以是IP地址。表3.2.1訪問權(quán)限表權(quán)限權(quán)限說明CREATETEMPORARYTABLES創(chuàng)建臨時(shí)數(shù)據(jù)表EXECUTE執(zhí)行存儲過程(暫不支持)FILE操作系統(tǒng)文件GRANTOPTION可把本帳號的權(quán)限授予其它用戶LOCKTABLES鎖定指定數(shù)據(jù)表PRO
26、CESS查看運(yùn)行著的線程信息RELOAD重新加載權(quán)限表或刷新日志及緩沖區(qū)REPLICATIONCLIENT可查詢主/從服務(wù)器主機(jī)名REPLICATIONSLAVE運(yùn)彳L個(gè)鏡像從服務(wù)器SHOWDATABASES可運(yùn)行SHOWDATABASES指令SHUTDOWN關(guān)閉數(shù)據(jù)庫服務(wù)器SUPER可用kill終止線程以及進(jìn)行超級用戶操作ALTER可修改表和索引的結(jié)構(gòu)CREATE創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表DELETE刪除數(shù)據(jù)表中的數(shù)據(jù)行DROP刪除數(shù)據(jù)表和數(shù)據(jù)行INDEX建立或刪除索引INSERT插入數(shù)據(jù)行權(quán)限權(quán)限說明REFERENCES(暫時(shí)不支持)SELECT查詢數(shù)據(jù)行UPDATE更新數(shù)據(jù)行ALL所有權(quán)限,但不
27、包括GRANT。USAGE無權(quán)限權(quán)限表3.2.2權(quán)限作用范圍(由ON子句設(shè)置)權(quán)限限定符作用范圍ON*.*全局級權(quán)限,作用于所有數(shù)據(jù)庫ON*全局級權(quán)限,若未指定默認(rèn)數(shù)據(jù)庫,其作用范圍是所有數(shù)據(jù)庫,否則,其作用范圍是當(dāng)前數(shù)據(jù)庫ONdb_name.*數(shù)據(jù)庫級權(quán)限,作用于指定數(shù)據(jù)庫里的所有數(shù)據(jù)表ONdb_name.tbl_name數(shù)據(jù)表級權(quán)限,作用于數(shù)據(jù)表里的所有數(shù)據(jù)列ONtbl_name數(shù)據(jù)表級權(quán)限,作用于默認(rèn)數(shù)據(jù)庫中指定的數(shù)據(jù)表里的所有數(shù)據(jù)列USAGE權(quán)限的用法:修改與權(quán)限無關(guān)的帳戶項(xiàng),如:mysqlGRANTUSAGEON*.*TOaccountIDENTIFIEDBYnew_password
28、#修改密碼mysqlGRANTUSAGEON*TOaccountREQUIRESSL;#啟用SSL連接mysqlGRANTUSAGEON*TOaccountWITHMAX_CONNECTIONS_PER_HOUR10;#設(shè)置資源擁有WITHGRANTOPTION權(quán)限的用戶可把自已所擁用的權(quán)限轉(zhuǎn)授給其他用戶,如:mysqlGRANTALLONdb.*TOtest%IDENTIFIEDBYpasswordWITHGRANTOPTION;這樣test用戶就有權(quán)把該權(quán)限授予其他用戶。限制資源使用,如:mysqlGRANTALLONdb.*TOaccountIDENTIFIEDBYpasswordWIT
29、HMAX_CONNECTIONS_PER_HOUR10MAX_QUERIES_PER_HOUR200MAX_UPDATES_PER_HOUR50;允許account用戶每小時(shí)最多連接20次服務(wù)器,每小時(shí)最多發(fā)出200條查詢命令(其中更新命令最多為50條)默認(rèn)者B是零值,即沒有限制。FLUSHUSER_RESOURCES和FLUSHPRIVILEGES可對資源限制計(jì)數(shù)器清零。REVOKE語法說明:mysqlREVOKEprivileges(columns)ONwhatFROMaccount;示例:mysqlREVOKESELECTONdb.*FROMtestlocalhost;刪除test帳號從
30、本機(jī)查詢db數(shù)據(jù)庫的權(quán)限REVOKE可刪除權(quán)限,但不能刪除帳號,即使帳號已沒有任何權(quán)限。所以user數(shù)據(jù)表里還會有該帳號的記錄,要徹底刪除帳號,需用DELETE命令刪除user數(shù)據(jù)表的記錄,如:%mysql-uroot-pmysqlusemysqlmysqlDELETEFROMuserwhereUser=testandHost=localhost;mysqlfulshprivileges;REVOKE不能刪除REQUIRE和資源占用的配置。他們是要用GRANT來刪除的,如:GRANTUSAGEON*TOaccountREQUIRENONE;#刪除account帳號的SSL連接選項(xiàng)3.3 MD5
31、加密3.3.1 數(shù)據(jù)庫中數(shù)據(jù)加密的原因現(xiàn)在網(wǎng)絡(luò)上一般的網(wǎng)站,稍微完善一點(diǎn)的,往往都需要用戶先注冊,提供諸如電子郵件、賬號、密碼等信息以后,成為網(wǎng)站欄目的注冊用戶,才可以享受網(wǎng)站一些特殊欄目提供的信息或者服務(wù),比如免費(fèi)電子郵件、論壇、聊天等,都需要用戶注冊。而對于電子商務(wù)網(wǎng)站,比如igo5等大型電子商務(wù)網(wǎng)站,用戶需要購買商品,就一定需要詳細(xì)而準(zhǔn)確的注冊,而這些信息,往往是用戶很隱秘的信息,比如電話、電子郵件、地址等,所以,注冊信息對于用戶和網(wǎng)站都是很重要的資源,不能隨意透露,更加不能存在安全上的隱患。一般將用戶資料直接保存在數(shù)據(jù)庫中,并沒有進(jìn)行任何的保密措施,對于一些文件型數(shù)據(jù)庫比如Access
32、等,如果有人得到這個(gè)文件,豈不是所有的資料都泄露無疑?更加重要的是,如果一個(gè)不負(fù)責(zé)任的網(wǎng)管,不需要任何技術(shù)手段,就可以查看網(wǎng)站中的任何資料,如果我們的用戶信息在數(shù)據(jù)庫中沒有加密,對于網(wǎng)管而言,查看這些信息是太簡單了。所以,為了增加安全性,我們有必要對數(shù)據(jù)庫中的資料進(jìn)行加密,這樣,即使有人得到了整個(gè)數(shù)據(jù)庫,如果沒有解密算法,也一樣不能查看到數(shù)據(jù)庫中的用戶信息。3.3.2 加密方式在現(xiàn)階段,我們一般認(rèn)為存在兩種加密方式,單向加密和雙向加密。雙向加密是加密算法中最常用的,它將我們可以直接理解的明文數(shù)據(jù)加密為我們不可直接理解的密文數(shù)據(jù),然后,在需要的時(shí)候,可以使用一定的算法將這些加密以后的密文解密為原
33、來可以理解的明文。雙向加密適合于隱秘通訊。單向加密剛好相反,只能對數(shù)據(jù)進(jìn)行加密,也就是說,沒有辦法對加密以后的數(shù)據(jù)進(jìn)行解密。MD5就是采用單向加密的加密算法,對于MD5而言,有兩個(gè)特性是很重要的,第一是任意兩段明文數(shù)據(jù),加密以后的密文不能是相同的;第二是任意一段明文數(shù)據(jù),經(jīng)過加密以后,其結(jié)果必須永遠(yuǎn)是不變的。前者的意思是不可能有任意兩段明文加密以后得到相同的密文,后者的意思是如果我們加密特定的數(shù)據(jù),得到的密文一定是相同的。3.3.3 Md5加密原理對MD5算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)3
34、2位分組組成,將這四個(gè)32位分組級聯(lián)后將生成一個(gè)128位散列值。在MD5算法中,首先需要對信息進(jìn)行填充,使其字節(jié)長度對512求余的結(jié)果等于448。因此,信息的字節(jié)長度(BitsLength)將被擴(kuò)展至N*512+448,即N*64+56個(gè)字節(jié)(Bytes),N為一個(gè)正整數(shù)。填充的方法如下,在信息的后面填充一個(gè)1和無數(shù)個(gè)0,直到滿足上面的條件時(shí)才停止用0對信息的填充。然后,在在這個(gè)結(jié)果后面附加一個(gè)以64位二進(jìn)制表示的填充前信息長度。經(jīng)過這兩步的處理,現(xiàn)在的信息字節(jié)長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。MD5
35、中有四個(gè)32位被稱作鏈接變量(ChainingVariable)的整數(shù)參數(shù),他們分別為:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。當(dāng)設(shè)置好這四個(gè)鏈接變量后,就開始進(jìn)入算法的四輪循環(huán)運(yùn)算。循環(huán)的次數(shù)是信息中512位信息分組的數(shù)目。將上面四個(gè)鏈接變量復(fù)制到另外四個(gè)變量中:A到a,B到b,C到c,D到d。主循環(huán)有四輪(MD4只有三輪),每輪循環(huán)都很相似。第一輪進(jìn)行16次操作。每次操作對a、b、c和d中的其中三個(gè)作一次非線性函數(shù)運(yùn)算,然后將所得結(jié)果加上第四個(gè)變量,文本的一個(gè)子分組和一個(gè)常數(shù)。再將所得結(jié)果向右環(huán)移一個(gè)不定的數(shù),并加上a、b、c
36、或d中之一。最后用該結(jié)果取代a、b、c或d中之一。以一下是每次操作中用到的四個(gè)非線性函數(shù)(每輪一個(gè))。F(X,Y,Z)=(X&Y)|(X)&Z)G(X,Y,Z)=(X&Z)|(Y&(Z)H(X,Y,Z)=XAYAZI(X,Y,Z)=YA(X|(Z)(&是與,|是或,是非,人是異或)這四個(gè)函數(shù)的說明:如果X、Y和Z的對應(yīng)位是獨(dú)立和均勻的,那么結(jié)果的每一位也應(yīng)是獨(dú)立和均勻的。F是一個(gè)逐位運(yùn)算的函數(shù)。即,如果X,那么Y,否則Z。函數(shù)H是逐位奇偶操作符。MD5在實(shí)際中的一個(gè)應(yīng)用就是對數(shù)據(jù)庫中的用戶信息加密,當(dāng)用戶創(chuàng)建一個(gè)新的賬號或者密碼,他的信息不是直接保存到數(shù)據(jù)庫,而是經(jīng)過一次加密以后再保存,這樣,
37、即使這些信息被泄露,也不能立即理解這些信息的真正含義。3.3.4 具體算法在java語言中,實(shí)現(xiàn)MD5加密是一件很簡單的事情,因?yàn)閖avaJDK已經(jīng)為我們提供了相關(guān)的類。我們只需要調(diào)用就可以了。下面我來說一下具體的算法:/對字符串進(jìn)行MD5加密publicclassJiamipublicstaticStringMD5(StringinStr)MessageDigestmd5=null;trymd5=MessageDigest.getInstance(MD5);catch(Exceptione)System.out.println(e.toString();e.printStackTrace()
38、;return;char口charArray=inStr.toCharArray();byte口byteArray=newbytecharArray.length;for(inti=0;icharArray.length;i+)byteArrayi=(byte)charArrayi;byte口md5Bytes=md5.digest(byteArray);StringBufferhexValue=newStringBuffer();for(inti=0;imd5Bytes.length;i+)intval=(int)md5Bytesi)&0xff;if(valjavaGJiami.JavaMJs
39、crsshaojavaJiami悚始1656szMDS加密后710d28855d24Jb915fe6a408dd9a67d0AMDS后再加整CEDkGLLflAkFPUMEnXBSPDAHl邱OD解密為MD遹碼-716d3S855d24b915Fe6a40Sdd9a67dea4總結(jié)本文主要對MySQL數(shù)據(jù)庫的安全配置、MySQL用戶帳號管理以及使用MD5加密提高數(shù)據(jù)庫前臺和后臺數(shù)據(jù)安全性做了詳細(xì)研究。通過本次論文的編寫,讓我了解了MySQL數(shù)據(jù)庫的安全配置、用戶賬號管理、增刪用戶等知識以及如何使用MD5加密地?cái)?shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密。在今后的軟件開發(fā)中,我知道如何盡可能的提高數(shù)據(jù)庫的安全性,保證資料不被竊取。由于MySQL數(shù)據(jù)庫是個(gè)相當(dāng)復(fù)雜的管理數(shù)據(jù)的系統(tǒng),有很多問題我沒有實(shí)際操作,有很多實(shí)際操作結(jié)果與書籍中的不一致,還有很多問題書籍中沒有詳細(xì)講解等等,所以這次論文只做了簡單研究,有些地方講解的不清楚。這都是本次論文的不足之處。我希望通過以后的進(jìn)一步學(xué)習(xí),能夠更好的掌握MySQL數(shù)據(jù)庫的安全管理參考文獻(xiàn):1唐漢明,蘭麗華,關(guān)寶軍等MySQL數(shù)據(jù)庫優(yōu)化與管理維護(hù)北京:人民
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 9 What's your hobby 說課稿(說課稿)-2024-2025學(xué)年湘少版(三起)英語五年級上冊
- Unit 3 What Would you like(說課稿)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 2023九年級數(shù)學(xué)上冊 第六章 反比例函數(shù)1 反比例函數(shù)說課稿 (新版)北師大版
- 10《爬山虎的腳》說課稿-2024-2025學(xué)年語文四年級上冊統(tǒng)編版
- 2023三年級英語下冊 Unit 2 Animals at the Zoo Lesson 8 Tigers and Bears說課稿 冀教版(三起)
- 2025民間個(gè)人借款合同書范文
- 2024-2025學(xué)年高一歷史第13周 6.2卓爾不群的雅典說課稿
- 2025常年法律顧問合同
- 19《一只窩囊的大老虎》第二課時(shí)(說課稿)-2024-2025學(xué)年統(tǒng)編版語文四年級上冊001
- 2025獨(dú)家經(jīng)銷合同范本
- GMS要素-持續(xù)改進(jìn)(CI)-上汽通用五菱-課件
- 《插畫設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 九九乘法口訣表(超清晰打印版)
- 高考作文答題卡(作文)
- 在鄉(xiāng)村治理中深化推廣運(yùn)用清單制、積分制、一張圖工作方案
- 營養(yǎng)學(xué)基礎(chǔ)知識-課件
- 梅毒的診斷與治療課件
- 工程倫理第二講工程中的風(fēng)險(xiǎn)、安全與責(zé)任課件
- 高中數(shù)學(xué)《橢圓》方程典型例題20例(含標(biāo)準(zhǔn)答案)
- 中山大學(xué)孫逸仙紀(jì)念醫(yī)院醫(yī)用耗材試用登記表【模板】
評論
0/150
提交評論