Share via


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

Elimina la cronologia di esecuzione dei criteri nella gestione basata su criteri. È possibile utilizzare questa stored procedure per eliminare la cronologia di esecuzione per criteri specifici o per tutti i criteri, nonché per eliminare la cronologia di esecuzione precedente a una data specifica.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @policy_id= ] policy_id
    Identificatore dei criteri per cui si desidera eliminare la cronologia di esecuzione. policy_id è di tipo int ed è obbligatorio. Può essere NULL.

  • [ @oldest_date= ] 'oldest_date'
    Data meno recente per la quale si desidera mantenere la cronologia di esecuzione dei criteri. Qualsiasi cronologia di esecuzione precedente a questa data viene eliminata. oldest_date è di tipo datetime ed è obbligatorio. Può essere NULL.

Valori di codice restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

È necessario eseguire sp_syspolicy_delete_policy_execution_history nel contesto del database di sistema msdb.

Per ottenere i valori di policy_id e visualizzare le date della cronologia di esecuzione, è possibile utilizzare la seguente query:

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

Il comportamento seguente è valido se si specifica NULL per uno o entrambi i valori:

  • Per eliminare l'intera cronologia di esecuzione per tutti i criteri, specificare NULL per policy_id e oldest_date.

  • Per eliminare l'intera cronologia di esecuzione per criteri specifici, specificare un identificatore dei criteri in policy_id, quindi NULL in oldest_date.

  • Per eliminare la cronologia di esecuzione precedente a una data specifica per tutti i criteri, specificare NULL in policy_id, quindi una data in oldest_date.

Per archiviare la cronologia di esecuzione dei criteri, è possibile aprire il log Cronologia criteri in Esplora oggetti ed esportare la cronologia di esecuzione in un file. Per accedere al log Cronologia criteri, espandere Gestione, fare clic con il pulsante destro del mouse su Gestione criteri, quindi scegliere Visualizza cronologia.

Autorizzazioni

È necessaria l'appartenenza al ruolo predefinito del database PolicyAdministratorRole.

Nota sulla sicurezzaNota sulla sicurezza

Possibile elevazione di credenziali: gli utenti con il ruolo PolicyAdministratorRole possono creare trigger server e pianificare le esecuzioni di criteri che influiscono sul funzionamento dell'istanza del Motore di database. Gli utenti con il ruolo PolicyAdministratorRole possono ad esempio creare criteri che impediscono la creazione della maggior parte degli oggetti nel Motore di database. A causa di questa possibile elevazione di credenziali, il ruolo PolicyAdministratorRole deve essere concesso solo a utenti ritenuti attendibili per il controllo della configurazione del Motore di database.

Esempi

Nell'esempio seguente viene eliminata la cronologia di esecuzione dei criteri precedente a una data specifica, per criteri con ID 7.

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

GO