UBAH SERTIFIKAT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

Mengubah kata sandi yang digunakan untuk mengenkripsi kunci privat sertifikat, menghapus kunci privat, atau mengimpor kunci privat jika tidak ada. Mengubah ketersediaan sertifikat menjadi Service Broker.

Konvensi sintaks transact-SQL

Sintaksis

-- Syntax for SQL Server and Azure SQL Database  
  
ALTER CERTIFICATE certificate_name   
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY ( <private_key_spec> )  
    | WITH ACTIVE FOR BEGIN_DIALOG = { ON | OFF }  
  
<private_key_spec> ::=   
      {   
        { FILE = 'path_to_private_key' | BINARY = private_key_bits }  
         [ , DECRYPTION BY PASSWORD = 'current_password' ]  
         [ , ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
    |  
      {  
         [ DECRYPTION BY PASSWORD = 'current_password' ]  
         [ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
-- Syntax for Parallel Data Warehouse  
  
ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

certificate_name
Adalah nama unik di mana sertifikat diketahui dalam database.

HAPUS KUNCI PRIVAT
Menentukan bahwa kunci privat tidak boleh lagi dipertahankan di dalam database.

DENGAN KUNCI PRIVAT Menentukan bahwa kunci privat sertifikat dimuat ke dalam SQL Server.

FILE ='path_to_private_key'
Menentukan jalur lengkap, termasuk nama file, ke kunci privat. Parameter ini dapat berupa jalur lokal atau jalur UNC ke lokasi jaringan. File ini akan diakses dalam konteks keamanan akun layanan SQL Server. Saat Anda menggunakan opsi ini, pastikan akun layanan memiliki akses ke file yang ditentukan.

Jika hanya nama file yang ditentukan, file disimpan di folder data pengguna default untuk instans. Folder ini mungkin (atau mungkin tidak) adalah folder DATA SQL Server. Untuk SQL Server Express LocalDB, folder data pengguna default untuk instans adalah jalur yang ditentukan oleh %USERPROFILE% variabel lingkungan untuk akun yang membuat instans.

BINER ='private_key_bits'
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Bit kunci privat ditentukan sebagai konstanta biner. Bit ini dapat dalam bentuk terenkripsi. Jika dienkripsi, pengguna harus memberikan kata sandi dekripsi. Pemeriksaan kebijakan kata sandi tidak dilakukan pada kata sandi ini. Bit kunci privat harus dalam format file PVK.

DEKRIPSI MENURUT KATA SANDI ='current_password'
Menentukan kata sandi yang diperlukan untuk mendekripsi kunci privat.

ENKRIPSI MENURUT KATA SANDI ='new_password'
Menentukan kata sandi yang digunakan untuk mengenkripsi kunci privat sertifikat dalam database. new_password harus memenuhi persyaratan kebijakan kata sandi Windows komputer yang menjalankan instans SQL Server. Untuk informasi selengkapnya, lihat Kebijakan Kata Sandi.

ACTIVE FOR BEGIN_DIALOG = { ON | NONAKTIF }
Membuat sertifikat tersedia untuk inisiator percakapan dialog Service Broker.

Keterangan

Kunci privat harus sesuai dengan kunci publik yang ditentukan oleh certificate_name.

Klausa DECRYPTION BY PASSWORD dapat dihilangkan jika kata sandi dalam file dilindungi dengan kata sandi null.

Ketika kunci privat sertifikat yang sudah ada dalam database diimpor, kunci privat akan secara otomatis dilindungi oleh kunci master database. Untuk melindungi kunci privat dengan kata sandi, gunakan klausa ENCRYPTION BY PASSWORD.

Opsi HAPUS KUNCI PRIVAT akan menghapus kunci privat sertifikat dari database. Anda dapat menghapus kunci privat saat sertifikat akan digunakan untuk memverifikasi tanda tangan atau dalam skenario Service Broker yang tidak memerlukan kunci privat. Jangan hapus kunci privat sertifikat yang melindungi kunci konten. Kunci privat perlu dipulihkan untuk menandatangani modul atau string tambahan yang harus diverifikasi dengan sertifikat, atau untuk mendekripsi nilai yang telah dienkripsi dengan sertifikat.

Anda tidak perlu menentukan kata sandi dekripsi saat kunci privat dienkripsi dengan menggunakan kunci master database.

Untuk mengubah kata sandi yang digunakan untuk mengenkripsi kunci privat, jangan tentukan klausa FILE atau BINARY.

Penting

Selalu buat salinan arsip kunci privat sebelum menghapusnya dari database. Untuk informasi selengkapnya, lihat SERTIFIKAT CADANGAN (Transact-SQL) dan CERTPRIVATEKEY (Transact-SQL).

Opsi WITH PRIVATE KEY tidak tersedia dalam database yang terkandung.

Izin

Memerlukan izin ALTER pada sertifikat.

Contoh

J. Menghapus kunci privat sertifikat

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Mengubah kata sandi yang digunakan untuk mengenkripsi kunci privat

ALTER CERTIFICATE Shipping11   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',  
    ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');  
GO  

C. Mengimpor kunci privat untuk sertifikat yang sudah ada dalam database

ALTER CERTIFICATE Shipping13   
    WITH PRIVATE KEY (FILE = 'c:\importedkeys\Shipping13',  
    DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');  
GO  

D. Mengubah perlindungan kunci privat dari kata sandi ke kunci master database

ALTER CERTIFICATE Shipping15   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');  
GO  

Lihat Juga

BUAT SERTIFIKAT (Transact-SQL)
HILANGKAN SERTIFIKAT (T-SQL)
SERTIFIKAT CADANGAN (Transact-SQL)
Hierarki Enkripsi
EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (T-SQL)
CERTPROPERTY (Transact-SQL)