文件首頁
MySQL Connector/ODBC 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.7Mb
PDF (A4) - 1.7Mb


5.9 驗證選項

Connector/ODBC 支援不同的驗證方法,包括

  • 使用 MySQL 使用者名稱和密碼的標準驗證,例如 caching_sha2_password

  • 用於無密碼驗證的 Kerberos 驗證協定。如需有關 Kerberos 驗證的詳細資訊,請參閱 Kerberos 可插拔驗證

    在 Connector/ODBC 8.0.26 中為 Linux 用戶端新增的支援,以及在 8.0.27 中為 Windows 用戶端新增的支援。

  • 透過使用 PASSWORD1 ( PASSWORD 的別名)、PASSWORD2PASSWORD3 連線選項進行多因素驗證 (MFA)。此外,還有 PWD1PWD2PWD3 別名。

    在 Connector/ODBC 8.0.28 中新增的支援。

  • 支援基於 FIDO 的驗證,且 Connector/ODBC 支援基於 FIDO 的 WebAuthn 可插拔驗證外掛程式。請參閱一般 WebAuthn 可插拔驗證文件,以取得安裝需求和實作詳細資訊。

    注意

    在 Connector/ODBC 8.2.0 中新增了對 authentication_webauthn 外掛程式的支援。在 8.0.29 中新增了對 authentication_fido 外掛程式的支援,在 8.2.0 中已棄用,並在 8.4.0 中移除。

    回呼用法範例

    // SQL_DRIVER_CONNECT_ATTR_BASE is not defined in all driver managers.
    // Therefore use a custom constant until it becomes a standard.
    #define MYSQL_DRIVER_CONNECT_ATTR_BASE 0x00004000
    
    // Custom constants used for callback
    #define CB_FIDO_GLOBAL MYSQL_DRIVER_CONNECT_ATTR_BASE + 0x00001000
    #define CB_FIDO_CONNECTION MYSQL_DRIVER_CONNECT_ATTR_BASE + 0x00001001
    
    // Usage example
    // Callback function inside code:
    void user_callback(const char* msg)
    {
       // Do something ...
    }
    SQLHENV henv = nullptr;
    SQLAllocHandle(SQL_HANDLE_ENV, nullptr, &henv);
    
    // Set the ODBC version to 3.80 otherwise the custom constants don't work
    SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,                               
    (SQLPOINTER)SQL_OV_ODBC3_80, 0);
    
    SQLHDBC hdbc = nullptr;
    SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    
    // CB_FIDO_X is either CB_FIDO_GLOBAL or CB_FIDO_CONNECTION
    SQLSetConnectAttr(hdbc, CB_FIDO_X, &user_callback, SQL_IS_POINTER);
    
    SQLDriverConnect(hdbc, hwnd, conn_str, ....);