企業最有價值的資產通常是其數據庫中的客戶或產品信息。因此,在這些企業中,數據庫管理的壹個重要部分是保護這些數據免受外部攻擊並修復軟件/硬件故障。
在大多數情況下,軟件和硬件故障由數據備份機制處理。大部分數據庫都內置了自動完成整個過程的工具,所以這個工作相對容易,不會出錯。但麻煩來自另壹面:防止外來入侵竊取或破壞數據庫中的信息。不幸的是,壹般沒有自動工具來解決這個問題;而且這需要管理員手動設置障礙進行防範,保證公司數據的安全。
不保護數據庫的常見原因是這項工作“麻煩”且“復雜”。這是真的,但是如果妳應用MySQL,妳可以使用壹些便捷的功能來顯著降低妳所面臨的風險。列出了以下功能:
◆刪除授權表中的通配符。
MySQL訪問控制系統通過壹系列所謂的授權表運行,從而在數據庫、表或列級別定義用戶的訪問權限。但是,這些表單允許管理員為用戶設置壹攬子許可證,或者設置壹組應用通配符的表單。這樣做有潛在的危險,因為受限帳戶可能被用來訪問系統的其他部分。因此,在設置用戶權限時要小心,並始終確保用戶只能訪問他們需要的內容。為單個用戶設置超級權限時要特別小心,因為這個級別允許普通用戶修改服務器的基本配置並訪問整個數據庫。
建議:對每個用戶帳戶應用Show Privilege命令,以查看授權表,了解應用通配符權限是否合適。
◆要求使用安全密碼。
用戶帳戶的安全性與用於保護它們的密碼密切相關。所以在安裝MySQL的時候,首先要做的就是設置MySQL root賬號的密碼(默認為空)。在修復了這個漏洞之後,我們應該要求每個用戶賬號都使用壹個密碼,不要使用生日、用戶名或者字典裏的單詞等啟發式密碼,這些密碼容易識別。
建議:應用MySQL- security-authorization選項,避免使用舊的、不太安全的MySQL密碼格式。
◆檢查配置文件權限。
壹般來說,為了使服務器連接更快更方便,個人用戶和服務器管理員必須將其用戶帳戶密碼存儲在單用戶MySQL選項文件中。但是,該密碼以純文本形式存儲在壹個文件中,可以很容易地查閱。因此,必須確保這樣的單用戶配置文件不會被系統中的其他用戶查閱,也不會存儲在非公共位置。理想情況下,您希望壹個單用戶概要文件存儲在用戶的根目錄中,許可證為0600。
◆加密客戶端和服務器之間的數據傳輸:
MySQL(以及其他)客戶機-服務器體系結構的壹個重要問題是通過網絡傳輸數據的安全性。如果客戶端和服務器之間的交互以純文本的形式發生,就有可能“嗅出”傳輸的數據包並獲得機密信息。您可以通過在MySQL配置中激活SSL或應用OpenSSH之類的安全應用程序來為傳輸的數據建立安全的加密“通道”,從而堵塞這個漏洞。以這種方式加密客戶端和服務器之間的連接會使未經授權的用戶極難訪問數據。
◆禁止遠程訪問。
如果用戶不需要遠程訪問服務器,可以通過UNIX插槽文件強制完成所有MySQL連接,從而大大降低網絡攻擊的風險。這個過程可以通過跳過網絡選項並啟動服務器來完成。這可以防止TCP/IP網絡連接到MySQL,並確保沒有用戶可以遠程連接到系統。
建議:可以在MySQL服務器配置中添加綁定地址127.0.0.1的指令來增強這個功能,強制MySQL綁定本地機器的IP地址,保證只有同壹系統的用戶才能連接MySQL。
◆主動監控MySQL訪問記錄。
MySQL中有許多不同的日誌文件,記錄客戶連接、查詢和服務器錯誤。其中最重要的是通用查詢日誌,用時間戳記錄每個客戶的連接和斷開時間,記錄客戶執行的每壹次查詢。如果您懷疑異常行為,如網絡入侵,監控該日誌是了解行為來源的好方法。
保護您的MySQL數據庫是壹項日常工作。所以,即使完成了以上步驟,妳也需要花更多的時間去學習更多的安全建議,主動監控和更新妳的系統安全。