有一個客戶端驗證外掛程式可用,可讓客戶端將密碼以明文形式傳送至伺服器,而無需雜湊或加密。此外掛程式內建於 MySQL 客戶端程式庫中。
下表顯示外掛程式名稱。
表 8.18 明文驗證的外掛程式和程式庫名稱
外掛程式或檔案 | 外掛程式或檔案名稱 |
---|---|
伺服器端外掛程式 | 無,請參閱討論 |
客戶端外掛程式 | mysql_clear_password |
程式庫檔案 | 無 (外掛程式已內建) |
許多客戶端驗證外掛程式在客戶端將密碼傳送至伺服器之前,會對密碼執行雜湊或加密。這可讓客戶端避免以明文形式傳送密碼。
對於需要伺服器接收用戶端輸入的密碼的驗證方案,無法進行雜湊或加密。在這種情況下,會使用用戶端 mysql_clear_password
外掛程式,讓用戶端以明文形式將密碼傳送至伺服器。沒有對應的伺服器端外掛程式。而是 mysql_clear_password
可以與任何需要明文密碼的伺服器端外掛程式搭配在用戶端使用。(例如 PAM 和簡單 LDAP 驗證外掛程式;請參閱章節 8.4.1.5,「PAM 可插拔驗證」和章節 8.4.1.7,「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
選項,可針對每次呼叫啟用外掛程式。mysql_options()
C API 函式支援MYSQL_ENABLE_CLEARTEXT_PLUGIN
選項,可針對每個連線啟用外掛程式。此外,任何使用libmysqlclient
並讀取選項檔案的程式,都可以在用戶端程式庫讀取的選項群組中加入enable-cleartext-plugin
選項,以啟用此外掛程式。