與自動的資料庫備份不同,對系統管理員來說,保護資料免受未授權使用者的侵犯需要採取一定的行動。如果你用的是mysql,就可以使用一些方便的功能來保護系統,來大大減少機密資料被未授權使用者訪問的風險。
企業最有價值的資產通常是其資料庫中的客戶或產品資訊。因此,在這些企業中,資料庫管理的乙個重要部分就是保護這些資料免受外部攻擊,及修復軟/硬體故障。
在大多數情況下,軟硬體故障通過資料備份機制來處理。多數資料庫都自帶有內建的工具自動完成整個過程,所以這方面的工作相對輕鬆,也不會出錯。但麻煩卻來自另一面:阻止外來黑客入侵竊取或破壞資料庫中的資訊。不幸的是,一般沒有自動工具解決這一問題;而且,這需要管理員手工設定障礙來阻止黑客,確保公司資料的安全。
不對資料庫進行保護的常見原因是由於這一工作「麻煩」而「複雜」。這確實是事實,但如果你應用mysql,就可以使用一些方便的功能來顯著減少面臨的風險。下面列出了六項功能:
第一步:刪除授權表中的萬用字元
mysql訪問控制系統通過一系列所謂的授權表執行,從而對資料庫、**或欄目級別的使用者訪問權利進行定義。但這些**允許管理員為一名使用者設定一攬子許可,或一組應用萬用字元的**。這樣做會有潛在的危險,因為黑客可能會利用乙個受限的賬戶來訪問系統的其他部分。由於這一原因,在設定使用者特權時要謹慎,始終保證使用者只能訪問他們所需的內容。在給個別使用者設定超級特權時要尤其小心,因為這種級別允許普通使用者修改伺服器的基本配置,並訪問整個資料庫。
建議:對每個使用者賬戶應用顯示特權命令,以審查授權表,了解應用萬用字元許可是否恰當。
第二步:要求使用安全密碼
使用者賬號的安全與用來保護它們的密碼密切相關。因此,在安裝mysql時第一件事就應該設定mysql根賬號的密碼(預設為空)。修復這一漏洞後,接下來就應要求每個使用者賬號使用乙個密碼,且不要使用生日、使用者名稱或字典中的單詞這些容易識別的啟發式密碼。
建議:應用mysql-安全-授權選項避免使用舊的,不大安全的mysql密碼格式。
第三步:檢查配置檔案許可
一般來說,要使伺服器連線更為快速方便,單個使用者和伺服器管理員必須把他們的使用者賬號密碼儲存在單使用者mysql選項檔案中。但是,這種密碼是以純文字形式儲存在檔案中的,很容易就可以查閱。因此,必須保證這樣的單使用者配置檔案不被系統中的其他使用者查閱,且將它儲存在非公共的位置。理想情況下,你希望單使用者配置檔案儲存在使用者的根目錄,許可為0600。
第四步:加密客戶與伺服器之間資料傳送
mysql(及其它)客戶與伺服器構架的乙個重要問題就是通過網路傳送資料時的安全問題。如果客戶與伺服器間的互動以純文字形式發生,黑客就可能「嗅出」被傳送的資料報,從而獲得機密資訊。你可以通過啟用mysql配置中的ssl,或應用乙個openssh這樣的安全應用來為傳送的資料建立乙個安全的加密「通道」,以關閉這一漏洞。以這種形式加密客戶與伺服器連線可使未授權使用者極難查閱往來的資料。
第五步:禁止遠端訪問
如果使用者不需要遠端訪問伺服器,你可以迫使所有mysql連線通過unix插槽檔案來完成,從而大大減少網路受攻擊的風險。這一過程可通過跳過網路選項啟動伺服器來完成。這樣可以阻止tcp/ip網路連線到mysql上,保證沒有使用者可以遠端連線系統。
建議:可以在mysql伺服器配置中新增**位址127.0.0.1指令來增強這一功能,迫使mysql**當地機器的ip位址來保證只有同一系統中的使用者可以連線到mysql。
第六步:積極監控mysql訪問記錄
mysql帶有許多不同的日誌檔案,它們記錄客戶連線,查詢和伺服器錯誤。其中,最重要的是一般查詢日誌,它用時間標籤記錄每名客戶的連線和中斷時間,並記錄客戶執行的每個查詢。如果你懷疑發生了不尋常的行為,如網路入侵,那麼監控這個日誌以了解行為的**是個好方法。
六大步保護MySQL資料庫中重要資料
與自動的資料庫備份不同,對系統管理員來說,保護資料免受未授權使用者的侵犯需要採取一定的行動。如果你用的是mysql,就可以使用一些方便的功能來保護系統,來大大減少機密資料被未授權使用者訪問的風險。企業最有價值的資產通常是其資料庫中的客戶或產品資訊。因此,在這些企業中,資料庫管理的乙個重要部分就是保護...
六大步保護MySQL資料庫中重要資料
與自動的 資料庫備份不同,對系統管理員來說,保護資料免受未授權使用者的侵犯需要採取一定的行動。如果你用的是my sql,就可以使用一些方便的功能來保護系統,來大大減少機密資料被未授權使用者訪問的風險。企業最有價值的資產通常是其資料庫中的客戶或產品資訊。因此,在這些企業中,資料庫管理的乙個重要部分就是...
MySQL資料庫連線六大步驟
class.forname com.mysql.jbdc.driver connection conn drivermanager.getconnection jdbc mysql localhost 3306 test root password statement statement conn....