2014-06-06 13 views
12

sqlalchemy, mô-đun kết nối db cho Python, sử dụng Xác thực SQL (tài khoản người dùng do cơ sở dữ liệu xác định) theo mặc định. Nếu bạn muốn sử dụng thông tin đăng nhập Windows (tên miền hoặc cục bộ) của bạn để xác thực với SQL Server, chuỗi kết nối phải được thay đổi.Làm cách nào để kết nối với SQL Server qua sqlalchemy bằng Xác thực Windows?

Theo mặc định, theo quy định của SQLAlchemy, chuỗi kết nối để kết nối với SQL Server là như sau:

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

này, nếu được sử dụng bằng các thông tin Windows của bạn, sẽ ném ra một lỗi tương tự như sau:

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 

Trong thông báo lỗi này, mã 18456 xác định thông báo lỗi được gửi bởi chính Máy chủ SQL. Lỗi này biểu thị rằng thông tin đăng nhập không chính xác.

Trả lời

15

Để sử dụng Windows Authentication với SQLAlchemy và MSSQL, chuỗi kết nối sau là bắt buộc:

OBDC Driver:

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

SQL Express Instance:

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

Các chuỗi kết nối ở trên có thể hữu ích nếu chúng ta đang chạy tập lệnh từ máy chúng tôi đã đăng nhập bằng thông tin đăng nhập Windows. nếu tôi cần chạy tập lệnh từ một số máy chủ khác thì sao? –

Các vấn đề liên quan