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 可插拔身份验证 文档。
注意对 authentication_webauthn 插件的支持是在 Connector/ODBC 8.2.0 中添加的。对 authentication_fido 插件的支持是在 8.0.29 中添加的,在 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, ....);