sp_syspolicy_delete_policy_execution_history (Transact-SQL)
ポリシー ベースの管理のポリシーの実行履歴を削除します。 このストアド プロシージャを使用して、特定のポリシーまたはすべてのポリシーの実行履歴、および特定の日付までの実行履歴を削除できます。
適用対象:SQL Server (SQL Server 2008 から現在のバージョン)。 |
構文
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
次の動作は、1 つまたは両方の値に NULL を指定した場合に適用されます。
ポリシーの実行履歴をすべて削除するには、policy_id と oldest_date の両方に NULL を指定します。
特定のポリシーの実行履歴をすべて削除するには、policy_id にポリシー ID を指定し、oldest_date に NULL を指定します。
特定の日付より前のすべてのポリシーの実行履歴を削除するには、policy_id に NULL を指定し、oldest_date に特定の日付を指定します。
ポリシーの実行履歴をアーカイブするには、オブジェクト エクスプローラーでポリシー履歴ログを開いて、実行履歴をファイルにエクスポートします。 ポリシー履歴ログにアクセスするには、[管理] を展開し、[ポリシー管理] を右クリックして、[履歴の表示] をクリックします。
権限
PolicyAdministratorRole 固定データベース ロールのメンバーシップが必要です。
セキュリティに関する注意 |
---|
資格情報が昇格される可能性について: PolicyAdministratorRole ロールに割り当てられているユーザーは、サーバー トリガーを作成して、データベース エンジン インスタンスの動作に影響する可能性があるポリシーの実行をスケジュールできます。たとえば、PolicyAdministratorRole ロールに割り当てられているユーザーは、ほとんどのオブジェクトがデータベース エンジンで作成されないようにすることができるポリシーを作成できます。このように、資格情報が昇格される可能性があるので、PolicyAdministratorRole ロールは、データベース エンジンの構成の制御について信頼できるユーザーにのみ許可してください。 |
使用例
次の例では、ID が 7 のポリシーについて特定の日付より前のポリシーの実行履歴を削除します。
EXEC msdb.dbo.sp_syspolicy_delete_policy_execution_history @policy_id = 7
, @oldest_date = '2009-02-16 16:00:00.000';
GO
関連項目
参照
ポリシー ベースの管理ストアド プロシージャ (Transact-SQL)