Implementieren der SQL Server-Agent-Sicherheit

Mit dem SQL Server-Agent kann der Datenbankadministrator jeden Auftragsschritt in einem Sicherheitskontext ausführen, dem lediglich die Berechtigungen erteilt wurden, die zum Durchführen dieses Auftragsschritts erforderlich sind, wie von einem SQL Server-Agent-Proxy festgelegt. Um Berechtigungen für einen bestimmten Auftragsschritt festzulegen, erstellen Sie einen Proxy mit den erforderlichen Berechtigungen und weisen dann diesen Proxy dem Auftragsschritt zu. Ein Proxy kann für mehrere Auftragsschritte angegeben werden. Für Auftragsschritte, für die dieselben Berechtigungen erforderlich sind, verwenden Sie denselben Proxy.

HinweisHinweis

Nach dem Aktualisieren von SQL Server 2000 werden alle Benutzerproxykonten, die vor dem Aktualisieren vorhanden waren, in das temporäre, globale Proxykonto UpgradedProxyAccount geändert.Das Konto UpgradedProxyAccount hat nur Zugriff auf diejenigen Subsysteme, die explizit verwendet wurden, nicht aber auf alle Subsysteme nach dem Aktualisieren.

Im folgenden Abschnitt wird erläutert, welche Datenbankrolle Sie Benutzern erteilen müssen, damit sie Aufträge mithilfe des SQL Server-Agents erstellen oder ausführen können.

Erteilen des Zugriffs auf den SQL Server-Agent

Um den SQL Server-Agent zu verwenden, müssen die Benutzer Mitglied mindestens einer der folgenden festen Datenbankrollen sein:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Diese Rollen werden in der msdb-Datenbank gespeichert. Standardmäßig ist kein Benutzer Mitglied dieser Datenbankrollen. Die Mitgliedschaft in diesen Rollen muss explizit erteilt werden. Benutzer, die Mitglieder der festen Serverrolle sysadmin sind, haben vollen Zugriff auf den SQL Server-Agent und müssen nicht Mitglied dieser festen Datenbankrollen sein, um den SQL Server-Agent verwenden zu können. Wenn ein Benutzer nicht Mitglied einer dieser Datenbankrollen oder der sysadmin-Rolle ist, steht ihm der SQL Server-Agent-Knoten nicht zur Verfügung, wenn er mithilfe von SQL Server Management Studio eine Verbindung mit SQL Server herstellt.

Die Mitglieder dieser Datenbankrollen können Aufträge anzeigen und ausführen, deren Besitzer sie sind, und Auftragsschritte erstellen, die als bereits vorhandenes Proxykonto ausgeführt werden. Weitere Informationen zu den speziellen, mit jeder dieser Rollen verbundenen Berechtigungen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.

Die Mitglieder der festen Serverrolle sysadmin haben die Berechtigung zum Erstellen, Ändern und Löschen von Proxykonten. Die Mitglieder der sysadmin-Rolle haben die Berechtigung zum Erstellen von Auftragsschritten, die keinen Proxy angeben, sondern stattdessen als das SQL Server-Agent-Dienstkonto ausgeführt werden, bei dem es sich um das Konto handelt, das zum Starten des SQL Server-Agents verwendet wird.

Richtlinien

Befolgen Sie diese Richtlinien, um die Sicherheit Ihrer SQL Server-Agent-Implementierung zu verbessern:

  • Erstellen Sie dedizierte Benutzerkonten speziell für Proxys, und verwenden Sie diese Proxybenutzerkonten nur zum Ausführen von Auftragsschritten.

  • Erteilen Sie die erforderlichen Berechtigungen lediglich den Proxybenutzerkonten. Erteilen Sie lediglich die Berechtigungen, die zum Ausführen der Auftragsschritte erforderlich sind, die einem bestimmten Proxykonto zugewiesen sind.

  • Führen Sie den SQL Server-Agent-Dienst nicht unter einem Microsoft Windows-Konto aus, das Mitglied der Windows-Administratoren-Gruppe ist.