catalog.cleanup_server_execution_keys

Berlaku untuk:SQL Server SSIS Integration Runtime di Azure Data Factory

Berlaku untuk:SQL Server

Menghilangkan sertifikat dan kunci konten dari database SSISDB.

Sintaks

catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,  
[ @delete_batch_size = ] delete_batch_size  

Argumen

[ @cleanup_flag = ] cleanup_flag
Menunjukkan apakah tingkat eksekusi (1) atau sertifikat tingkat proyek (2) dan kunci konten akan dihilangkan.

Gunakan tingkat eksekusi (1) hanya saat SERVER_OPERATION_ENCRYPTION_LEVEL diatur ke PER_EXECUTION (1).

Gunakan tingkat proyek (2) hanya saat SERVER_OPERATION_ENCRYPTION_LEVEL diatur ke PER_PROJECT (2). Sertifikat dan kunci konten dihilangkan hanya untuk proyek yang telah dihapus dan di mana log operasi telah dibersihkan.

[ @delete_batch_size = ] delete_batch_size
Jumlah kunci dan sertifikat yang akan dihilangkan. Nilai defaultnya adalah 1000.

Mengembalikan Nilai Kode

0 untuk keberhasilan dan 1 untuk kegagalan.

Tataan Hasil

Tidak ada.

Izin

Prosedur tersimpan ini memerlukan salah satu izin berikut:

  • Izin BACA dan JALANKAN pada proyek dan, jika berlaku, izin READ pada lingkungan yang dirujuk.

  • Keanggotaan dalam peran database ssis_admin .

  • Keanggotaan ke peran server sysadmin .

Kesalahan dan peringatan

Prosedur tersimpan ini menimbulkan kesalahan dalam skenario berikut:

  • Ada satu atau beberapa operasi aktif dalam database SSISDB.

  • Database SSISDB tidak dalam mode pengguna tunggal.

Keterangan

SQL Server 2012 Service Pack 2 menambahkan properti SERVER_OPERATION_ENCRYPTION_LEVEL ke tabel internal.catalog_properties . Properti ini memiliki dua nilai yang mungkin:

  • PER_EXECUTION (1) - Sertifikat dan kunci konten yang digunakan untuk melindungi parameter eksekusi sensitif dan log eksekusi dibuat untuk setiap eksekusi. Ini adalah nilai default. Anda mungkin mengalami masalah performa (kebuntuan, pekerjaan pemeliharaan yang gagal, dll.) di lingkungan produksi karena sertifikat/kunci dihasilkan untuk setiap eksekusi. Namun, pengaturan ini memberikan tingkat keamanan yang lebih tinggi daripada nilai lainnya (2).

  • PER_PROJECT (2) - Sertifikat dan kunci konten yang digunakan untuk melindungi parameter sensitif dibuat untuk setiap proyek. Ini memberi Anda performa yang lebih baik daripada tingkat PER_EXECUTION karena kunci dan sertifikat dihasilkan sekali untuk proyek daripada untuk setiap eksekusi.

Anda harus menjalankan prosedur tersimpan catalog.cleanup_server_log sebelum dapat mengubah SERVER_OPERATION_ENCRYPTION_LEVEL dari 1 menjadi 2 (atau) dari 2 menjadi 1. Sebelum menjalankan prosedur tersimpan ini, lakukan hal-hal berikut:

  1. Pastikan bahwa nilai properti OPERATION_CLEANUP_ENABLED diatur ke TRUE dalam tabel catalog.catalog_properties (Database SSISDB).

  2. Atur database Integration Services (SSISDB) ke mode pengguna tunggal. Di SQL Server Management Studio, luncurkan kotak dialog Properti Database untuk SSISDB, beralihlah ke tab Opsi, dan atur properti Batasi Akses ke mode pengguna tunggal (SINGLE_USER). Setelah Anda menjalankan prosedur cleanup_server_log tersimpan, atur nilai properti kembali ke nilai asli.

  3. Jalankan prosedur tersimpan catalog.cleanup_server_log.

  4. Sekarang, ubah nilai untuk properti SERVER_OPERATION_ENCRYPTION_LEVEL dalam tabel catalog.catalog_properties (Database SSISDB).

  5. Jalankan prosedur tersimpan catalog.cleanup_server_execution_keys untuk membersihkan kunci sertifikat dari database SSISDB. Menghilangkan sertifikat dan kunci dari database SSISDB mungkin memakan waktu lama, sehingga harus dijalankan secara berkala selama waktu di luar puncak.

    Anda dapat menentukan cakupan atau tingkat (eksekusi vs. proyek) dan jumlah kunci yang akan dihapus. Ukuran batch default untuk penghapusan adalah 1000. Saat Anda mengatur tingkat ke 2, kunci dan sertifikat akan dihapus hanya jika proyek terkait telah dihapus.

Untuk informasi selengkapnya, lihat artikel Pangkalan Pengetahuan berikut ini. MEMPERBAIKI: Masalah performa saat Anda menggunakan SSISDB sebagai penyimpanan penyebaran Anda di SQL Server 2012

Contoh

Contoh berikut memanggil prosedur tersimpan cleanup_server_execution_keys.

USE [SSISDB]  
GO  
  
DECLARE@return_value int  
  
EXEC@return_value = [internal].[cleanup_server_execution_keys]  
@cleanup_flag = 1,  
@delete_batch_size = 500  
  
SELECT'Return Value' = @return_value  
  
GO