若要編譯和安裝外掛程式庫檔案,請使用第 4.4.3 節「編譯和安裝外掛程式庫」中的指示。若要讓程式庫檔案可供使用,請將其安裝在外掛程式目錄中(由 plugin_dir
系統變數命名的目錄)。
向伺服器註冊伺服器端外掛程式。例如,若要在伺服器啟動時載入外掛程式,請使用 --plugin-load=auth_simple.so
選項,並根據您的平台調整 .so
字尾。
建立一個使用者,伺服器將針對此使用者使用 auth_simple
外掛程式進行驗證
mysql> CREATE USER 'x'@'localhost'
-> IDENTIFIED WITH auth_simple;
使用用戶端程式以使用者 x
的身分連線到伺服器。伺服器端 auth_simple
外掛程式會與用戶端程式通訊,告知它應該使用用戶端 auth_simple
外掛程式,而後者會將密碼傳送至伺服器。伺服器外掛程式應拒絕傳送空密碼的連線,並接受傳送非空密碼的連線。以每種方式叫用用戶端程式來驗證此點
$> mysql --user=x --skip-password
ERROR 1045 (28000): Access denied for user 'x'@'localhost' (using password: NO)
$> mysql --user=x --password
Enter password: abc
mysql>
由於伺服器外掛程式接受任何非空密碼,因此應被視為不安全。在測試外掛程式以驗證其是否正常運作後,請重新啟動伺服器,而不要使用 --plugin-load
選項,以免無意中讓伺服器在載入不安全的驗證外掛程式的情況下執行。此外,使用 DROP USER 'x'@'localhost'
刪除使用者。
有關載入和使用驗證外掛程式的更多資訊,請參閱安裝和解除安裝外掛程式,以及可插拔驗證。
如果您正在撰寫支援使用驗證外掛程式的用戶端程式,通常此類程式會透過呼叫 mysql_options()
來設定 MYSQL_DEFAULT_AUTH
和 MYSQL_PLUGIN_DIR
選項,進而載入外掛程式
char *plugin_dir = "path_to_plugin_dir";
char *default_auth = "plugin_name";
/* ... process command-line options ... */
mysql_options(&mysql, MYSQL_PLUGIN_DIR, plugin_dir);
mysql_options(&mysql, MYSQL_DEFAULT_AUTH, default_auth);
通常,程式也會接受 --plugin-dir
和 --default-auth
選項,讓使用者可以覆寫預設值。
如果用戶端程式需要較低層級的外掛程式管理,則用戶端程式庫包含採用 st_mysql_client_plugin
引數的函式。請參閱C API 用戶端外掛程式介面。