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

使用SQLAlchemy以非本地账号连接SQL Server失败求助

解决SQL Server登录失败(错误18456)的常见方案
  • 检查驱动兼容性
    你当前用的{SQL Server}是旧版ODBC驱动,可能和现代SQL Server的身份验证逻辑不兼容。换成新版驱动试试:

    connection_string = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=server;DATABASE=db;UID=username;PWD=password"
    connection_url = URL.create("mssql", query={"odbc_connect": connection_string})
    

    注意要先在本地安装对应版本的ODBC驱动(推荐17或18版)。

  • 核对服务器名称格式
    确认SERVER参数和SSMS里的一致:如果是命名实例,要写成server\instance_name;如果用端口连接,格式是server,port(默认端口1433)。直接复制SSMS中能成功登录的服务器名称即可。

  • 确认SQL Server身份验证模式
    检查SQL Server是否开启了混合身份验证模式(同时支持SQL Server和Windows身份验证)。如果只启用了Windows身份验证,SQL账户会无法登录。

  • 检查账户状态与权限

    • 确认该SQL账户没有被禁用或锁定(多次失败登录可能触发账户锁定)
    • 确保账户拥有目标数据库的登录权限
  • 尝试SQLAlchemy标准URL格式
    可以绕开ODBC连接字符串的写法,直接用SQLAlchemy的标准构造方式:

    connection_url = URL.create(
        "mssql+pyodbc",
        username="username",
        password="password",
        host="server",
        database="db",
        query={"driver": "ODBC Driver 17 for SQL Server"}
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:56:29