程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL 數據庫中的安全解決方案(3)

MySQL 數據庫中的安全解決方案(3)

編輯:關於MYSQL數據庫
   提示:隨著網絡的普及,基於網絡的應用也越來越多。網絡數據庫就是其中之一。通過一台或幾台服務器可以為很多客戶提供服務,這種方式給人們帶來了很多方便,但也給不法分子造成了可乘之機。由於數據都是通過網絡傳輸的,這就可以在傳輸的過程中被截獲,或者通過非常手段進入數

 

MySQL的Windows版本已經將OpenSSL加入了。也面的命令是查看你的MySQL是否打開了SSL功能。


  SHOW VARIABLES LIKE 'have_openssl';
  +---------------+-------+
  | Variable_name | Value |
  +---------------+-------+
  | have_openssl | NO |
  +---------------+-------+
  1 row in set (0.00 sec)


  如果返回的是NO,那麼說明你需要將OpenSSL編譯進自己的MySQL

  在有時你可能需要將用戶名和密碼進行加密傳輸。在這時可以使用下面GRANT命令:


  GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "passWord!" REQUIRE SSL;


  還可以通過 REQUIRE x509 選項進行SSL傳輸:


  GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "passWord!" REQUIRE x509;


  你還可以使用REQUIRE SUBJECT來指定一個特定的客戶端證書來訪問數據庫。


  GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%'
  IDENTIFIED BY "passWord!"
  REQUIRE SUBJECT "/C=US/ST=New York/L=Albany/O=Widgets Inc./CN=clIEnt-ray.
  example.com/[email protected]";


  也許你並不關心使用的是什麼客戶許可,而僅僅關心的是你的證書。那麼你可以使用REQUIRE ISSUER來實現:


  GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "passWord!"
  REQUIRE ISSUER "/C=US/ST=New+20York/L=Albany/O=Widgets Inc./CN=cacert.example.
  com/[email protected]";


  SSL還可以直接通過密碼進行加密。可以使用REQUIRE CIPHER設置密碼。


  GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "passWord!"
  REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";


  上面使用了GRANT命令對用戶權限進行設置。而這些信息都是保存在授權表中,這些表是安全系統的心髒。在這些表中保存了每一個用戶和客戶機所具有的權限。如果正確地操作這些表,將會對數據庫的安全起到積極的作用,而如果使用不慎,將是非常危險的。

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