Mengaktifkan TDE di SQL Server Menggunakan EKM
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 database master. Untuk informasi selengkapnya tentang melindungi kunci enkripsi database dengan menggunakan kunci master database, lihat Enkripsi Data Transparan (TDE). Untuk informasi tentang mengonfigurasi TDE saat SQL Server berjalan di Komputer Virtual Azure, 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.
Sebelum Anda mulai
Batasan dan Pembatasan
Anda harus menjadi pengguna dengan hak istimewa tinggi (seperti administrator sistem) untuk membuat kunci enkripsi database dan mengenkripsi database. Pengguna tersebut harus dapat diautentikasi oleh modul EKM.
Setelah memulai, Mesin Database harus membuka database. Untuk melakukan ini, 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 akan dapat mengautentikasi dirinya sendiri dengan perangkat EKM.
Jika kunci asimetris yang disimpan dalam modul EKM hilang, database tidak akan 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 di bawah ini. Untuk informasi selengkapnya, lihat penyedia EKM Anda.
Keamanan
Izin
Artikel ini menggunakan izin berikut:
Untuk mengubah opsi konfigurasi dan menjalankan pernyataan KONFIGURASI ULANG, Anda harus diberikan izin tingkat server ALTER SETTINGS. Izin UBAH PENGATURAN secara implisit dipegang oleh peran server tetap sysadmin dan serveradmin .
Memerlukan izin UBAH KREDENSIAL APA PUN.
Memerlukan izin UBAH LOGIN APA PUN.
Memerlukan izin CREATE ASYMMETRIC KEY.
Memerlukan izin CONTROL pada database untuk mengenkripsi database.
Menggunakan T-SQL
Untuk mengaktifkan TDE menggunakan EKM
Salin file yang disediakan oleh penyedia EKM ke lokasi yang sesuai di komputer SQL Server. Dalam contoh ini, kita menggunakan folder C:\EKM_Files .
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. Lihat dokumentasi penyedia EKM Anda untuk menyelesaikan langkah ini.
Di Object Explorer, sambungkan ke instans Mesin Database.
Pada bilah Standar, klik Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan.
-- Enable advanced options. sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO -- Enable EKM provider 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 = 'q*gtev$0u#D1v' 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 = 'jeksi84&sLksi01@s' 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
Untuk mengetahui informasi selengkapnya, lihat tautan berikut: