程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL敏感數據安全保護六大措施

MySQL敏感數據安全保護六大措施

編輯:關於MYSQL數據庫

  如果你目前用的數據庫是MySQL,有很多簡單的方法能夠幫助你保護系統安全,並顯著降低你的敏感數據收到未授權訪問的風險。

  以技術為基礎的企業裡最有價值的資產通常是客戶或者其數據庫中的產品信息。因此,在這樣的企業中,保證數據庫免受外界攻擊並防止出現軟件和硬件方面的故障是數據庫管理的重要環節。

  大多數情況下,硬件和軟件故障都通過數據庫備份方案進行處理。大部分數據庫都配備有內置的工具來自動執行整個過程,使得備份任務不需要花費很大力氣,也不會出現什麼差錯。不過,數據安全問題解決起來就不那麼簡單了。要保護敏感數據的安全,必須確保外部的黑客無法侵入系統,也無法盜取或破壞數據庫裡包含的信息。事實上,沒有什麼自動化的方法來解決這個問題;相反,要確保企業數據安全,數據庫管理員必須要實打實的人工設立一些能夠阻止潛在的黑客侵入的屏障。

  很多數據庫管理員並沒有實施什麼數據庫保護措施,只是因為這做起來很“棘手”並且太“復雜”。雖然情況確實如他們所述,但如果你使用的使MySQL,你只需要用一些簡單的方法就能夠大大減少你所面臨的風險。本文列舉了其中六大防范措施,不過你還可以在MySQL的說明手冊和相關論壇找到更多類似的方法。

  第一步:消除授權表的通配符

  MySQL的訪問控制系統是通過一系列所謂授權表進行運作的,這些授權表使我們能夠在數據庫、表和列水平上定義每一位用戶的訪問級別。而這些表也能夠讓管理員授予某用戶普適許可(即總是允許)或授予表使用通配符的權限,這樣做相當危險,因為黑客有可能會使用一個被盜帳號來獲取訪問系統其他部分的權限。因此,在分配用戶權限時要謹慎行事,做到准確無誤,並且始終確保用戶獲得的訪問權限恰好足夠他們完成任務即可。此外,還要謹防給個人用戶分配SUPER特權,因為這個級別的權限允許用戶操縱基本服務器配置並訪問所有數據庫。

  提示:使用SHOW PRIVILEGES命令顯示每一個用戶帳號的權限,以便審計你的授權表並檢查通配符的使用權限是否得當。

  第二步:使用安全密碼

  只有在使用密碼的情況下,用戶帳戶才能得到安全保障。因此,當你安裝MySQL時要做的第一件事就是給MySQL的根帳戶設置一個密碼(默認情況下密碼為空)。當你堵住這個大漏洞之後,下一步就是要求每一個用戶帳戶都設置好自己的密碼,並確保沒有使用具有啟發式信息的容易被識破的密碼,例如生日、用戶姓名字母等。

  提示:啟用MySQL的--secure-auth選項以防止用戶使用任何老式的不太安全的MySQL密碼格式。

  第三步:檢查配置文件的許可

  很多時候,為了使服務器連接更加快捷方便,無論是個人用戶還是服務器管理員都把他們的用戶帳號密碼存儲在MySQL的per-user選項文件中。但是,這個密碼是以純文本形式存儲在這個文件中的,很容易就會被讀取。因此,確保系統的其他用戶無法查看類似於per-user這種配置文件,並把這些文件存儲在非公共區域就顯得至關重要。最好是把per-user配置文件存儲在用戶帳戶的私人主目錄下,並將權限設置為0600(只能被根用戶讀寫)。

  第四步:對客戶端服務器傳輸進行加密

  在MySQL的客戶端服務器架構(對於任何此類架構也是如此)中,關於在網絡中傳輸數據時保證數據安全的問題非常重要。如果客戶端服務器事務是以明文(信息未加密)的方式進行的,那麼黑客很容易就能發現這些傳輸中的數據包,並從中獲取敏感信息。想要堵住這個漏洞,你可以激活MySQL設置中的SSL,或者使用OpenSSH這類的安全外殼實用程序,以便為通過的數據創造一個安全的加密通道。通過這種方式對客戶端服務器連接進行加密,未經授權的用戶就很難讀取這些不斷在通道中往來傳輸的數據了。

  第五步:禁用遠程訪問功能

  如果你的用戶不需要對服務器進行遠程訪問,那你就可以通過強制所有的MySQL連接都通過UNIX的socket文件進行,這樣做可以大大降低受到網絡攻擊的風險。設置服務器使用了--skip-networking選項啟動,這樣做能夠屏蔽MySQL的TCP/IP網絡連接,並確保沒有用戶能夠遠程連接到系統。

  提示:如果想要更加保險,可以在MySQL服務器設置裡添加bind-address=127.0.0.1指令,將MySQL強制綁定到本地機器的IP地址,從而確保只有同一系統的用戶才能連接到MySQL。

  第六步:積極監控MySQL的訪問日志

  MySQL裡具有很多不同的日志文件,用來記錄客戶端連接、查詢和服務器錯誤。其中最重要的就是通用查詢日志(general query log),其中以時間戳記錄了每一個客戶端連接和斷開連接,並記錄了客戶端執行每一次查詢的情況。如果你懷疑MySQL出現了不尋常的活動,例如和網絡侵入有關的活動,那麼最好對這個日志進行監控,往往就可以查出此類活動的源頭。

  總結

  MySQL數據庫的保護工作是一項需要持之以恆的任務,一旦你已經開始實施了上面的保護措施,就不要輕易的中斷。查閱MySQL的相關說明文獻或者訪問MySQL的論壇,你可以獲得更多關於安全方面的信息,然後應用到實際行動中,積極主動的檢測和更新系統的安全設置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved