Verwalten von Servern mit der richtlinienbasierten Verwaltung

Die richtlinienbasierte Verwaltung ist ein System zum Verwalten einer oder mehrerer Instanzen von SQL Server 2008. Wenn SQL Server-Richtlinienadministratoren die richtlinienbasierte Verwaltung einsetzen, verwenden sie SQL Server Management Studio zum Erstellen von Richtlinien, mit denen Entitäten auf dem Server verwaltet werden, beispielsweise die SQL Server-Instanz, Datenbanken oder andere SQL Server-Objekte.

Die richtlinienbasierte Verwaltung besteht aus drei Komponenten:

  • Richtlinienverwaltung

    Richtlinienadministratoren erstellen Richtlinien.

  • Explizite Verwaltung

    Administratoren wählen ein oder mehrere verwaltete Ziele aus. Für diese Ziele überprüfen sie explizit, ob sie eine bestimmte Richtlinie einhalten oder veranlassen explizit, dass die Ziele eine Richtlinie einhalten.

  • Auswertungsmodi

    Es gibt vier Auswertungsmodi. Drei dieser Modi können automatisiert werden:

    • Bedarfsgesteuert. Dieser Modus wertet die Richtlinie aus, wenn sie vom Benutzer direkt angegeben wird.

    • Bei Änderung - Verhindern. Dieser automatisierte Modus verwendet DDL-Trigger, um Richtlinienverstöße zu verhindern.

      Wichtiger HinweisWichtig

      Wenn die Serverkonfigurationsoption nested triggers deaktiviert ist, funktioniert Bei Änderung: Verhindern nicht ordnungsgemäß. Die richtlinienbasierte Verwaltung basiert auf DDL-Triggern, um DDL-Vorgänge zu erkennen und dafür ein Rollback auszuführen, falls diese Vorgänge nicht mit Richtlinien übereinstimmen, die diesen Auswertungsmodus verwenden. Das Entfernen der DDL-Trigger für die richtlinienbasierte Verwaltung oder das Deaktivieren geschachtelter Trigger bewirkt das Fehlschlagen oder ein unerwartetes Ausführungsverhalten dieses Auswertungsmodus.

    • Bei Änderung: Nur protokollieren. Dieser automatisierte Modus verwendet die Ereignisbenachrichtigung, um eine Richtlinie auszuwerten, wenn eine relevante Änderung vorgenommen wurde.

    • Nach Zeitplan. Dieser automatisierte Modus verwendet einen SQL Server-Agentauftrag, um eine Richtlinie in regelmäßigen Abständen auszuwerten.

    Wenn keine automatisierten Richtlinien aktiviert sind, hat die richtlinienbasierte Verwaltung keine Auswirkungen auf die Systemleistung.

    HinweisHinweis

    Wenn vom System der Objektsatz für eine Richtlinie berechnet wird, werden die Systemobjekte standardmäßig ausgeschlossen. Wenn beispielsweise der Objektsatz der Richtlinie auf alle Tabellen verweist, wird die Richtlinie nicht auf Systemtabellen angewendet. Wenn Benutzer eine Richtlinie anhand von Systemobjekten auswerten möchten, können sie Systemobjekte dem Objektsatz explizit hinzufügen. Zwar werden für den Auswertungsmodus Zeitplan prüfen alle Richtlinien unterstützt, doch werden aus Leistungsgründen für den Auswertungsmodus Änderungen prüfen nicht alle Richtlinien mit frei wählbaren Objektsätzen unterstützt. Weitere Informationen finden Sie unter https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

