You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure自动化账户Python Runbook因TLS版本过低登录SQL失败

解决Azure自动化Python Runbook连接SQL Server的TLS版本错误

问题原因

Azure SQL Server默认要求客户端使用TLS 1.2及以上版本连接,而Azure自动化账户的Python运行环境可能未默认启用该版本TLS,导致连接时触发版本不匹配报错。

具体解决步骤

1. 强制Python环境使用TLS 1.2

在脚本开头添加代码,强制指定TLS协议版本,确保客户端使用符合要求的加密方式:

import ssl
# 强制启用TLS 1.2
ssl.SSLContext.set_default(ssl.SSLContext(ssl.PROTOCOL_TLSv1_2))

2. 完善连接字符串的加密参数

修改连接字符串,明确指定加密相关参数,帮助驱动正确协商TLS版本:

import pyodbc

server = 'servername.windows.net'
database = 'DB'
username = 'someuser'
password = '**'   
driver= '{ODBC Driver 17 for SQL Server}'

# 新增Encrypt和TrustServerCertificate参数
conn_str = f"""
DRIVER={driver};
SERVER=tcp:{server};
PORT=1433;
DATABASE={database};
UID={username};
PWD={password};
Encrypt=yes;
TrustServerCertificate=no;
"""

with pyodbc.connect(conn_str) as conn:
    with conn.cursor() as cursor:
        cursor.execute("SELECT DB_NAME()")
        row = cursor.fetchall()
        print(row)

3. 验证自动化账户运行环境

  • 确认Azure自动化账户使用的Python版本为3.8及以上,该版本对TLS 1.2支持更完善
  • 检查自动化账户沙箱环境是否预装了ODBC Driver 17 for SQL Server,你的脚本已指定该驱动,此步骤仅做兼容性确认

额外注意事项

  • 不要使用{SQL Server}旧驱动,它不支持TLS 1.2,你的脚本已选用正确驱动,无需调整
  • 若之前已能触发TLS报错,说明Azure SQL防火墙已允许自动化账户IP访问,此规则无需修改

内容的提问来源于stack exchange,提问作者Baxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:40:32