Zum imitieren einer anderen Windows-Anmeldung in einer ADODB-connection?
Wie kann ich über ein ADODB.Connection-Objekt die Verbindung zu einem MS SQL Server mit einem angegebenen Satz von Windows-Anmeldeinformationen?
Beispiel:
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
Wenn ich mag, dann schlägt es fehl mit der folgenden Fehlermeldung:
Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'myDomain\myUser'.
Überprüfung der SQL-Server-log zeigt diesen Fehler:
Login failed for user 'myDomain\myUser'. Reason: Could not find a login matching the name provided. [CLIENT: <IP>]
Dem Konto "myDomain\myUser" Zugriff auf den SQL-Server ist ein Mitglied einer Gruppe, die "sysadmin" - Rechte auf dem server. Kann ich RDP auf dem SQL Server mit dem gleichen Benutzernamen und erfolgreich Management Studio öffnen und verwalten der SQL-Server.
Was ich im Grunde erreichen möchte, ist die Verwendung der integrierten Sicherheit, wie ich bin, läuft dies über eine web-Seite, die auf IIS, wo Sie haben, um die Authentifizierung mit Active Directory-Zugriff zu erhalten. Die Authentifizierung Teil arbeitet, und Request.ServerVariables("AUTH_USER")
zeigen den korrekten Benutzernamen.
Wenn ich ersetzen Sie die "User ID" und "Password" - Teil mit oConn.Properties("Integrated Security") = "SSPI"
dann bekomme ich den folgenden Fehler:
Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Das ist nicht meine angegebenen Anmeldeinformationen?
Wie kann ich diese Arbeit machen?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein paar Dinge erwähnenswert. Wenn Sie versuchen, die Anmeldung mit einem windows-Domänenkonto, dann sind Sie wahrscheinlich versuchen, eine Vertrauenswürdige Verbindung. Sie müssen zum konfigurieren von IIS, um nicht Anonymen Zugriff zulassen, und aktivieren Sie Integrierte Windows-Authentifizierung (dies kann unterschiedlich sein, je nachdem, welche version von IIS, die Sie installiert haben und welches Betriebssystem).
Blick auf die folgenden Verbindungszeichenfolgen und sehen Sie, wenn Sie nicht helfen (diese können unterschiedlich sein, je nachdem welche db Sie verwenden-nur google für das entsprechende):
Verwendung der angemeldete Benutzer Anmeldeinformationen
Verwenden Sie einen SQL Server-Benutzernamen und-Passwort ein (nicht domain-name und Passwort)
Glück.
"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Fehler