Begriffe und Konzepte der richtlinienbasierten Verwaltung

  • Verwaltetes Ziel der richtlinienbasierten Verwaltung
    Entitäten, die durch die richtlinienbasierte Verwaltung verwaltet werden, beispielsweise eine SQL Server Database Engine (Datenbankmodul)-Instanz, eine Datenbank, eine Tabelle oder ein Index. Alle Ziele in einer Serverinstanz bilden eine Zielhierarchie. Ein Zielsatz ist der Satz der Ziele, der sich aus der Anwendung eines Satzes von Zielfiltern auf die Zielhierarchie ergibt, z. B. alle Tabellen in der Datenbank, die im Besitz des HumanResources-Schemas sind.

  • Facet der richtlinienbasierten Verwaltung
    Ein Satz logischer Eigenschaften, die das Verhalten oder die Eigenschaften bestimmter Typen von verwalteten Zielen modellieren. Die Anzahl und die Merkmale der Eigenschaften sind in das Facet integriert und können nur durch den Ersteller des Facets hinzugefügt oder entfernt werden. Ein Zieltyp kann ein oder mehrere Verwaltungsfacets implementieren, und ein Verwaltungsfacet kann von einem oder mehreren Zieltypen implementiert werden. Bestimmte Eigenschaften eines Facets können nur für eine bestimmte Version gelten. So gilt beispielsweise die Datenbank-E-Mail-Eigenschaft des Oberflächenkonfigurations-Facets nur für SQL Server 2005 und höhere Versionen.

  • Bedingung der richtlinienbasierten Verwaltung
    Ein boolescher Ausdruck, der einen Satz zulässiger Zustände eines durch die richtlinienbasierte Verwaltung verwalteten Ziels für ein Verwaltungsfacet angibt.

  • Richtlinie der richtlinienbasierten Verwaltung
    Eine Bedingung der richtlinienbasierten Verwaltung und das erwartete Verhalten, wie z. B. Auswertungsmodus, Zielfilter und Zeitplan. Eine Richtlinie kann nur eine einzige Bedingung enthalten. Richtlinien können aktiviert oder deaktiviert sein.

  • Kategorie der richtlinienbasierten Verwaltung
    Eine benutzerdefinierte Kategorie, die das Verwalten von Richtlinien unterstützt. Benutzer können Richtlinien in verschiedene Richtlinienkategorien klassifizieren. Eine Richtlinie gehört immer nur zu einer Richtlinienkategorie. Richtlinienkategorien gelten für Datenbanken und Server. Auf der Datenbankebene gelten folgende Bedingungen:

    • Datenbankbesitzer können einen Satz von Richtlinienkategorien für eine Datenbank abonnieren.

    • Nur Richtlinien aus Kategorien, die eine Datenbank abonniert hat, können diese Datenbank steuern.

    • Alle Datenbanken abonnieren implizit die Standardrichtlinienkategorie.

    Auf Serverebene können Richtlinienkategorien auf alle Datenbanken angewendet werden.

  • Effektive Richtlinie
    Die effektiven Richtlinien für ein Ziel sind die Richtlinien, die dieses Ziel steuern. Eine Richtlinie ist nur dann für ein Ziel effektiv, wenn alle folgenden Bedingungen erfüllt werden:

    • Die Richtlinie ist aktiviert.

    • Das Ziel gehört zum Zielsatz der Richtlinie.

    • Für das Ziel oder eines der übergeordneten Elemente des Ziels ist die Richtliniengruppe abonniert, die diese Richtlinie enthält.

Beispiele für Probleme, die mit der richtlinienbasierten Verwaltung gelöst werden

Die richtlinienbasierte Verwaltung ist hilfreich zur Lösung der Probleme, die in den folgenden Szenarien präsentiert werden:

  • Eine Unternehmensrichtlinie verhindert das Aktivieren von Datenbank-E-Mail oder SQL Mail. Eine Richtlinie wird erstellt, um den Serverstatus dieser zwei Funktionen zu überprüfen. Ein Administrator vergleicht den Serverstatus mit der Richtlinie. Wenn der Serverstatus die Bedingungen der Richtlinie nicht einhält, wählt der Administrator den Konfigurationsmodus, und die Richtlinie ändert den Serverstatus so, dass er den Bedingungen der Richtlinie entspricht.

  • Für die Datenbank AdventureWorks2008R2 gilt eine Benennungskonvention, die vorschreibt, dass alle gespeicherten Prozeduren mit den Buchstaben AW_ beginnen. Eine Richtlinie wird erstellt, mit der diese Richtlinie erzwungen werden soll. Ein Administrator testet diese Richtlinie und erhält eine Liste gespeicherter Prozeduren, die diese Richtlinie nicht einhalten. Wenn zukünftig gespeicherte Prozeduren diese Benennungskonvention nicht einhalten, erzeugt die Erstellungsanweisung für die gespeicherte Prozedur einen Fehler.

Zulässige Auswertungsmodi

Die für eine Richtlinie geltenden Ausführungsmodi werden durch die Merkmale des Facets der richtlinienbasierten Verwaltung bestimmt, das von der Richtlinie verwendet wird. Alle Facets unterstützen Bedarfsgesteuert und Nach Zeitplan. Die Facets unterstützen Bei Änderung: Nur protokollieren, wenn die Änderung des Facet-Status durch bestimmte Ereignisse erfasst werden kann. Die Facets unterstützen Bei Änderung: Verhindern, wenn eine Transaktionsunterstützung für die DDL-Anweisungen besteht, die den Facet-Status ändern. Mit einem dieser drei Ausführungsmodi automatisierte Richtlinien können aktiviert und deaktiviert werden.

