🔥 mssql-python 1.8.0 正式发布!这是微软官方维护的 Python SQL Server 驱动,本次更新聚焦日常开发体验改善,终于补上了 Bulk Copy 托管标识这块短板。
▸ 1. Row 对象支持字符串键索引
以前用 mssql-python 取数据,只能用整数索引(row[0])或属性访问(row.display_name)。1.8.0 新增了字符串键索引,更符合 Python 用户的直觉:
cursor.execute("SELECT id, display_name FROM users WHERE id = ?", [42])
row = cursor.fetchone()
row[0] # 42
row.display_name # 'Ada'
row["display_name"] # 'Ada' ← 1.8.0 新增!
配合 cursor.lowercase = True,字符串键查找也变成大小写不敏感,跟属性访问行为一致。
▸ 2. Bulk Copy 支持 ActiveDirectoryMSI 身份认证
这是很多跑在 Azure 上的 Python 项目盼了很久的功能。现在 Bulk Copy 支持使用托管标识(Managed Identity)向 Azure SQL 批量写入,无需在代码或配置里放任何明文凭据。
适用场景:
- Azure VM 上的定时数据同步任务
- App Service / Functions / Container Apps 中的 ETL 流程
- AKS 里的批量数据导入
# 连接字符串直接用 MSI,不需要密码
conn_str = "DRIVER={ODBC Driver 18 for SQL Server};SERVER=xxx.database.windows.net;DATABASE=xxx;Authentication=ActiveDirectoryMSI;"
▸ 3. 内置 ODBC 驱动升级至 18.6.2.1
wheel 包里内置的 Microsoft ODBC Driver 从 18.5.1.1 升级到 18.6.2.1。升级 wheel 就自动获得上游修复和 TLS 证书改进,不需要单独安装 ODBC 驱动。
▸ 值得关注的 Bug 修复
- 连接属性延迟释放导致的内存释放后使用问题已修复
- 认证路径中连接字符串多次解析的性能问题已优化(改为操作已解析的参数字典)
- executemany 类型注解回归修复(seq_of_parameters 现在使用协变 Sequence)
▸ 升级方式
pip install --upgrade mssql-python
本次更新没有故意引入任何破坏性变更。
▸ 国内用户为什么要关注?
如果你在 Azure 中国区(由 21Vianet 运营)跑 Python 服务,托管标识认证可以让你彻底告别密钥管理烦恼。配合 Azure Key Vault 使用,整个凭据管理链路全托管,安全合规一步到位。
另外,很多国内团队还在用 pymssql(基于 FreeTDS,已多年不活跃),mssql-python 是微软官方维护的驱动,对 SQL Server 2019/2022 的新特性支持更完整,是升级的好时机。
💬 你还在用 pymssql 吗?有没有遇到过中文乱码或者 Windows 认证的问题?
详细更新日志:https://github.com/microsoft/mssql-python/releases/tag/v1.8.0 发布日期:2026-05-29


