資源描述:
《作為一個MySQL的系統(tǒng)管理員你有責(zé)任維護你的MySQL數(shù)據(jù)庫系統(tǒng).doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、作為一個MySQL的系統(tǒng)管理員,你有責(zé)任維護你的MySQL數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)安全性和完整性。本文主要主要介紹如何建立一個安全的MySQL系統(tǒng),從系統(tǒng)內(nèi)部和外部網(wǎng)絡(luò)兩個角度,為你提供一個指南。本文主要考慮下列安全性有關(guān)的問題:為什么安全性很重要,你應(yīng)該防范那些攻擊?服務(wù)器面臨的風(fēng)險(內(nèi)部安全性),如何處理?連接服務(wù)器的客戶端風(fēng)險(外部安全性),如何處理?MySQL管理員有責(zé)任保證數(shù)據(jù)庫內(nèi)容的安全性,使得這些數(shù)據(jù)記錄只能被那些正確授權(quán)的用戶訪問,這涉及到數(shù)據(jù)庫系統(tǒng)的內(nèi)部安全性和外部安全性。內(nèi)部安全性關(guān)心的是文件系統(tǒng)級的問題,即,防止My
2、SQL數(shù)據(jù)目錄(DATADIR)被在服務(wù)器主機有賬號的人(合法或竊取的)進行攻擊。如果數(shù)據(jù)目錄內(nèi)容的權(quán)限過分授予,使得每個人均能簡單地替代對應(yīng)于那些數(shù)據(jù)庫表的文件,那么確??刂瓶蛻敉ㄟ^網(wǎng)絡(luò)訪問的授權(quán)表設(shè)置正確,對此毫無意義。外部安全性關(guān)心的是從外部通過網(wǎng)絡(luò)連接服務(wù)器的客戶的問題,即,保護MySQL服務(wù)器免受來自通過網(wǎng)絡(luò)對服務(wù)器的連接的攻擊。你必須設(shè)置MySQL授權(quán)表(granttable),使得他們不允許訪問服務(wù)器管理的數(shù)據(jù)庫內(nèi)容,除非提供有效的用戶名和口令。下面就詳細介紹如何設(shè)置文件系統(tǒng)和授權(quán)表mysql,實現(xiàn)MySQL的兩級安
3、全性。一、內(nèi)部安全性-保證數(shù)據(jù)目錄訪問的安全MySQL服務(wù)器通過在MySQL數(shù)據(jù)庫中的授權(quán)表提供了一個靈活的權(quán)限系統(tǒng)。你可以設(shè)置這些表的內(nèi)容,允許或拒絕客戶對數(shù)據(jù)庫的訪問,這提供了你防止未授權(quán)的網(wǎng)絡(luò)訪問對你數(shù)據(jù)庫攻擊的安全手段,然而如果主機上其他用戶能直接訪問數(shù)據(jù)目錄內(nèi)容,建立對通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫的良好安全性對你毫無幫助,除非你知道你是登錄MySQL服務(wù)器運行主機的唯一用戶,否則你需要關(guān)心在這臺機器上的其他用戶獲得對數(shù)據(jù)目錄的訪問的可能性。以下是你應(yīng)該保護的內(nèi)容:數(shù)據(jù)庫文件。很明顯,你要維護服務(wù)器管理的數(shù)據(jù)庫的私用性。數(shù)據(jù)庫擁有者
4、通常并且應(yīng)該考慮數(shù)據(jù)庫內(nèi)容的安全性,即使他們不想,也應(yīng)該考慮時數(shù)據(jù)庫內(nèi)容公開化,而不是通過糟糕的數(shù)據(jù)目錄的安全性來暴露這些內(nèi)容。日志文件。一般和更新日志必須保證安全,因為他們包含查詢文本。對日志文件有訪問權(quán)限的任何人可以監(jiān)視數(shù)據(jù)庫進行過的操作。更要重點考慮的日志文件安全性是諸如GRANT和SETPASSWORD等的查詢也被記載了,一般和更新日志包含有敏感查詢的文本,包括口令(MySQL使用口令加密,但它在已經(jīng)完成設(shè)置后才運用于以后的連接建立。設(shè)置一個口令的過程設(shè)計象GRANT或SETPASSWORD等查詢,并且這些查詢以普通文本形
5、式記載在日志文件中)。如果一個攻擊者猶如日文件的讀權(quán)限,只需在日志文件上運行g(shù)rep尋找諸如GRANT和PASSWORD等詞來發(fā)現(xiàn)敏感信息。顯然,你不想讓服務(wù)器主機上的其他用戶有數(shù)據(jù)庫目錄文件的寫權(quán)限,因為他們可以重寫你的狀態(tài)文件或數(shù)據(jù)庫表文件,但是讀權(quán)限也很危險。如果一個數(shù)據(jù)庫表文件能被讀取,偷取文件并得到MySQL本身,以普通文本顯示表的內(nèi)容也很麻煩,為什么?因為你要做下列事情:在服務(wù)器主機上安裝你自己“特制”的MySQL服務(wù)器,但是有一個不同于官方服務(wù)器版本的端口、套接字和數(shù)據(jù)目錄。運行mysql_install_db初始化
6、你的數(shù)據(jù)目錄,這賦予你作為MySQLroot用戶訪問你的服務(wù)器的權(quán)限,所以你有對服務(wù)器訪問機制的完全控制,它也建立一個test數(shù)據(jù)庫。將對應(yīng)于你想偷取得表文件拷貝到你服務(wù)器的數(shù)據(jù)庫目錄下的test目錄。啟動你的服務(wù)器。你可以隨意訪問數(shù)據(jù)庫表,SHOWTABLESFROMtest顯示你有一個偷來的表的拷貝,SELECT*顯示它們?nèi)魏我粋€的全部內(nèi)容。如果你確實很惡毒,將權(quán)限公開給你服務(wù)器的任何匿名用戶,這樣任何人能從任何地方連接服務(wù)器訪問你的test數(shù)據(jù)庫。你現(xiàn)在將偷來的數(shù)據(jù)庫表公布于眾了。在考慮一下,從相反的角度,你想讓別人對你這樣
7、嗎?當(dāng)然不!你可以通過在數(shù)據(jù)庫錄下執(zhí)行l(wèi)s-l命令確定你的數(shù)據(jù)庫是否包含不安全的文件和目錄。查找有“組”和“其他用戶”權(quán)限設(shè)置的文件和目錄。下面是一個不安全數(shù)據(jù)目錄的一部分列出: %ls-ltotal10148drwxrwxr-x??11??mysqladmwheel????1024May??812:20.drwxr-xr-x??22??root?????wheel?????512May??813:31..drwx------???2??mysqladmmysqlgrp??512Apr1615:57menageriedrwxrwx
8、r-x???2??mysqladmwheel?????512Jan2520:40mysqldrwxrwxr-x???7??mysqladmwheel?????512Aug31??1998sql-benchdrwxrwxr-x???2??mysqla