sp_syspolicy_delete_policy_execution_history (Transact-SQL)
Si applica a: SQL Server
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.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_syspolicy_delete_policy_execution_history
[ @policy_id = ] policy_id
, [ @oldest_date = ] 'oldest_date'
[ ; ]
Argomenti
[ @policy_id = ] policy_id
Identificatore del criterio per il quale si desidera eliminare la cronologia di esecuzione. @policy_id è int ed è obbligatorio. Può essere NULL
.
[ @oldest_date = ] 'oldest_date'
Data meno recente per la quale si vuole mantenere la cronologia di esecuzione dei criteri. Qualsiasi cronologia di esecuzione precedente a questa data viene eliminata. @oldest_date è datetime ed è obbligatorio. Può essere NULL
.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
È necessario eseguire sp_syspolicy_delete_policy_execution_history
nel contesto del msdb
database di sistema.
Per ottenere valori per @policy_id e per visualizzare le date della cronologia di esecuzione, è possibile usare la query seguente:
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 si applica se si specifica NULL
per uno o entrambi i valori:
Per eliminare tutta la cronologia di esecuzione dei criteri, specificare
NULL
sia per @policy_id che per @oldest_date.Per eliminare tutta la cronologia di esecuzione dei criteri per un criterio specifico, specificare un identificatore di criteri per @policy_id e specificare
NULL
come @oldest_date.Per eliminare la cronologia di esecuzione dei criteri per tutti i criteri prima di una data specifica, specificare
NULL
per @policy_id e specificare una data per @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 e quindi selezionare Visualizza cronologia.
Autorizzazioni
Richiede l'appartenenza al ruolo predefinito del database PolicyAdministratorRole .
Importante
Possibile elevazione delle credenziali: gli utenti nel ruolo PolicyAdministratorRole possono creare trigger del server e pianificare esecuzioni di criteri che possono influire sul funzionamento dell'istanza del motore di database. Ad esempio, gli utenti nel ruolo PolicyAdministratorRole possono creare un criterio che può impedire la creazione della maggior parte degli oggetti nella motore di database. A causa di questa possibile elevazione delle credenziali, il ruolo PolicyAdministratorRole deve essere concesso solo agli utenti attendibili con il controllo della configurazione del motore di database.
Esempi
Nell'esempio seguente viene eliminata la cronologia di esecuzione dei criteri prima di una data specifica per un criterio con ID .7
EXEC msdb.dbo.sp_syspolicy_delete_policy_execution_history
@policy_id = 7,
@oldest_date = '2019-02-16 16:00:00.000';
GO