Share via


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

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.

Icono de vínculo a temasConvenciones 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
    Es el identificador de la directiva para la que desea eliminar el historial de ejecución. policy_id es de tipo int y es obligatorio. Puede ser NULL.

  • [ @oldest_date= ] 'oldest_date'
    Es la fecha más antigua para la que desea mantener el historial de ejecución de directivas. Cualquier historial de ejecución anterior a esta fecha se elimina. oldest_date es de tipo datetime y es obligatorio. Puede ser NULL.

Valores de los códigos de retorno

0 (correcto) o 1 (error)

Comentarios

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

Para obtener los 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 para policy_id y para oldest_date.

  • Para eliminar todo el historial de ejecución de directivas de una directiva concreta, especifique el identificador de la directiva en policy_id y especifique NULL como oldest_date.

  • Para eliminar el historial de ejecución de directivas de todas las directivas anteriores a una fecha concreta, especifique NULL como policy_id y una fecha como oldest_date.

Para almacenar el historial de ejecución de directivas, puede abrir el registro de historial de directivas en el Explorador de objetos y exportar el historial de ejecución a un archivo. Para tener acceso al registro de historial de directivas, expanda Administración, haga clic con el botón secundario en Administración de directivas y, a continuación, haga clic en Ver historial.

Permisos

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

Nota de seguridadNota de seguridad

Posible elevación de credenciales: los usuarios del rol PolicyAdministratorRole pueden crear desencadenadores del servidor y programar ejecuciones de directivas que pueden afectar al funcionamiento de la instancia de Motor de base de datos. Por ejemplo, los usuarios del rol PolicyAdministratorRole pueden crear una directiva que puede evitar que la mayoría de los objetos se creen en Motor de base de datos. Debido a esta posible elevación de credenciales, el rol PolicyAdministratorRole se debería conceder únicamente a los usuarios que sean de confianza para controlar la configuración de Motor de base de datos.

Ejemplos

En el ejemplo siguiente se elimina el historial de ejecución de directivas anterior a una fecha concreta de una directiva con el identificador 7.

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

GO