以前,Connector/Python 添加了对使用 SCRAM-SHA-1 作为身份验证方法的 MySQL 企业版 SASL LDAP 身份验证插件的客户端支持。Connector/Python 现在还支持 SCRAM-SHA-256 作为经典 MySQL 协议连接的替代身份验证方法。基于 SASL 的 LDAP 身份验证不适用于运行 macOS 的客户端。
-
使用 GSSAPI (Kerberos) 身份验证方法为纯 python 实现添加了 SASL 身份验证协议支持(这不适用于连接器/Python 的 c-ext 版本)。
此功能需要 GSSAPI pypi 模块,它提供围绕 GSSAPI C 库的低级和高级包装器。GSSAPI pypi 模块需要在系统上安装 MIT kerberos 才能运行并请求票证,以便在用户使用 authentication_ldap_sasl 进行身份验证并且 authentication_ldap_sasl 插件配置为使用 GSSAPI 机制时使用 MySQL 服务器对连接器/Python 进行身份验证。
这也增加了一个新
krb_service_principal
选项,它必须是“primary/instance@realm”形式的字符串,例如“ldap/ldapauth@MYSQL.COM”,其中“@realm”是可选的。“@realm”默认为krb5.conf
文件中配置的默认领域。
删除了 MySQL 客户端插件依赖项,尽管这是推荐的。此插件允许 MySQL 使用其较新的身份验证方法,因此需要使用新的身份验证方法(如
caching_sha2_password
. (错误#32114921,错误#101464)修复了从关闭的 CMySQLConnection 获取连接 ID 时引发的 AttributeError。(错误#31882419,错误#100825)
修复了对命名元组(生成无效异常)和字典游标(返回错误类型的结果)的支持。(漏洞 #29195610)
修复了 cursor.fetchone() 和 cursor.fetchmany() 以符合 PEP 249,它指定如果之前对 cursor.execute*() 的调用未产生任何结果集或尚未发出调用,则必须引发异常。(错误#26834307,错误#87815)
修复了在启用 C 扩展的情况下使用分数值时从 MySQL 日期时间到 Python 日期时间的微秒转换。例如,来自 MySQL 的 2016-10-20 15:40:23.8 结果是 datetime.datetime(2016, 10, 20, 15, 40, 23, 8) 而不是 datetime.datetime(2016, 10, 20, 15, 40 , 23, 800000). 感谢 Vilnis Termanis 提供补丁。(错误#24938411、错误#31556777、错误#83479、错误#100034)
将相关的 MySQL 服务器错误消息和代码更新到最新版本。(缺陷 #102220,缺陷 #32370045)