文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  原生可插拔驗證

8.4.1.1 原生可插拔驗證

MySQL 包含一個 mysql_native_password 外掛程式,其可實作原生驗證;也就是說,基於引入可插拔驗證之前所使用的密碼雜湊方法的驗證。

注意

mysql_native_password 驗證外掛程式已棄用,並會在未來版本的 MySQL 中移除。

下表顯示伺服器端和用戶端的外掛程式名稱。

表 8.15 原生密碼驗證的外掛程式與程式庫名稱

外掛程式或檔案 外掛程式或檔案名稱
伺服器端外掛程式 mysql_native_password
用戶端外掛程式 mysql_native_password
程式庫檔案 無 (外掛程式為內建)

以下章節提供原生可插拔驗證的特定安裝和使用資訊

如需 MySQL 中可插拔驗證的一般資訊,請參閱 章節 8.2.17,「可插拔驗證」

安裝原生可插拔驗證

mysql_native_password 外掛程式存在伺服器和用戶端形式

  • 伺服器端外掛程式是內建於伺服器中,但預設為停用。若要啟用它,請啟動 MySQL 伺服器時使用 --mysql-native-password=ON 或在 MySQL 設定檔的 [mysqld] 區段中包含 mysql_native_password=ON

  • 用戶端外掛程式內建於 libmysqlclient 用戶端程式庫,且可供任何連結 libmysqlclient 的程式使用。

使用原生可插拔驗證

MySQL 8.4 (及更新版本) 中的 MySQL 客戶端程式預設使用 caching_sha2_password 進行驗證。如果需要,請使用 --default-auth 選項將 mysql_native_password 設定為預設的客戶端驗證外掛程式,如下所示:

$> mysql --default-auth=mysql_native_password ...
停用原生可插拔驗證

在 MySQL 8.4 中,伺服器端的 mysql_native_password 外掛程式預設為停用。為了保持停用狀態,請確保伺服器啟動時未指定 --mysql-native-password 選項。使用 --mysql-native-password=OFF 也能達到此目的,但並非必要。此外,請勿在 MySQL 組態檔中啟用 mysql_native_password,以保持其停用狀態。

當此外掛程式停用時,所有依賴此外掛程式的操作都將無法存取。具體來說:

  • 使用 mysql_native_password 驗證的已定義使用者帳戶在嘗試連線時會遇到錯誤。

    $> MYSQL -u userx -p
    ERROR 1045 (28000): Access denied for user 'userx'@'localhost' (using password: NO)

    伺服器會將這些錯誤寫入伺服器日誌。

  • 嘗試建立新使用者帳戶或變更以 mysql_native_password 識別的現有使用者帳戶也會失敗並發出錯誤。

    mysql> CREATE USER userxx@localhost IDENTIFIED WITH 'mysql_native_password';
    ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
    mysql> ALTER USER userxy@localhost IDENTIFIED WITH 'mysql_native_password;
    ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

有關啟用此外掛程式的說明,請參閱安裝原生可插拔驗證