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
SQL Server menyediakan kemampuan enkripsi data bersama dengan Extensible Key Management (EKM), menggunakan penyedia Microsoft Cryptographic API (MSCAPI) untuk enkripsi dan pembuatan kunci. Kunci enkripsi untuk enkripsi data dan enkripsi kunci dibuat dalam kontainer kunci sementara, dan Anda harus mengekspornya dari penyedia sebelum menyimpannya di database. Pendekatan ini memungkinkan SQL Server menangani manajemen kunci, termasuk hierarki kunci enkripsi dan cadangan kunci.
Dengan meningkatnya permintaan akan kepatuhan regulasi dan kepedulian terhadap privasi data, organisasi memanfaatkan enkripsi sebagai cara untuk menyediakan solusi pertahanan berlapis. Pendekatan ini sering kali tidak praktis hanya menggunakan alat manajemen enkripsi database. Vendor perangkat keras menyediakan produk yang menangani manajemen kunci enterprise dengan menggunakan modul keamanan perangkat keras (HSM). Perangkat HSM menyimpan kunci enkripsi pada modul perangkat keras atau perangkat lunak. Pendekatan ini lebih aman karena kunci enkripsi tidak berada bersama data yang terenkripsi.
Beberapa vendor menawarkan HSM untuk baik manajemen kunci maupun percepatan enkripsi. Perangkat HSM menggunakan antarmuka perangkat keras dengan proses server sebagai perantara antara aplikasi dan HSM. Vendor juga menerapkan penyedia MSCAPI melalui modul mereka, yang mungkin berupa perangkat keras atau perangkat lunak. MSCAPI sering kali hanya menawarkan sebagian dari fungsi yang ditawarkan HSM. Vendor juga dapat menyediakan perangkat lunak manajemen untuk HSM, konfigurasi kunci, dan akses kunci.
Implementasi HSM berbeda-beda di setiap vendor, dan menggunakannya dengan SQL Server membutuhkan antarmuka umum. Meskipun MSCAPI menyediakan antarmuka ini, ia hanya mendukung sebagian fitur HSM. Hal ini juga memiliki keterbatasan lain, seperti ketidakmampuan untuk menyimpan kunci simetris secara native, serta kurangnya dukungan yang berorientasi pada sesi.
SQL Server Extensible Key Management memungkinkan vendor EKM dan HSM pihak ketiga mendaftarkan modul mereka di SQL Server. Setelah modul terdaftar, pengguna SQL Server dapat menggunakan kunci enkripsi yang disimpan di modul tersebut. SQL Server kemudian dapat mengakses fitur enkripsi lanjutan yang didukung modul-modul ini, seperti enkripsi dan dekripsi massal, serta fungsi manajemen kunci seperti penuaan kunci dan rotasi kunci.
Saat Anda menjalankan SQL Server di Azure VM, SQL Server dapat menggunakan kunci yang disimpan di Azure Key Vault. Untuk informasi lebih lanjut, lihat Extensible Key Management using Azure Key Vault (SQL Server).
Konfigurasi EKM
Extensible Key Management tidak tersedia di setiap edisi SQL Server. Untuk daftar fitur yang didukung oleh edisi di SQL Server, lihat Edisi dan fitur yang didukung dari SQL Server 2025.
Secara default, Extensible Key Management nonaktif. Untuk mengaktifkan fitur ini, gunakan prosedur tersimpan sp_configure (Transact-SQL) dengan opsi dan nilai berikut:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Catatan
Jika Anda menggunakan sp_configure opsi ini pada edisi SQL Server yang tidak mendukung EKM, Anda akan menerima kesalahan.
Untuk menonaktifkan fitur ini, atur nilainya ke 0. Untuk informasi selengkapnya tentang cara mengatur opsi server, lihat sp_configure (Transact-SQL).
Cara menggunakan EKM
SQL Server Extensible Key Management memungkinkan Anda menyimpan kunci enkripsi yang melindungi file database di perangkat off-box seperti kartu pintar, perangkat USB, atau modul EKM/HSM. Ini juga melindungi data dari administrator basis data, kecuali anggota peran server tetap sysadmin. Anda dapat mengenkripsi data dengan menggunakan kunci enkripsi yang hanya dapat diakses oleh pengguna database pada modul EKM/HSM eksternal.
Extensible Key Management juga memberikan manfaat berikut:
- Pemeriksaan otorisasi tambahan, yang memungkinkan pemisahan tugas.
- Kinerja lebih tinggi untuk enkripsi dan dekripsi berbasis perangkat keras.
- Pembuatan kunci enkripsi eksternal.
- Penyimpanan kunci enkripsi eksternal, yang secara fisik memisahkan data dan kunci.
- Pengambilan kunci enkripsi.
- Retensi kunci enkripsi eksternal, yang memungkinkan rotasi kunci enkripsi.
- Pemulihan kunci enkripsi yang lebih mudah.
- Distribusi kunci enkripsi yang dapat dikelola.
- Pembuangan kunci enkripsi aman.
Anda dapat menggunakan Extensible Key Management untuk kombinasi nama pengguna dan kata sandi atau metode lain yang ditentukan oleh driver EKM.
Perhatian
Untuk pemecahan masalah, dukungan teknis Microsoft mungkin memerlukan kunci enkripsi dari penyedia EKM. Anda mungkin juga perlu mengakses alat atau proses vendor untuk membantu menyelesaikan masalah.
Autentikasi dengan perangkat EKM
Modul EKM dapat mendukung lebih dari satu jenis autentikasi. Setiap penyedia hanya mengeksposkan satu jenis autentikasi ke SQL Server. Artinya, jika modul mendukung baik tipe otentikasi dasar maupun lainnya, modul akan menampilkan salah satu dari keduanya, tetapi tidak keduanya.
Autentikasi dasar khusus perangkat EKM dengan menggunakan nama pengguna dan kata sandi
Untuk modul EKM yang mendukung autentikasi dasar dengan menggunakan pasangan nama pengguna dan kata sandi, SQL Server menyediakan autentikasi transparan dengan menggunakan kredensial. Untuk informasi selengkapnya tentang kredensial, lihat Kredensial (Mesin Database).
Anda dapat membuat kredensial untuk penyedia EKM dan memetakannya ke login, baik akun Windows maupun SQL Server, untuk mengakses modul EKM secara per login. Kolom identitas pada kredensial berisi nama pengguna, dan kolom rahasia berisi kata sandi untuk terhubung ke modul EKM.
Jika tidak ada kredensial login-mapped untuk penyedia EKM, SQL Server menggunakan kredensial yang dipetakan ke akun layanan.
Sebuah login dapat memiliki beberapa kredensial yang dipetakan ke dalamnya, selama masing-masing digunakan untuk setiap penyedia EKM yang berbeda. Hanya boleh ada satu kredensial yang dipetakan per penyedia EKM per login. Anda dapat memetakan kredensial yang sama ke login lain.
Jenis autentikasi spesifik perangkat EKM lainnya
Untuk modul EKM yang menggunakan autentikasi selain Windows atau kombinasi nama pengguna dan kata sandi, Anda harus melakukan autentikasi secara independen dari SQL Server.
Enkripsi dan dekripsi oleh perangkat EKM
Gunakan fungsi dan fitur berikut untuk mengenkripsi dan mendekripsi data dengan menggunakan kunci simetris dan asimetris:
| Fungsi atau fitur | Referensi |
|---|---|
| Enkripsi kunci simetris | CREATE SYMMETRIC KEY (Transact-SQL) |
| Enkripsi kunci asimetris | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Enkripsi kunci basis data dengan kunci EKM
SQL Server dapat menggunakan kunci EKM untuk mengenkripsi kunci lain dalam database. Anda dapat membuat dan menggunakan kunci simetris dan asimetris pada perangkat EKM. Anda dapat mengenkripsi kunci simetris native (non-EKM) dengan kunci asimetris EKM.
Contoh berikut membuat kunci simetris basis data dan mengenkripsikannya menggunakan kunci pada modul EKM.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Untuk informasi lebih lanjut tentang kunci database dan server di SQL Server, lihat Kunci enkripsi SQL Server dan database (Database Engine).
Catatan
Anda tidak bisa mengenkripsi satu kunci EKM dengan kunci EKM lain.
SQL Server tidak mendukung penandatanganan modul dengan kunci asimetris yang dihasilkan dari penyedia EKM.
Konten terkait
- Opsi konfigurasi server yang diaktifkan oleh penyedia EKM
- Mengaktifkan TDE di SQL Server menggunakan EKM
- Manajemen Kunci yang Dapat Diperluas menggunakan Azure Key Vault (SQL Server)
- Kunci enkripsi SQL Server dan basis data (Database Engine)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (T-SQL)
- sys.dm_cryptographic_provider_sessions (T-SQL)
- sys.dm_cryptographic_provider_properties (T-SQL)
- sys.dm_cryptographic_provider_algorithms (T-SQL)
- sys.dm_cryptographic_provider_keys (T-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Mencadangkan dan memulihkan kunci enkripsi SQL Server Reporting Services (SSRS)
- Hapus dan Buat Ulang Kunci Enkripsi (Configuration Manager)
- Tambah dan hapus kunci enkripsi untuk penyebaran berskala
- Cadangkan kunci master layanan
- Pulihkan kunci master layanan
- Membuat kunci master database
- Membuat cadangan kunci master database
- Memulihkan kunci master database
- Buat kunci simetris identik pada dua server