函數(shù)式編程
2023-09-26 14:52:36
只要我使用可信連接,我使用 SQL Alchemy 或 Pyodbc 連接到我的服務(wù)器就沒有問題: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 身份驗證連接服務(wù)帳戶。當我嘗試像這樣添加 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] 數(shù)據(jù)源名稱太長 (0) (SQLDriverConnect)”使用 SQL Server 2018。我已驗證該服務(wù)帳戶對我嘗試連接的數(shù)據(jù)庫具有所有正確的權(quán)限。FWIW,我還嘗試使用我自己的 Windows 憑據(jù)而不是服務(wù)帳戶的憑據(jù)進行連接(但使用 trust_connection=no),并且收到相同的錯誤消息。
1 回答

翻翻過去那場雪
TA貢獻2065條經(jīng)驗 獲得超14個贊
收到錯誤“用戶‘myUserName’登錄失敗。(18456) (SQLDriverConnect); [28000]”
所有 Microsoft ODBC 驅(qū)動程序都不支持使用提供的憑據(jù)來使用 Windows 集成身份驗證(NTLM 或 Kerberos)。這個連接字符串
DRIVER={SQL Server};SERVER=myServre;DATABASE=myDB;UID=myUserName;PWD=myPassword
用于 SQL Auth,您有一個在 SQL Server 中創(chuàng)建的登錄名和數(shù)據(jù)庫用戶。
例如:
use mydb
create login myUserName with password='myPassword'
create user myUserName for login myUserName
grant select to myUserName
要將此驅(qū)動程序與 Windows Auth 結(jié)合使用,您必須以目標用戶身份運行程序、執(zhí)行 Windows 級模擬、在 Windows 憑據(jù)存儲中存儲憑據(jù),或使用runas /netonly.
添加回答
舉報
0/150
提交
取消