-
Connector/C++ 现在支持使用智能卡、安全密钥和生物识别读取器等设备对 MySQL 服务器进行身份验证。此身份验证方法基于快速身份在线 (FIDO) 标准。为确保使用遗留 JBDC API 的客户端应用程序在用户预期与 FIDO 设备交互时得到通知,Connector/C++
setCallback()
在MySQL_Driver
接受名为Fido_Callback
.class Fido_Callback { public: Fido_Callback(std::function<void(SQLString)>); /** * Override this message to receive Fido Action Requests */ virtual void FidoActionRequested(sql::SQLString msg); };
如果需要,驱动程序创建的任何连接都可以使用回调。但是,如果应用程序未明确设置回调,
libmysqlclient
则默认确定行为,这涉及将消息打印到标准输出。笔记在 Windows 上,客户端应用程序必须以管理员身份运行。这是插件
fido2.dll
使用的库 的要求。authentication_fido
客户端应用程序有两个选项可用于从连接器获取回调:
-
通过将函数或 lambda 传递给
Fido_Callback
.driver->setCallBack(Fido_Callback([](SQLString msg) {...}));
-
通过实现虚拟方法
FidoActionRequested
。class MyWindow : public Fido_Callback { void FidoActionRequested(sql::SQLString msg) override; }; MyWindow window; driver->setCallBack(window);
设置新的回调总是会删除以前的回调。要禁用活动回调并恢复默认行为,请
nullptr
作为函数回调传递。例子:driver->setCallBack(Fido_Callback(nullptr));
有关 FIDO 身份验证的更多信息,请参阅 FIDO 可插入身份验证。
-
对于捆绑了 OpenSSL 库的平台,Connector/C++ 的链接 OpenSSL 库已更新至版本 1.1.1n。在https://www.openssl.org/news/cl111.txt和 https://www.openssl.org/news/vulnerabilities.html中描述了新 OpenSSL 版本中修复的问题 。(缺陷号 33987637)
-
Connector/C++ X DevAPI 参考文档(位于 https://mysql.net.cn/doc/index-connectors.html)更新了
Collection.modify().unset()
操作的使用说明。的参数unset()
是一个字符串,将被解释为文档路径表达式(类似于"$.foo.'bar'"
),而不是文字字段名称。如果参数包含特殊字符(空格、'.
'、'$
' 等),则需要将字段名称用引号引起来。例如:Collection.modify(~~).unset(""field name with spaces"")
(缺陷号 33795881)
-
Connector/C++ 支持现有 TLS/SSL 连接选项的新别名,以在 X DevAPI、X DevAPI for C 和遗留的基于 JDBC 的 API 之间提供更好的一致性。这种协调工作可确保选项命名、功能和行为得到一致实施,同时还保持与现有选项的兼容性。例如,Connector/C++ 现在确保设置 TLS/SSL 连接选项以及
ssl-mode=DISABLED
,如果客户端应用程序提供不兼容的选项,或者在连接字符串或属性中重复相同的选项,则不会返回错误。适用于 X DevAPI 和 X DevAPI for C 的更改是:
tls-version
作为别名添加到现有tls-versions
连接选项。ssl-capath
、ssl-crl
和ssl-crlpath
选项现在实现了与遗留 JDBC API 相同的功能。如果重复相同的选项,则以最后一个选项值为准。
遗留 JDBC API 的新别名是:
ssl-mode
(对于现有OPT_SSLMODE
选项):与服务器连接的首选安全状态。ssl-ca
(对于现有sslCA
选项):包含受信任的 SSL 证书颁发机构列表的文件。ssl-capath
(对于现有sslCAPath
选项):包含受信任的 SSL 证书颁发机构证书文件的目录。ssl-cert
(对于现有sslCert
选项):包含 X.509 证书的文件。ssl-cipher
(对于现有sslCipher
选项):用于连接加密的允许密码。ssl-key
(对于现有sslKey
选项):包含 X.509 密钥的文件。ssl-crl
(对于现有sslCRL
选项):包含证书吊销列表的文件。ssl-crlpath
(对于现有sslCRLPath
选项):包含证书吊销列表文件的目录。tls-version
(对于现有OPT_TLS_VERSION
选项):用于加密连接的允许 TLS 协议。
使用遗留 JDBC API 时,设置选项两次的效果由客户端库决定。此外,使用旧版 JDBC API 时,类似 URI 的字符串中不支持 TLS/SSL 选项。