Log Shipping ohne Vertrauensstellung

Nicht immer ist es einfach möglich ein Log Shipping zwischen zwei Servern aufzusetzen. Hier wird kurz erläutert, wie dies auch ohne Vertrauensstellung möglich ist.

Es gibt zwar einen Artikel (KB31247) in der Knowledge-Base, der verschiedene Szenarien beschreibt, aber in meinem aktuellen Fall, konnte ich diese Ansätze leider nicht verwenden. Die Aufgabenstellung war die Erstellung eines Log Shippings zwischen zwei Servern, deren Domänen sich nicht vertrauten und wo einer der Server noch nicht mal einer Domäne angehörte.

Beschreibung des Szenarios

Im Log Shipping benötigt der Secondary Server mehr Rechte als der Primary Server, da er sich die Logs vom Primary Server holen muss. Der SQLServer-Dienst auf dem Secondary Server benötigt also Zugriffe auf das File-System des Primary Servers.

Im aktuellen Fall läuft auf dem Secondary Server der SQLServer-Agent unter einem Domänen-Konto, wie dies auch empfohlen wird. Dieses Domänen-Konto kann aber keine Rechte auf dem Primary Server erhalten, da es dort nicht bekannt gemacht werden kann. Eine Umstellung auf ein anderes Konto für den Secondary Server war auch nicht gewünscht.

Lösung

  • Man erstellt zuerst auf dem Primary Server ein Windows-Konto, welches READ und CHANGE-Rechte auf dem Verzeichnis hat, wo die Logsicherungen abgelegt werden.
  • Man meldet sich remote mit dem Domänen-Konto, unter dem der SQLServer-Agent läuft, auf dem Secondary Server an.
  • Dort speichert man die Verbindungsinformationen für den Primary Server wie folgt (Beschreibung mit englischen Menüpunkten, da in der Regel die Server mit englischem Betriebssystem installiert sind):
    • Man öffnet das Menü "Control Panel"
    • und dort "Stored User Names and Passwords".
    • Dort wählt man "Add",
    • dann gibt man den Servernamen des Primary Servers und das Konto in der Form Servername\Konto an. Dazu gehört jetzt natürlich das Kennwort.
    Hierdurch ermöglicht man allen Verbindungen von diesem Server und dem aktuellen Konto (SQLServer-Agent) auf den anderen Server mit dem dort angelegten Konto ohne Angabe weiterer Informationen zuzugreifen.
  • Der SQLServer-Agent Job verwendet diese Informationen für den Connect zum Primary Server