Share via


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

Supprime l'historique d'exécution pour les stratégies dans la Gestion basée sur des stratégies. Vous pouvez utiliser cette procédure stockée pour supprimer l'historique d'exécution pour une stratégie particulière ou pour toutes les stratégies, et pour supprimer l'historique d'exécution avant une date spécifique.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

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

Arguments

  • [ @policy_id= ] policy_id
    Identificateur de la stratégie pour laquelle vous voulez supprimer l'historique d'exécution. policy_id est de type int et est requis. Sa valeur peut être Null.

  • [ @oldest_date= ] 'oldest_date'
    Date la plus ancienne pour laquelle vous voulez conserver l'historique d'exécution de la stratégie. Tout historique d'exécution antérieur à cette date est supprimé. oldest_date est de type datetime et est requis. Sa valeur peut être Null.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

Vous devez exécuter sp_syspolicy_delete_policy_execution_history dans le contexte de la base de données système msdb.

Pour obtenir des valeurs pour policy_id et pour afficher les dates de l'historique d'exécution, vous pouvez utiliser la requête suivante :

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

Le comportement suivant s'applique si vous spécifiez Null pour l'une des deux valeurs suivantes, ou les deux :

  • Pour supprimer l'intégralité de l'historique d'exécution de la stratégie, spécifiez Null pour policy_id et pour oldest_date.

  • Pour supprimer l'intégralité de l'historique d'exécution pour une stratégie spécifique, indiquez un identificateur de stratégie pour policy_id et Null pour oldest_date.

  • Pour supprimer l'historique d'exécution pour toutes les stratégies avant une date spécifique, indiquez Null pour policy_id et une date pour oldest_date.

Pour archiver l'historique d'exécution de la stratégie, vous pouvez ouvrir le journal Historique de la stratégie dans l'Explorateur d'objets et exporter l'historique d'exécution dans un fichier. Pour accéder au journal Historique de la stratégie, développez Gestion, cliquez avec le bouton droit sur Gestion de la stratégie, puis cliquez sur Afficher l'historique.

Autorisations

Nécessite l'appartenance au rôle de base de données fixe PolicyAdministratorRole.

Remarque relative à la sécuritéRemarque relative à la sécurité

Élévation possible des informations d'identification : les utilisateurs du rôle PolicyAdministratorRole peuvent créer des déclencheurs de serveur et planifier des exécutions de stratégie qui peuvent affecter le fonctionnement de l'instance du moteur de base de données. Par exemple, les utilisateurs du rôle PolicyAdministratorRole peuvent créer une stratégie qui peut empêcher la création de la plupart des objets dans le moteur de base de données. Étant donné cette possible élévation des informations d'identification, le rôle PolicyAdministratorRole doit être accordé uniquement aux utilisateurs de confiance autorisés à contrôler la configuration du moteur de base de données.

Exemples

L'exemple suivant supprime l'historique d'exécution de la stratégie avant une date spécifique pour une stratégie ayant un ID égal à 7.

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

GO