若要編譯和安裝外掛程式庫檔案,請使用第 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 用戶端外掛程式介面。