2014-06-06 149 views
12

sqlalchemy是Python的數據庫連接模塊,默認情況下使用SQL身份驗證(數據庫定義的用戶帳戶)。如果您想使用Windows(域或本地)憑據對SQL Server進行身份驗證,則必須更改連接字符串。如何使用Windows身份驗證通過sqlalchemy連接到SQL Server?

默認情況下,由SQLAlchemy的定義,在連接字符串來連接到SQL Server如下:

sqlalchemy.create_engine('mssql://*username*:*password*@*server_name*/*database_name*') 

此,如果使用Windows憑據時,會拋出類似這樣的錯誤:

sqlalchemy.exc.DBAPIError: (Error) ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for us 
er '***S\\username'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for us 
er '***S\\username'. (18456)") None None 

在此錯誤消息中,代碼18456標識由SQL Server本身拋出的錯誤消息。此錯誤表示憑據不正確。

回答

15

爲了使用Windows身份驗證與SQLAlchemy的和MSSQL,需要下面的連接字符串:

OBDC驅動程序:

engine = sqlalchemy.create_engine('mssql://*server_name*/*database_name*?trusted_connection=yes') 

SQL Express實例:

engine = sqlalchemy.create_engine('mssql://*server_name*\\SQLEXPRESS/*database_name*?trusted_connection=yes') 
+1

如果我們從機器運行腳本,上述連接字符串可能會很有用我們使用Windows憑據登錄。如果我需要從其他主機運行腳本,該怎麼辦? –

相關問題