有一個用戶端驗證外掛程式可供使用,讓用戶端能夠以明文方式將密碼傳送至伺服器,無需雜湊或加密。這個外掛程式已內建於 MySQL 用戶端程式庫中。
下表顯示外掛程式名稱。
表 8.17 明文驗證的外掛程式和程式庫名稱
外掛程式或檔案 | 外掛程式或檔案名稱 |
---|---|
伺服器端外掛程式 | 無,請參閱討論 |
用戶端外掛程式 | mysql_clear_password |
程式庫檔案 | 無(外掛程式已內建) |
許多用戶端驗證外掛程式會在用戶端將密碼傳送至伺服器之前,先執行密碼雜湊或加密。這讓用戶端能夠避免以明文方式傳送密碼。
對於需要伺服器接收在用戶端輸入的密碼的驗證方案,無法執行雜湊或加密。在這種情況下,會使用用戶端 mysql_clear_password
外掛程式,讓用戶端能夠以明文方式將密碼傳送至伺服器。沒有對應的伺服器端外掛程式。相反地,mysql_clear_password
可以在用戶端上使用,與任何需要明文密碼的伺服器端外掛程式搭配使用。(例如 PAM 和簡單 LDAP 驗證外掛程式;請參閱第 8.4.1.4 節,「PAM 可插拔驗證」和第 8.4.1.6 節,「LDAP 可插拔驗證」。)
以下討論提供特定於明文可插拔驗證的使用資訊。如需 MySQL 中可插拔驗證的一般資訊,請參閱第 8.2.17 節,「可插拔驗證」。
在某些設定中,以明文方式傳送密碼可能存在安全性問題。為了避免在任何密碼可能被攔截的情況下發生問題,用戶端應使用可保護密碼的方法連線至 MySQL 伺服器。可行的方法包括 SSL(請參閱第 8.3 節,「使用加密連線」)、IPsec 或私有網路。
為了降低不小心使用 mysql_clear_password
外掛程式的可能性,MySQL 用戶端必須明確啟用它。這可以透過幾種方式來完成
將
LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN
環境變數設定為以1
、Y
或y
開頭的值。這會為所有用戶端連線啟用外掛程式。mysql、mysqladmin、mysqlcheck、mysqldump、mysqlshow和mysqlslap用戶端程式支援
--enable-cleartext-plugin
選項,可在每次調用時啟用外掛程式。C API 函式
mysql_options()
支援MYSQL_ENABLE_CLEARTEXT_PLUGIN
選項,允許在每個連線啟用外掛程式。此外,任何使用libmysqlclient
並讀取選項檔的程式,都可以在用戶端程式庫讀取的選項群組中加入enable-cleartext-plugin
選項,來啟用此外掛程式。