sp_syspolicy_delete_policy_execution_history (Transact-SQL)

Gilt für:SQL Server

Löscht den Ausführungsverlauf für Richtlinien in der richtlinienbasierten Verwaltung. Sie können diese gespeicherte Prozedur verwenden, um den Ausführungsverlauf für eine bestimmte Richtlinie oder alle Richtlinien zu löschen und um den Ausführungsverlauf vor einem bestimmten Datum zu löschen.

Transact-SQL-Syntaxkonventionen

Syntax

sp_syspolicy_delete_policy_execution_history
    [ @policy_id = ] policy_id
    , [ @oldest_date = ] 'oldest_date'
[ ; ]

Argumente

[ @policy_id = ] policy_id

Der Bezeichner der Richtlinie, für die Sie den Ausführungsverlauf löschen möchten. @policy_id ist int und erforderlich. Kann den Wert NULL haben.

[ @oldest_date = ] 'oldest_date'

Das älteste Datum, für das Sie den Richtlinienausführungsverlauf beibehalten möchten. Alle Ausführungsverläufe, die vor diesem Datum liegen, werden gelöscht. @oldest_date ist "datetime" und ist erforderlich. Kann den Wert NULL haben.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler).

Hinweise

Sie müssen im Kontext der msdb Systemdatenbank ausgeführt werdensp_syspolicy_delete_policy_execution_history.

Zum Abrufen von Werten für @policy_id und zum Anzeigen des Ausführungsverlaufsdatums können Sie die folgende Abfrage verwenden:

SELECT a.name AS N'policy_name',
    b.policy_id,
    b.start_date,
    b.end_date
FROM msdb.dbo.syspolicy_policies AS a
INNER JOIN msdb.dbo.syspolicy_policy_execution_history AS b
    ON a.policy_id = b.policy_id;

Das folgende Verhalten wird angewendet, wenn Sie für einen oder beide Werte NULL angeben:

  • Um den gesamten Richtlinienausführungsverlauf zu löschen, geben Sie NULL für @policy_id und für @oldest_date an.

  • Um den gesamten Richtlinienausführungsverlauf für eine bestimmte Richtlinie zu löschen, geben Sie einen Richtlinienbezeichner für @policy_id an, und geben Sie NULL als @oldest_date an.

  • Um den Richtlinienausführungsverlauf für alle Richtlinien vor einem bestimmten Datum zu löschen, geben Sie NULL für @policy_id an, und geben Sie ein Datum für @oldest_date an.

Zum Archivieren des Richtlinienausführungsverlaufs können Sie das Richtlinienverlaufsprotokoll in Objekt-Explorer öffnen und den Ausführungsverlauf in eine Datei exportieren. Um auf das Richtlinienverlaufsprotokoll zuzugreifen, erweitern Sie "Verwaltung", klicken Sie mit der rechten Maustaste auf "Richtlinienverwaltung", und wählen Sie dann "Verlauf anzeigen" aus.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Datenbankrolle "PolicyAdministratorRole ".

Wichtig

Mögliche Rechteerweiterung von Anmeldeinformationen: Benutzer in der Rolle "PolicyAdministratorRole" können Servertrigger erstellen und Richtlinienausführungen planen, die sich auf den Vorgang der Instanz der Datenbank-Engine auswirken können. Benutzer in der Rolle "PolicyAdministratorRole" können beispielsweise eine Richtlinie erstellen, die verhindert, dass die meisten Objekte im Datenbank-Engine erstellt werden. Aufgrund dieser möglichen Erhöhung von Anmeldeinformationen sollte die Rolle "PolicyAdministratorRole" nur Benutzern gewährt werden, die mit der Steuerung der Konfiguration der Datenbank-Engine vertraut sind.

Beispiele

Im folgenden Beispiel wird der Richtlinienausführungsverlauf vor einem bestimmten Datum für eine Richtlinie mit einer ID von 7gelöscht.

EXEC msdb.dbo.sp_syspolicy_delete_policy_execution_history
    @policy_id = 7,
    @oldest_date = '2019-02-16 16:00:00.000';
GO