Nicht vbscript verwenden, um eine Verbindung zu sql server auf unterschiedlichen Domänen
Ich bin mit vbscript versuchen, die Verbindung zu einem sql server auf eine andere domain. Der server Teil eines Clusters ist und SQL Server Data Center Edition (64bit). Ich kann ping den server von meinem Rechner. Ich bin mit der IP-Adresse eine Verbindung, die funktioniert gut auf SSMS.
Der vbscript-code, den ich verwende, ist:
Set cn = CreateObject("ADODB.Connection")
cn.Open "DRIVER={SQL Server};Server=123.456.345.567\instance;Database=MyDB;User
ID=domain\myuserid;Password=mypass;"
strCommandText = "Select * from mytable"
cn.Execute strCommandText
Wenn ich diesen starte, bekomme ich die folgende Fehlermeldung:
Microsoft OLE DB-Provider für
ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Fehler bei der Anmeldung für den Benutzer 'domain\myuserid'.
Kann ich auch nicht mit meiner test-Maschine der Domäne und ich kann nicht die sql-Authentifizierung verwenden, wie es ist, Behinderte auf dem sql-server.
Was muss ich tun, um diese zu arbeiten?
InformationsquelleAutor bearaman | 2012-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Betrachten Sie die Abfrage-Zeichenfolge, die ich sehe, Sie sind unter Angabe von Benutzername und Passwort, und das bedeutet, dass Sie die Bereitstellung von SQL-Anmeldeinformationen für die Authentifizierung. Aber in Ihrer Frage geben Sie die SQL-Authentifizierung deaktiviert ist, in der SQL server.
Das ist der Grund, warum Sie Ihre SQL server ist nicht lassen Sie Sie in. Sie sind die Bereitstellung von SQL-Anmeldeinformationen für die Authentifizierung, wenn der server nicht erwartet.
Wenn die SQL-Authentifizierung deaktiviert ist, dann ist es sehr wahrscheinlich, dass dein server nicht in die Authentifizierung im Gemischten Modus, so dass ziemlich viel bedeutet, dass der SQL server mithilfe der Windows-Authentifizierung für Anmeldungen. Diese Konfiguration ist außerhalb Ihrer Kontrolle, ist es dem DBA, die diese Wahl gemacht hat.
Daher, wenn der SQL-server Sie eine Verbindung herstellen mit Windows-Authentifizierung-Modus, Ihre Abfrage-string soll sein:
cn.Open "DRIVER={SQL Server};Server=123.456.345.567\instance;Database=MyDB;Trusted_Connection=yes;"
Aber hier kommt der schwierige Teil... wenn Sie Ihren VBScript aus dem test-Maschine, ist Teil der [DOMAIN_A], es wird mit unter [DOMAIN_A] windows-Anmeldeinformationen. Jedoch Ihre SQL server erwartet die windows-Anmeldeinformationen der Domäne beigetreten ist. Nennen wir es [domain_b einen Domänencontroller gefunden].
Es sei denn, Sie AD-admins erstellt haben, Vertrauen Beziehung zwischen [DOMAIN_A] und [domain_b einen Domänencontroller gefunden] dein login-versuche werden immer noch nicht, obwohl jetzt die richtige query-string.
Wie lösen Sie diese cross-domain-Problem, wenn Sie cant join Ihre test-Maschine [domain_b einen Domänencontroller gefunden]? Einfach. Verwenden Sie die "Runas" - Befehl.
Auf Ihrem test-Maschine verbunden [DOMAIN_A], öffnen Sie eine Eingabeaufforderung und führen Sie aus:
Werden Sie aufgefordert, das Kennwort einzugeben. Geben Sie die "mypass" Passwort, die Sie ursprünglich hatte, in Ihre Abfrage-string. "meine_benutzer-id" ist auch der Benutzername, der in der ursprünglichen query-string.
Danach werden Sie ein neues Fenster der Eingabeaufforderung, aber wenn Sie bemerken, in seinem Titel, es läuft jetzt unter " [domain_b einen Domänencontroller gefunden] - Anmeldeinformationen.
Trotz immer noch auf Ihren test-Maschine verbunden [DOMAIN_A], alles, was Sie ausführen auf diese neue Eingabeaufforderung, wird es tun unter " [domain_b einen Domänencontroller gefunden] - Anmeldeinformationen. Was genau Ihr SQL-server erwartet.
Deshalb an dieser Stelle nur übrig bleibt, die zum ausführen von VBScript auf diese neuen Eingabeaufforderung-Fenster. Das sollte die entsprechenden Anmeldeinformationen für SQL-server.
Lassen Sie uns wissen, wenn das Problem gelöst.
InformationsquelleAutor donhector
Meines Wissens nach, gibt es nicht eine option zu verbinden, ohne der Domäne oder SQL-Authentifizierung verwenden. Sie könnte Glück haben, eine Verbindung zu einem VPN, in dem Sie praktisch zu einer Domäne beitreten.
Das ist, was SQL-Server-Authentifizierung (auch bekannt als "Mixed mode") ist für. Gibt es keine Möglichkeit, zu überzeugen, DBA, geben Sie nur eingeschränkten Zugriff mit SQL Server-Authentifizierung?
InformationsquelleAutor coge.soft
Ändern Sie die Verbindungszeichenfolge, speziell Treiber-Anbieter:
Geben versuchen, diese
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;
Hier sind conenction string-Beispiele:
http://www.connectionstrings.com/sql-server-2005#sql-server-native-client-10-0-oledb-provider
InformationsquelleAutor Farfarak