为了账号安全,请及时绑定邮箱和手机立即绑定

Python ODBC 使用服务帐户连接到 SQL Server

Python ODBC 使用服务帐户连接到 SQL Server

函数式编程 2023-09-26 14:52:36
只要我使用可信连接,我使用 SQL Alchemy 或 Pyodbc 连接到我的服务器就没有问题:pyodbc.connect("Driver={SQL Server};Server=myServer;Port=1433;Database=myDB;trusted_connection=yes")sqlalchemy.create_engine('mssql://myServer/myDB?trusted_connection=yes&driver=SQL+Server')但我需要使用基本 Windows 身份验证连接服务帐户。当我尝试像这样添加 UID/PWD 时:sqlalchemy.create_engine("mssql+pyodbc://myUserName:myPassWord@myServer?driver=SQL+Server?trusted_connection=no")pyodbc.connect('DRIVER={SQL Server};SERVER=myServre;DATABASE=myDB;UID=myUserName;PWD=myPassword')我收到错误“用户‘myUserName’登录失败。(18456) (SQLDriverConnect); [28000]”奖励尝试:sqlalchemy.create_engine("mssql+pyodbc://myUserName:myPassword@myDB?driver=SQL+Server?trusted_connection=no")返回“[Microsoft][ODBC Driver Manager] 数据源名称太长 (0) (SQLDriverConnect)”使用 SQL Server 2018。我已验证该服务帐户对我尝试连接的数据库具有所有正确的权限。FWIW,我还尝试使用我自己的 Windows 凭据而不是服务帐户的凭据进行连接(但使用 trust_connection=no),并且收到相同的错误消息。
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

收到错误“用户‘myUserName’登录失败。(18456) (SQLDriverConnect); [28000]”


所有 Microsoft ODBC 驱动程序都不支持使用提供的凭据来使用 Windows 集成身份验证(NTLM 或 Kerberos)。这个连接字符串


DRIVER={SQL Server};SERVER=myServre;DATABASE=myDB;UID=myUserName;PWD=myPassword

用于 SQL Auth,您有一个在 SQL Server 中创建的登录名和数据库用户。


例如:


use mydb

create login myUserName with password='myPassword'

create user myUserName for login myUserName

grant select to myUserName

要将此驱动程序与 Windows Auth 结合使用,您必须以目标用户身份运行程序、执行 Windows 级模拟、在 Windows 凭据存储中存储凭据,或使用runas /netonly.


查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信