MySQL的可插入驗證和客戶端明文驗證外掛介紹

chenfeng發表於2017-04-05
MySQL 支援多種透過可插入驗證提供的驗證機制。
  • 外掛是內建的,也可作為外部庫提供。
  • 預設的伺服器端外掛是內建的,始終可用,其中包括:
– mysql_native_password:這是預設機制
– mysql_old_password:此外掛的實現驗證的方式與MySQL4.1.1 之前的版本相同。
– sha256_password:此外掛可啟用口令的SHA-256雜湊。
MySQL 使用多種演算法對使用者表中儲存的口令加密:
  • mysql_native_password 外掛實施標準口令格式:41 位元組寬的雜湊。
  • mysql_old_password 外掛實施較舊的格式,安全性較低,16 位元組寬。
  • sha256_password 外掛實施在安全計算中廣泛採用的SHA-256 雜湊演算法。
old_passwords 系統變數的值指定PASSWORD() 函式用於建立口令的演算法,如下所示:
  • 0:標準演算法,與MySQL 4.1.1 及更高版本中所用的演算法相同
  • 1:舊演算法,與MySQL 4.1.1 之前版本中所用的演算法相同
  • 2:SHA-256 演算法
啟動伺服器時將default-authentication-plugin 選項設定為sha256_password,
可將SHA-256 口令用於所有新使用者,也可使用CREATE USER 和IDENTIFIED WITH sha256_password子句為特定使用者指定SHA-256 口令。


客戶端明文驗證外掛
MySQL 客戶機庫中有一個內建的明文驗證外掛
mysql_clear_password。該外掛:
  • 用於將純文字口令傳送給伺服器
– 口令通常經過雜湊處理。
  • 透過以下方式啟用:
– LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN 環境變數
– 在執行MySQL 客戶機應用程式(如mysql 和
mysqladmin)時指定--enable-cleartext-plugin
– mysql_options() C API 函式的
MYSQL_ENABLE_CLEARTEXT_PLUGIN 選項

有些驗證方法(如PAM(Pluggable Authentication Module,可插入驗證模組)驗證)要求客戶機向伺服器傳送純文字口令,以便伺服器處理普通形式的口令。
mysql_clear_password 外掛支援此行為。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2136599/,如需轉載,請註明出處,否則將追究法律責任。

相關文章