In SQL Server Management Studio werden im Dialogfeld Richtlinien auswerten zwei Optionen für das Ausführen einer Richtlinie bereitgestellt:

  • Auswerten
    Diese Option wertet Richtlinien für die ausgewählten Ziele aus.

  • Anwenden
    Diese Option ermöglicht es Ihnen, Änderungen auf anwendbare Ziele anzuwenden, die gegen Richtlinien verstoßen. Einige Ziele können durch die richtlinienbasierte Verwaltung nicht neu konfiguriert werden. Wenn Sie beispielsweise auswerten, ob Sicherungs- und Datendateien auf separaten Medien vorhanden sind, kann die richtlinienbasierte Verwaltung die Verstöße gegen diese Bedingung erkennen. Über die richtlinienbasierte Verwaltung können jedoch keine Änderungen angewendet werden, um die Einhaltung von Richtlinien zu erzwingen.

Richtlinienverwaltung

Richtlinien werden mit Management Studio erstellt und verwaltet. Der Vorgang umfasst folgende Schritte:

  1. Wählen Sie ein Facet der richtlinienbasierten Verwaltung aus, das die zu konfigurierenden Eigenschaften enthält.

  2. Definieren Sie eine Bedingung, die den Status eines Verwaltungsfacets angibt.

  3. Definieren Sie eine Richtlinie, die die Bedingung, zusätzliche Bedingungen zum Filtern der Zielsätze und den Auswertungsmodus enthält.

  4. Überprüfen Sie, ob eine Instanz von SQL Server in Übereinstimmung mit der Richtlinie ist.

Für Fehler bei Richtlinien wird im Objekt-Explorer eine kritische Zustandswarnung in Form eines roten Symbols neben dem Ziel und den übergeordneten Knoten in der Strukturansicht des Objekt-Explorers angezeigt.

Speichern der Richtlinien

Richtlinien werden in der msdb-Datenbank gespeichert. Nachdem eine Richtlinie oder Bedingung geändert wurde, sollte die msdb-Datenbank gesichert werden. Weitere Informationen finden Sie unter Überlegungen zum Sichern der model- und msdb-Datenbanken.

SQL Server 2008 enthält Richtlinien, die verwendet werden können, um eine Instanz von SQL Server zu überwachen. Diese Richtlinien sind standardmäßig nicht in Database Engine (Datenbankmodul) installiert, aber sie können aus ihrem Standardinstallationspfad C:\Programme\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1031 importiert werden. Weitere Informationen finden Sie unter Vorgehensweise: Exportieren und Importieren einer richtlinienbasierten Verwaltungsrichtlinie.

Sie können Richtlinien über das Menü Datei/Neu direkt erstellen und diese dann in eine Datei speichern. Auf diese Weise können Sie Richtlinien erstellen, wenn Sie nicht mit einer Instanz von Database Engine (Datenbankmodul) verbunden sind.

Der Richtlinienverlauf für Richtlinien, die in der aktuellen Instanz von Database Engine (Datenbankmodul) ausgewertet werden, wird in msdb-Systemtabellen verwaltet. Der Richtlinienverlauf für Richtlinien, die auf andere Instanzen von Database Engine (Datenbankmodul) oder auf Reporting Services oder Analysis Services angewendet werden, bleibt nicht erhalten. Weitere Informationen finden Sie unter Problembehandlung bei richtlinienbasierten Verwaltungsrichtlinien.

Konfigurieren von Warnungen zur Benachrichtigung von Richtlinienadministratoren bei Richtlinienfehlern

Wenn Richtlinien der richtlinienbasierten Verwaltung in einem der drei automatisierten Auswertungsmodi ausgeführt werden, wird bei einem Richtlinienverstoß eine Meldung im Ereignisprotokoll aufgezeichnet. Wenn Sie bei Aufzeichnung einer solchen Meldung im Ereignisprotokoll benachrichtigt werden möchten, können Sie eine Warnung erstellen, die die Meldung erkennt und eine Aktion ausführt. Die Warnung sollte die Meldungen wie in der folgenden Tabelle gezeigt erkennen.

Ausführungsmodus

Meldungsnummer

Bei Änderung - Verhindern

(wenn automatisch)

34050

Bei Änderung - Verhindern

(wenn bedarfsgesteuert)

34051

Nach Zeitplan

34052

Bei Änderung

34053

Wie Sie eine Warnung einrichten können, um auf Fehlermeldungen der richtlinienbasierten Verwaltung zu reagieren, wird in den folgenden Themen erläutert:

Weitere Überlegungen zu Warnungen

