Here you have different options.
Create a symmetric key:
CREATE CERTIFICATE cert_sales WITH SUBJECT = N'Sales certificate', START_DATE = N'2009-01-01', EXPIRY_DATE = N'2018-12-31'; CREATE SYMMETRIC KEY symkey_sales WITH ALGORITHM = AES_256, ENCRYPTION BY CERTIFICATE cert_sales
Encrypt data:
TRUNCATE TABLE sales; OPEN SYMMETRIC KEY symkey_sales DECRYPTION BY CERTIFICATE cert_sales; INSERT INTO sales() SELECT a, ENCRYPTBYKEY(Key_Guid(N'symkey_sales'), B) FROM T2; CLOSE SYMMETRIC KEY symkey_sales;
Decrypt data:
OPEN SYMMETRIC KEY symkey_sales DECRYPTION BY CERTIFICATE cert_sales; SELECT a, CAST(DecryptByKey(B) as nvarchar(100)) FROM sales; CLOSE SYMMETRIC KEY symkey_sales;
- You can use asymmetric encryption for your data.
- You can use Transparrent Data Encryption to encrypt all database files:
Create master key:
USE master go CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'My$Strong$Password$123'
Create Certificate:
CREATE CERTIFICATE DEK_EncCert WITH SUBJECT = 'DEK Encryption Certificate'
Create DEK:
USE MySecretDB go CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE DEK_EncCert
Enable Encryption:
ALTER DATABASE MySecretDB SET ENCRYPTION ON
- You can use BitLocker - full volume encryption
source share