Share via


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的原則標識符,並將 NULL 指定為@oldest_date

  • 若要刪除特定日期之前所有原則的原則執行歷程記錄,請針對@policy_id指定 NULL,並指定@oldest_date日期。

若要封存原則執行歷程記錄,您可以在 物件總管 中開啟原則歷程記錄,並將執行歷程記錄導出至檔案。 若要存取原則歷程記錄,請展開 [管理],以滑鼠右鍵按兩下 [原則管理],然後選取 [ 檢視記錄]。

權限

需要 Policy 管理員 istratorRole 固定資料庫角色的成員資格。

重要

可能的認證提升:Policy 管理員 istratorRole 角色中的使用者可以建立伺服器觸發程式和排程可能會影響 資料庫引擎 實例作業的原則執行。 例如,Policy 管理員 istratorRole 角色中的使用者可以建立原則,以防止在 資料庫引擎 中建立大部分物件。 由於此可能的認證提升,Policy 管理員 istratorRole 角色應該只授與信任且可控制 資料庫引擎 組態的使用者。

範例

下列範例會在標識碼 7為的原則特定日期之前刪除原則執行歷程記錄。

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