sp_syspolicy_delete_policy_execution_history(Transact-SQL)
적용 대상: SQL Server
정책 기반 관리에서 정책의 실행 기록을 삭제합니다. 이 저장 프로시저를 사용하여 특정 정책 또는 모든 정책에 대한 실행 기록을 삭제하고 특정 날짜 이전에 실행 기록을 삭제할 수 있습니다.
구문
sp_syspolicy_delete_policy_execution_history
[ @policy_id = ] policy_id
, [ @oldest_date = ] 'oldest_date'
[ ; ]
인수
[ @policy_id = ] policy_id
실행 기록을 삭제하려는 정책의 식별자입니다. @policy_id int이며 필수입니다. NULL
일 수 있습니다.
[ @oldest_date = ] 'oldest_date'
정책 실행 기록을 유지하려는 가장 오래된 날짜입니다. 이 날짜 이전의 모든 실행 기록이 삭제됩니다. @oldest_date datetime이며 필수입니다. NULL
일 수 있습니다.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
시스템 데이터베이스의 msdb
컨텍스트에서 실행 sp_syspolicy_delete_policy_execution_history
해야 합니다.
@policy_id 값을 가져오고 실행 기록 날짜를 보려면 다음 쿼리를 사용할 수 있습니다.
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;
하나 또는 두 값에 대해 지정 NULL
하는 경우 다음 동작이 적용됩니다.
모든 정책 실행 기록을 삭제하려면 @policy_id 및 @oldest_date 모두 지정
NULL
합니다.특정 정책에 대한 모든 정책 실행 기록을 삭제하려면 @policy_id 대한 정책 식별자를 지정하고 @oldest_date 지정
NULL
합니다.특정 날짜 이전에 모든 정책에 대한 정책 실행 기록을 삭제하려면 @policy_id 지정
NULL
하고 @oldest_date 날짜를 지정합니다.
정책 실행 기록을 보관하려면 개체 탐색기 정책 기록 로그를 열고 실행 기록을 파일로 내보낼 수 있습니다. 정책 기록 로그에 액세스하려면 관리를 확장하고 정책 관리를 마우스 오른쪽 단추로 클릭한 다음 기록 보기를 선택합니다.
사용 권한
PolicyAdministratorRole 고정 데이터베이스 역할의 멤버 자격이 필요합니다.
Important
자격 증명 상승 가능: PolicyAdministratorRole 역할의 사용자는 서버 트리거를 만들고 데이터베이스 엔진 인스턴스의 작업에 영향을 줄 수 있는 정책 실행을 예약할 수 있습니다. 예를 들어 PolicyAdministratorRole 역할의 사용자는 대부분의 개체가 데이터베이스 엔진 만들어지는 것을 방지할 수 있는 정책을 만들 수 있습니다. 이러한 자격 증명 상승이 가능하기 때문에 PolicyAdministratorRole 역할은 데이터베이스 엔진 구성을 제어하는 신뢰할 수 있는 사용자에게만 부여되어야 합니다.
예제
다음 예제에서는 ID 7
가 있는 정책에 대한 특정 날짜 이전에 정책 실행 기록을 삭제합니다.
EXEC msdb.dbo.sp_syspolicy_delete_policy_execution_history
@policy_id = 7,
@oldest_date = '2019-02-16 16:00:00.000';
GO