Mengaktifkan TDE di SQL Server Menggunakan EKM

Berlaku untuk: SQL Server (semua versi yang didukung)

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 Azure VM, lihat Extensible Key Management 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 INFO MASUK 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

  1. Salin file yang disediakan oleh penyedia EKM ke lokasi yang sesuai di komputer SQL Server. Dalam contoh ini, kita menggunakan folder C:\EKM_Files .

  2. 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.

  3. Di Object Explorer, sambungkan ke instans Mesin Database.

  4. Pada bilah Standar, klik Kueri Baru.

  5. 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 AdventureWorks2012 ;  
    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 AdventureWorks2012   
    SET ENCRYPTION ON ;  
    GO  
    

Untuk mengetahui informasi selengkapnya, lihat tautan berikut:

Lihat juga

Enkripsi Data Transparan dengan Database Azure SQL