sp_syspolicy_delete_policy_execution_history (T-SQL)

Berlaku untuk:SQL Server

Menghapus riwayat eksekusi untuk kebijakan dalam Manajemen Berbasis Kebijakan. Anda dapat menggunakan prosedur tersimpan ini untuk menghapus riwayat eksekusi untuk kebijakan tertentu atau untuk semua kebijakan, dan untuk menghapus riwayat eksekusi sebelum tanggal tertentu.

Konvensi sintaks transact-SQL

Sintaks

sp_syspolicy_delete_policy_execution_history
    [ @policy_id = ] policy_id
    , [ @oldest_date = ] 'oldest_date'
[ ; ]

Argumen

[ @policy_id = ] policy_id

Pengidentifikasi kebijakan yang ingin Anda hapus riwayat eksekusinya. @policy_id int, dan diperlukan. Bisa NULL.

[ @oldest_date = ] 'oldest_date'

Tanggal terlama yang ingin Anda simpan riwayat eksekusi kebijakannya. Riwayat eksekusi apa pun yang lebih awal dari tanggal ini dihapus. @oldest_date adalah tanggalwaktu, dan diperlukan. Bisa NULL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Anda harus menjalankan sp_syspolicy_delete_policy_execution_history dalam konteks msdb database sistem.

Untuk mendapatkan nilai untuk @policy_id, dan untuk melihat tanggal riwayat eksekusi, Anda bisa menggunakan kueri berikut:

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;

Perilaku berikut berlaku jika Anda menentukan NULL untuk satu atau kedua nilai:

  • Untuk menghapus semua riwayat eksekusi kebijakan, tentukan NULL untuk @policy_id dan untuk @oldest_date.

  • Untuk menghapus semua riwayat eksekusi kebijakan untuk kebijakan tertentu, tentukan pengidentifikasi kebijakan untuk @policy_id, dan tentukan NULL sebagai @oldest_date.

  • Untuk menghapus riwayat eksekusi kebijakan untuk semua kebijakan sebelum tanggal tertentu, tentukan NULL untuk @policy_id, dan tentukan tanggal untuk @oldest_date.

Untuk mengarsipkan riwayat eksekusi kebijakan, Anda dapat membuka log Riwayat Kebijakan, di Object Explorer, dan mengekspor riwayat eksekusi ke file. Untuk mengakses log Riwayat Kebijakan, perluas Manajemen, klik kanan Manajemen Kebijakan, lalu pilih Tampilkan Riwayat.

Izin

Memerlukan keanggotaan dalam peran database tetap PolicyAdministratorRole .

Penting

Kemungkinan elevasi kredensial: Pengguna dalam peran PolicyAdministratorRole dapat membuat pemicu server dan menjadwalkan eksekusi kebijakan yang dapat memengaruhi pengoperasian instans Mesin Database. Misalnya, pengguna dalam peran PolicyAdministratorRole dapat membuat kebijakan yang dapat mencegah sebagian besar objek dibuat di Mesin Database. Karena kemungkinan peningkatan kredensial ini, peran PolicyAdministratorRole harus diberikan hanya kepada pengguna yang tepercaya dengan mengontrol konfigurasi Mesin Database.

Contoh

Contoh berikut menghapus riwayat eksekusi kebijakan sebelum tanggal tertentu untuk kebijakan dengan ID .7

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