다음을 통해 공유


sp_syspolicy_delete_policy_execution_history(Transact-SQL)

적용 대상: SQL Server

정책 기반 관리에서 정책의 실행 기록을 삭제합니다. 이 저장 프로시저를 사용하여 특정 정책 또는 모든 정책에 대한 실행 기록을 삭제하고 특정 날짜 이전에 실행 기록을 삭제할 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

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