Compartir a través de


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

Se aplica a: SQL Server

Elimina el historial de ejecución de directivas para la administración basada en directivas. Puede utilizar este procedimiento almacenado para eliminar el historial de ejecución de una directiva concreta o de todas las directivas, y el historial de ejecución anterior a una fecha concreta.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @policy_id = ] policy_id

Identificador de la directiva para la que desea eliminar el historial de ejecución. @policy_id es int y es necesario. Puede ser NULL.

[ @oldest_date = ] 'oldest_date'

Fecha más antigua para la que desea mantener el historial de ejecución de directivas. Se eliminan todos los historiales de ejecución anteriores a esta fecha. @oldest_date es datetime y es necesario. Puede ser NULL.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Debe ejecutarse sp_syspolicy_delete_policy_execution_history en el contexto de la base de datos del msdb sistema.

Para obtener valores de @policy_id y ver las fechas del historial de ejecución, puede usar la consulta siguiente:

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;

El comportamiento siguiente se aplica si especifica NULL para uno o ambos valores:

  • Para eliminar todo el historial de ejecución de directivas, especifique NULL tanto para @policy_id como para @oldest_date.

  • Para eliminar todo el historial de ejecución de directivas de una directiva específica, especifique un identificador de directiva para @policy_id y especifique NULL como @oldest_date.

  • Para eliminar el historial de ejecución de directivas de todas las directivas antes de una fecha específica, especifique NULL para @policy_id y especifique una fecha para @oldest_date.

Para archivar el historial de ejecución de directivas, puede abrir el registro historial de directivas, en Explorador de objetos y exportar el historial de ejecución a un archivo. Para acceder al registro de historial de directivas, expanda Administración, haga clic con el botón derecho en Administración de directivas y, a continuación, seleccione Ver historial.

Permisos

Requiere la pertenencia al rol fijo de base de datos PolicyAdministratorRole .

Importante

Posible elevación de credenciales: los usuarios del rol PolicyAdministratorRole pueden crear desencadenadores de servidor y programar ejecuciones de directivas que pueden afectar al funcionamiento de la instancia del Motor de base de datos. Por ejemplo, los usuarios del rol PolicyAdministratorRole pueden crear una directiva que pueda impedir que la mayoría de los objetos se creen en el Motor de base de datos. Debido a esta posible elevación de credenciales, solo se debe conceder el rol PolicyAdministratorRole a los usuarios que confían en controlar la configuración del Motor de base de datos.

Ejemplos

En el ejemplo siguiente se elimina el historial de ejecución de directivas antes de una fecha específica de una directiva con un identificador de 7.

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