只要使用可信连接,我就可以连接到服务器,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数据源名称太长(0) (SQLDriverConnect)”
使用Server 2018。
我已经验证了服务帐户对我试图连接的DB拥有所有正确的权限。FWIW,我还尝试使用自己的Windows凭据连接,而不是使用服务帐户(但使用trusted_connection=no),并获得相同的错误消息。
发布于 2020-09-30 21:08:12
获得错误“用户‘myUserName登录失败’。(18456) (SQLDriverConnect);28000”
没有任何Microsoft驱动程序支持使用Windows集成身份验证(NTLM或Kerberos)使用提供的凭据。此连接字符串
DRIVER={SQL Server};SERVER=myServre;DATABASE=myDB;UID=myUserName;PWD=myPassword用于SQL,其中有一个登录名和一个在Server中创建的数据库用户。
例:
use mydb
create login myUserName with password='myPassword'
create user myUserName for login myUserName
grant select to myUserName若要在此驱动程序中使用Windows,您必须以目标用户的身份运行您的程序,进行Windows级别的模拟,在Windows凭据存储中存储凭据,或使用runas /netonly。
https://stackoverflow.com/questions/64145625
复制相似问题