Frage

Ich muss einige Ad-hoc-Abfragen auf mehreren hundert Servern ausführen, die nicht Teil einer Domäne sind. Jeder Server verfügt über ein SQL-Benutzerkonto mit niedrigem privilegiertem SQL, das nur schreibgeschützte Zugriff auf einige interessierende Tabellen hat.

Meine Idee war es, die Namen dieser Server in einer Tabelle zu speichern und diese Tabelle zu verwenden, um einen OpenDataSource- oder OpenRowset -Befehl zu treiben.

Die Server befinden sich entweder in verschiedenen Domänen, nicht vertrauenswürdigen Domänen, Arbeitsgruppen usw. Ein großes Durcheinander.

Ich kann nicht für das Leben von mir ein Beispiel dafür finden, wie diese Befehle so konfiguriert werden, dass eine SQL Server -Konto/Kennwort -Kombination verwendet wird.

Hinweis: Dies geschieht in einem Sandkasten, es ist nicht für die reale Welt gedacht. Es ist einfach ein Beweis für das Konzept, daher ist Sicherheit kein Hauptanliegen. Diese Server werden durch einen Prozess ausgestattet, der ein reales Wachstum eines Netzwerks simuliert.

Für die Aufzeichnung konnte ich OpenRowset zum Laufen bringen:

SELECT *
FROM OPENROWSET('SQLNCLI',
   'DRIVER={SQL Server};SERVER=MyServer;UID=MyUserID;PWD=MyCleverPassword',
   'select @@ServerName')         
War es hilfreich?

Lösung

Um es mit einer SQL -Anmeldung auszuführen, müssen Sie nur Benutzer -ID und Kennwort in der Verbindungszeichenfolge angeben (aufgerufen "Init String" in Bol)

SELECT
    * FROM
OPENDATASOURCE (
   'SQLNCLI', -- or SQLNCLI
   'Data Source=OtherServer\InstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top