sqlalchemy 是 Python 的数据库连接模块,默认使用 SQL 身份验证(数据库定义的用户帐户)。如果要使用 Windows(域或本地)凭据对 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 本身抛出的错误消息。此错误表示凭据不正确。
原文由 vbiqvitovs 发布,翻译遵循 CC BY-SA 4.0 许可协议
为了将 Windows 身份验证与 sqlalchemy 和 mssql 一起使用,需要以下连接字符串:
ODBC 驱动程序:
SQL Express 实例: