MySQL Connector/ODBC 版本注意事項
Connector/ODBC 支援不同的驗證方法,包括
使用 MySQL 使用者名稱和密碼的標準驗證,例如 caching_sha2_password。
-
用於無密碼驗證的 Kerberos 驗證協定。如需有關 Kerberos 驗證的詳細資訊,請參閱 Kerberos 可插拔驗證。
在 Connector/ODBC 8.0.26 中為 Linux 用戶端新增的支援,以及在 8.0.27 中為 Windows 用戶端新增的支援。
-
透過使用
PASSWORD1
(PASSWORD
的別名)、PASSWORD2
和PASSWORD3
連線選項進行多因素驗證 (MFA)。此外,還有PWD1
、PWD2
和PWD3
別名。在 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, ....);