Beachten Sie die folgenden weiteren Überlegungen zu Warnungen:

  • Warnungen werden nur für Richtlinien ausgelöst, die aktiviert sind. Da bedarfsgesteuerte Richtlinien nicht aktiviert werden können, werden Warnungen nicht für Richtlinien ausgelöst, die bedarfsgesteuert ausgeführt werden.

  • Wenn die Aktion, die Sie ausführen möchten, das Senden einer E-Mail umfasst, müssen Sie ein E-Mail-Konto konfigurieren. Es empfiehlt sich die Verwendung von Datenbank-E-Mail. Weitere Informationen zum Einrichten von Datenbank-E-Mail finden Sie unter Vorgehensweise: Erstellen von Konten für Datenbank-E-Mail (Transact-SQL).

  • Sicherheit der Warnungen:

    Bei Bedarf ausgewertete Richtlinien werden im Sicherheitskontext des Benutzers ausgeführt. Um in das Fehlerprotokoll schreiben zu können, muss der Benutzer über die ALTER TRACE-Berechtigung verfügen oder Mitglied der festen Serverrolle sysadmin sein. Bei Auswertung einer Richtlinie durch einen Benutzer mit niedrigeren Berechtigungen werden eventuell erkannte Fehler nicht in das Ereignisprotokoll geschrieben und lösen keine Warnung aus.

    Die automatisierten Ausführungsmodi werden als Mitglied der Rolle sysadmin ausgeführt. Dies ermöglicht es, dass eventuell erkannte Fehler für die Richtlinie in das Fehlerprotokoll geschrieben werden und eine Warnung auslösen.

Sicherheit

Administratoren der richtlinienbasierten Verwaltung müssen Mitglied der Rolle PolicyAdministratorRole in der msdb-Datenbank sein. Diese Rolle ermöglicht die vollständige Kontrolle über alle Richtlinien im System. Diese Kontrolle umfasst das Erstellen und Bearbeiten von Richtlinien und Bedingungen sowie das Aktivieren und Deaktivieren von Richtlinien.

SicherheitshinweisSicherheitshinweis

Mögliche Erweiterung der Anmeldeinformationen: Benutzer mit der Rolle PolicyAdministratorRole können Servertrigger erstellen und die Ausführung von Richtlinien planen. Dies kann sich auf das Verhalten der Database Engine (Datenbankmodul)-Instanz auswirken. Ein Benutzer mit der Rolle PolicyAdministratorRole kann beispielsweise eine Richtlinie erstellen, durch die das Erstellen der meisten Objekte in Database Engine (Datenbankmodul) verhindert wird. Aufgrund dieser möglichen Erweiterung der Anmeldeinformationen sollte die Rolle PolicyAdministratorRole nur Benutzern gewährt werden, die hinsichtlich der Kontrolle der Konfiguration von Database Engine (Datenbankmodul) vertrauenswürdig sind.

Es gelten die folgenden Sicherheitsgrundsätze:

  • Ein Systemadministrator oder ein Datenbankbesitzer kann eine Richtlinie oder eine Richtliniengruppe für eine Datenbank abonnieren.

  • Mitglieder der Rolle PolicyAdministratorRole können Richtlinien aktivieren oder deaktivieren.

  • Mitglieder der Rolle PolicyAdministratorRole können Richtlinien erstellen, für die sie nicht über die Berechtigung zur Ad-hoc-Ausführung verfügen. Diese Richtlinien können jedoch erfolgreich durch andere Benutzer ausgeführt werden, die über ausreichende Berechtigungen verfügen.

    SicherheitshinweisSicherheitshinweis

    Mögliche Erweiterung der Anmeldeinformationen: Benutzer mit der Rolle PolicyAdministratorRole können Richtlinien mit einer Bedingung erstellen, von der die Funktion ExecuteSql oder die Funktion ExecuteWql verwendet wird. Wenn ein Benutzer mit sysadmin-Berechtigungen die Richtlinie später ausführt, wird das Transact-SQL, das vom Richtlinienadministrator bereitgestellt wird, mit der sysadmin-Berechtigung des ausführenden Benutzers verwendet.

  • Die Ad-hoc-Ausführung einer Richtlinie findet im Sicherheitskontext des Benutzers statt.

  • Richtlinien mit dem Auswertungsmodus Nach Zeitplan verwenden SQL Server-Agentaufträge, die dem sa-Anmeldenamen gehören.

Überlegungen zur Verwendung der richtlinienbasierten Verwaltung

Beachten Sie, dass Richtlinien die Funktionsweise einiger SQL Server-Funktionen beeinflussen können. Beispielsweise verwenden Change Data Capture und die Transaktionsreplikation die systranschemas-Tabelle, die über keinen Index verfügt. Wenn Sie eine Richtlinie aktivieren, die festlegt, dass alle Tabellen einen Index aufweisen müssen, bewirkt die Erzwingung der Einhaltung der Richtlinie das Fehlschlagen dieser Funktionen.