Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Problem mit dem Auftragskonto des SQL Server-Agenten

Normalerweise würde ich die SQL Server Agent-Jobs unter demselben Konto ausführen, unter dem Ihre App auf die Datenbank zugreift.

Wenn dieses Konto in seinen Berechtigungen zu eingeschränkt ist (was eine gute Sache sein könnte!), würde ich ein einzelnes Konto für diese App und alle ihre SQL-Jobs erstellen (wenn das möglich ist) und alle SQL-Jobs unter diesem Konto ausführen.

Sie könnten möglicherweise jeden Schritt unter einem anderen Konto ausführen, aber ich würde das im Allgemeinen nicht verwenden (es macht es nur wirklich schwierig zu wissen und zu verstehen, was unter welchem ​​Konto ausgeführt wird). Verwenden Sie es nur, wenn Sie einen besonders sensiblen Schritt ausführen müssen, der eine Reihe zusätzlicher Berechtigungen erfordert und diese Berechtigungen nur für ein bestimmtes Systemkonto oder so etwas verfügbar sind.

Das Konto, unter dem der Windows-Dienst des SQL Server-Agents ausgeführt wird, hat wirklich keinen Einfluss darauf, unter was Ihre Auftragsschritte ausgeführt werden.

Es läuft also auf wirklich nur zwei Konten hinaus:

  • Ein Konto wird benötigt, um den SQL Server Agent Windows-Dienst auszuführen – dies ist ein Windows-Konto auf Ihrem Computer / Server, das über ausreichende Berechtigungen verfügen muss, um den Dienst auszuführen, zu starten und zu stoppen – verwenden Sie entweder LocalSystem, Network Service oder ein anderes Windows Konto, mit dem Sie Dienste ausführen müssen

  • Das andere Konto wäre das Konto, unter dem Ihre SQL Server Agent-Schritte ausgeführt werden – das ist normalerweise ein SQL Server-Konto (das auf einem Windows-Konto basieren könnte) und es benötigt genügend Berechtigungen innerhalb von SQL Server, um seine Arbeit zu erledigen, z. es benötigt Zugriff auf die Datenbankobjekte und alles. Ich würde mich bemühen, nur ein Konto zu haben für jede Anwendung, die die SQL Server-Jobs ausführt - macht das Leben viel einfacher!

Markus

PS:Um den Benutzer so einzustellen, dass er einen Schritt ausführt, müssen Sie die Seite „Erweitert“ im Eigenschaftsdialog des Jobschritts verwenden und den Benutzer aus einem Popup-Fenster auswählen: