Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
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.
Syntax
-- 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>' )
}
Arguments
certificate_name
Nama unik tempat sertifikat diketahui dalam database.
HAPUS KUNCI PRIVAT
Menentukan bahwa kunci privat tidak akan lagi dipertahankan di dalam database.
DENGAN KUNCI PRIVAT Menentukan bahwa kunci privat sertifikat dimuat ke dalam SQL Server.
BERKAS = '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 diakses dalam konteks keamanan akun layanan SQL Server. Saat Anda menggunakan opsi ini, pastikan akun layanan memiliki akses ke file yang ditentukan.
Jika Anda hanya menentukan nama file, file disimpan di folder data pengguna default untuk instans. Folder ini mungkin atau mungkin bukan 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, Anda harus memberikan kata sandi dekripsi. SQL Server tidak melakukan pemeriksaan kebijakan kata sandi 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.
Remarks
Kunci privat harus sesuai dengan kunci publik yang ditentukan oleh certificate_name.
Anda dapat menghilangkan klausa DECRYPTION BY PASSWORD jika kata sandi dalam file dilindungi dengan kata sandi null.
Saat Anda mengimpor kunci privat sertifikat yang sudah ada dalam database, kunci privat secara otomatis dilindungi oleh kunci master database. Untuk melindungi kunci privat dengan kata sandi, gunakan klausa ENCRYPTION BY PASSWORD.
Opsi HAPUS KUNCI PRIVAT menghapus kunci privat sertifikat dari database. Anda dapat menghapus kunci privat saat menggunakan sertifikat untuk memverifikasi tanda tangan atau dalam skenario Service Broker yang tidak memerlukan kunci privat. Jangan hapus kunci privat sertifikat yang melindungi kunci konten. Anda perlu memulihkan kunci privat untuk menandatangani modul atau string tambahan yang harus diverifikasi dengan sertifikat, atau untuk mendekripsi nilai yang 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.
Important
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.
Keterbatasan
Nama sertifikat tidak dapat diubah setelah pembuatan. ALTER CERTIFICATE tidak mendukung penggantian nama sertifikat. Jika Anda perlu menggunakan nama sertifikat yang berbeda, Anda harus membuat sertifikat baru dan memigrasikan dependensi.
Penanganan masalah untuk sertifikat TDE
Jika Anda perlu mengganti sertifikat Transparent Data Encryption (TDE) dengan nama yang berbeda:
Cadangkan sertifikat dan kunci privat saat ini:
BACKUP CERTIFICATE OldTDECert TO FILE = 'C:\Backup\OldTDECert.cer' WITH PRIVATE KEY ( FILE = 'C:\Backup\OldTDECert.pvk', ENCRYPTION BY PASSWORD = '<password>' );Buat sertifikat baru dengan nama yang benar:
CREATE CERTIFICATE NewTDECert WITH SUBJECT = 'TDE Certificate - Correct Name';Untuk setiap database terenkripsi TDE, ubah kunci enkripsi:
USE EncryptedDB; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE NewTDECert;Setelah semua database dimigrasikan, hilangkan sertifikat lama:
USE master; GO DROP CERTIFICATE OldTDECert;
Important
Selalu cadangkan sertifikat dan kunci privat sebelum membuat perubahan TDE. Simpan cadangan di lokasi aman yang terpisah dari server database.
Permissions
Memerlukan izin ALTER pada sertifikat.
Examples
A. 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