python用のdb接続モジュールであるsqlalchemyは、デフォルトで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自体によってスローされたエラーメッセージを識別します。このエラーは、資格情報が正しくないことを示しています。
SqlalchemyおよびmssqlでWindows認証を使用するには、次の接続文字列が必要です。
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')
私はあなたが置く必要があると思う:
mssqlの後の「+ pyodbc」
これを試して:
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://user:password@Host:port/databasename?driver=ODBC+Driver+17+for+SQL+Server")
cnxn = engine.connect()
わたしにはできる
幸運!