Create master key, certificates and DEK sample

Use the T-SQL statement sample to do the following:

  • Create a master key

  • Create master certificate in every user database

  • Back up the master certificate in every user database

  • Create a database certificate

  • Backup the database certificate

  • Create a Database Encryption Key (DEK)

Sample

USE master;
GO
        CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'VeryStr0ngP@ssw0rdmasterkey!'
        --Verify existence of a master key
      
        SELECT 
   b.name, a.crypt_type_desc
        FROM  sys.key_encryptions a INNER JOIN sys.symmetric_keys b ON a.key_id = b.symmetric_key_id
        WHERE b.name = '##MS_DatabaseMasterKey##';
--Create master certificate in every user database
        CREATE CERTIFICATE MasterCert
        WITH SUBJECT = 'WFO TDE Certificate';
 
        --Back up the master certificate in every user database
BACKUP CERTIFICATE MasterCert TO FILE = 'E:\saveddoc\MyServerCert.bak'
        WITH PRIVATE KEY
  (
  FILE = 'E:\ saveddoc\MyServerCert.pvk',
  ENCRYPTION BY PASSWORD = 'MyStr0ngP@ssw0rdF0rbackup'    );
        GO
USE database_name
        --Create a database certificate
      
        CREATE CERTIFICATE wfocert
ENCRYPTION BY PASSWORD = 'StrongPa$$WordForEncryption!'
        WITH SUBJECT = 'protecting our database data',   EXPIRY_DATE = '20801231';
        GO
      
        --Backup the database certificate
BACKUP CERTIFICATE wfocert TO FILE = 'E:\saveddoc \wfoccCert.bak'
        WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = 'StrongPa$$WordForDB1!' ,  
FILE ='E:\saveddoc\wfoccCert',   
ENCRYPTION BY PASSWORD = 'BackupStrongPa$$Word'StrongPa$$WordForDB1!' )
 
--Create a Database Encryption Key (DEK)
        --Replace database with each user database to encrypt
      
        CREATE DATABASE ENCRYPTION KEY
        WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MasterCert;
        GO