ウィンドウユーザーの詳細は、ログインしているSql Serverユーザーとは異なります。そのため、ユーザー名(Admin_JJack)とパスワードを使用してデータベースに接続するpyodbcを使用しようとしました。しかし、ウィンドウユーザー(ジャック)の接続ショーは失敗し、どこがうまくいかないのかわかりません。
私の接続文字列:
connection = pyodbc.connect(
"Driver={"SQL Driver"};"
"Server= "ServerName";"
"Database="DatabaseName";"
"UID="UserName";"
"PWD="Password";"
"Trusted_Connection=yes"
)
pyodbc.InterfaceError:( '28000'、 "[28000] [Microsoft] [SQL Server Native Client 11.0] [SQL Server] Login failed for user 'Jack'。(18456)(SQLDriverConnect);
SQLサーバー認証を使用してデータベースに接続する方法
「Trusted_Connection = yes」を使用すると、UIDキーとPWDキーの両方が無視され、Windowsアカウントが認証に使用されます。
Windows NTLMアカウントの代わりに認証にUIDおよびPWD値を使用する場合は、「Trusted_Connection = No」を使用するか、このオプションを接続文字列から削除する必要があります。
Trusted_Connection
ユーザーがKerberos [RFC4120]を使用するか、fIntSecurityフィールドで指定された別のプラットフォーム固有の認証を使用してユーザーアカウントを介して接続するかどうかを指定します(詳細については、[MS-TDS]セクション2.2.6.4を参照してください)。
有効な値は、「はい」、「1」、または同等の空の文字列、または「いいえ」です。値「No」が指定されていない場合、値「Yes」が使用されます。
値が「いいえ」の場合、データソースとの接続を確立するには、UIDキーとPWDキーを使用する必要があります。
DSNキーとUIDキーが接続文字列に含まれていない場合、またはUIDキーの値が空の文字列である場合、Trusted_Connectionキーの値は「はい」である必要があります。 Trusted_Connectionキーが接続文字列で指定されていない場合、値はDSNキーの設定の内容から取得する必要があります。 Trusted_ConnectionキーがDSNで指定されていない場合、または指定されたDSNが存在しない場合、デフォルト値は「いいえ」です。
Trusted_Connectionキーの値が「はい」の場合、UIDキーとPWDキーの両方が無視されます。それ以外の場合は、UIDキーを指定する必要があります。
Microsoftの実装では、このユーザーアカウントはWindowsユーザーアカウントであり、Trusted_Connectionキーの値が「はい」の場合はNTLM認証[MSDN-NTLM]が使用されます。