ADODB.Connectionオブジェクトを介して、指定されたWindowsクレデンシャルのセットを使用してMS SQL Serverに接続するにはどうすればよいですか?
例:
Dim oConn
Set oConn = CreateObject("ADODB.Connection")
Dim oRs
Set oRs = CreateObject("ADODB.Recordset")
Dim strConnection
Dim strSQL
strSQL = "SELECT * from Computer WHERE DeviceName = N'myDevice'"
oConn.Provider = "SQLOLEDB.1"
oConn.Properties("User ID") = "myDomain\myUser"
oConn.Properties("Password") = "myPassword"
oConn.Properties("Initial Catalog") = "myDB"
oConn.Properties("Data Source") = "mySQLServer"
oConn.Open
私がそれを好きなら、それは以下のエラーで失敗します:
Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'myDomain\myUser'.
SQL Serverログを確認すると、次のエラーが表示されます。
Login failed for user 'myDomain\myUser'. Reason: Could not find a login matching the name provided. [CLIENT: <IP>]
アカウント「myDomain\myUser」は、サーバー上で「sysadmin」権限を持つグループのメンバーであるため、SQLServerにアクセスできます。同じユーザー名を使用してSQLServerにRDPを実行し、ManagementStudioを正常に開いてSQLServerを管理できます。
私が本質的に達成したいのは、アクセスを取得するためにActive Directoryを使用して認証する必要があるIISのWebページを介してこれを実行しているため、統合セキュリティを使用することです。認証部分が機能しておりRequest.ServerVariables("AUTH_USER")
、正しいユーザー名が表示されます。
「ユーザーID」と「パスワード」の部分をoConn.Properties("Integrated Security") = "SSPI"
次のように置き換えると、次のエラーが発生します。
Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
提供されたクレデンシャルではないものはどれですか?
どうすればこれを機能させることができますか?
前もって感謝します。