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
Artikel ini menjelaskan cara mengaktifkan enkripsi data transparan (TDE) di SQL Server untuk melindungi kunci enkripsi database dengan menggunakan kunci asimetris yang disimpan dalam modul manajemen kunci yang dapat diperluas (EKM) dengan Transact-SQL.
TDE mengenkripsi penyimpanan seluruh database dengan menggunakan kunci simetris yang disebut kunci enkripsi database. Kunci enkripsi database juga dapat dilindungi menggunakan sertifikat, yang dilindungi oleh kunci master database (DMK) master database. Untuk informasi selengkapnya tentang melindungi kunci enkripsi database dengan menggunakan DMK, lihat Enkripsi data transparan (TDE). Untuk informasi tentang mengonfigurasi TDE saat SQL Server berjalan di Azure Virtual Machine, lihat Manajemen Kunci yang Dapat Diperluas Menggunakan Azure Key Vault (SQL Server). Untuk informasi tentang mengonfigurasi TDE menggunakan kunci di brankas kunci Azure, lihat Menggunakan Konektor SQL Server dengan Fitur Enkripsi SQL.
Keterbatasan
Anda harus menjadi pengguna dengan hak istimewa tinggi (seperti administrator sistem) untuk membuat kunci enkripsi database dan mengenkripsi database. Modul EKM harus dapat mengautentikasi pengguna tersebut.
Saat memulai, Mesin Database harus membuka database. Anda harus membuat kredensial yang akan diautentikasi oleh EKM, dan menambahkannya ke login yang didasarkan pada kunci asimetris. Pengguna tidak dapat masuk menggunakan login tersebut, tetapi Mesin Database dapat mengautentikasi dirinya sendiri dengan perangkat EKM.
Jika kunci asimetris yang disimpan dalam modul EKM hilang, database tidak dapat dibuka oleh SQL Server. Jika penyedia EKM memungkinkan Anda mencadangkan kunci asimetris, Anda harus membuat cadangan dan menyimpannya di lokasi yang aman.
Opsi dan parameter yang diperlukan oleh penyedia EKM Anda dapat berbeda dari apa yang disediakan dalam contoh kode berikut. Untuk informasi selengkapnya, lihat penyedia EKM Anda.
Izin-izin
Artikel ini menggunakan izin berikut:
Untuk mengubah opsi konfigurasi dan menjalankan
RECONFIGUREpernyataan, Anda harus diberikanALTER SETTINGSizin tingkat server. IzinALTER SETTINGSsecara implisit dimiliki oleh peran server tetap sysadmin dan serveradmin.Memerlukan
ALTER ANY CREDENTIALizin.Memerlukan
ALTER ANY LOGINizin.Memerlukan
CREATE ASYMMETRIC KEYizin.CONTROLMemerlukan izin pada database untuk mengenkripsi database.
Menggunakan Transact-SQL
Salin file yang disediakan oleh penyedia EKM ke lokasi yang sesuai di komputer SQL Server. Dalam contoh ini, kita menggunakan
C:\EKM_Filesfolder .Instal sertifikat ke komputer sesuai kebutuhan penyedia EKM Anda.
Catatan
SQL Server tidak menyediakan penyedia EKM. Setiap penyedia EKM dapat memiliki prosedur yang berbeda untuk menginstal, mengonfigurasi, dan mengotorisasi pengguna. Untuk menyelesaikan langkah ini, lihat dokumentasi penyedia EKM Anda.
Di Object Explorer, sambungkan ke instans Mesin Database.
Pada bilah Standar, pilih Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE sp_configure 'EKM provider enabled', 1; GO RECONFIGURE; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll'; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '<password>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; GO -- Add the credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN [Contoso\Mary] ADD CREDENTIAL sa_ekm_tde_cred; GO -- create an asymmetric key stored inside the EKM provider USE master; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key'; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2', SECRET = '<secret>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2022; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2022 SET ENCRYPTION ON; GO
Konten terkait
- Enkripsi data transparan untuk SQL Database, SQL Managed Instance, dan Azure Synapse Analytics
- sp_configure (T-SQL)
- MEMBUAT PENYEDIA KRIPTOGRAFI (Transact-SQL)
- CREATE CREDENTIAL (T-SQL)
- MEMBUAT KUNCI ASIMETRIS (Transact-SQL)
- BUAT LOGIN (Transact-SQL)
- MEMBUAT KUNCI ENKRIPSI DATABASE (Transact-SQL)
- UBAH MASUK (Transact-SQL)
- MENGUBAH DATABASE (T-SQL)