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

Azure Python函数部署后连接本地SQL Server报Kerberos凭证错误

解决Azure Function连接SQL Server的Kerberos凭证错误

问题原因

部署在Linux环境的Azure无服务器函数中,pyodbc默认尝试使用SSPI(Kerberos)认证方式连接SQL Server,但无服务器环境没有可配置的Kerberos凭证缓存,导致认证失败。本地运行时因环境差异(如Windows系统自带SSPI支持或默认走SQL身份验证),所以功能正常。

解决方案

强制指定SQL Server身份验证方式,跳过Kerberos认证。修改你的SQLAlchemy连接URL,添加authentication=SqlPassword参数:

修改后的代码

user = "my_user"
password = "my_pass"
db_name = "my_db"
port = "default_port"
host = "fully_qualified_host"
driver = "ODBC Driver 17 for SQL Server"

sql_statement = "TRUNCATE TABLE adp.stg_hr_workers"

connection_url = URL.create(
    "mssql+pyodbc",
    query={
        "username": user,
        "password": password,
        "host": host,
        "port": port,
        "database": db_name,
        "driver": driver,
        "authentication": "SqlPassword"  # 强制使用SQL Server身份验证
    },
)

engine = create_engine(connection_url, echo=False)

Session = sessionmaker(bind=engine)

with Session.begin() as session:
    session.execute(text(sql_statement))

额外注意事项

  • 若你的SQL Server使用自签名证书,需在query中追加"TrustServerCertificate": "yes",避免证书验证错误。
  • 已确认子网连通性,此部分无需额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:15:24