-- Master Key 생성
USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@$$word';
-- 인증서 생성
CREATE CERTIFICATE SQLCertificate WITH SUBJECT = N'SQL 암호화인증';
-- LAIGO 데이터베이스 데이터 암호화
USE LAIGO
GO
-- AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE SQLCertificate;
/*경고: 데이터베이스 암호화 키를 암호화 하는데 사용된 인증서가 백업되지 않았습니다. */
-- 사용자 데이터베이스 데이터 암호화 활성화
ALTER DATABASE LAIGO SET ENCRYPTION ON;
-- 마스터키, 인증서 백업
USE master
GO
BACKUP MASTER KEY TO FILE = 'D:\SQL\SQLMasterKey' ENCRYPTION BY PASSWORD = 'P@$$word';
GO
BACKUP CERTIFICATE SQLCertificate TO FILE = 'D:\SQL\SQLCert'
GO
-- 인증서 확인
SELECT name, certificate_id, pvt_key_encryption_type, pvt_key_encryption_type_desc, subject
FROM sys.CERTIFICATES
/* 데이터가 성공적으로 암호화 되었으며 복원을 위해서는 반드시 인증서가 필요합니다. */
-- TDE 해제 및 인증서, 마스터키를 삭제하는 방법은 아래와 같습니다.
USE master
GO
ALTER DATABASE LAIGO SET ENCRYPTION OFF;
USE LAIGO
GO
DROP DATABASE ENCRYPTION KEY;
USE master
GO
DROP CERTIFICATE SQLCertificate;
DROP MASTER KEY;
[참고자료]
TDE(Transparent Data Encryption) 이해
http://msdn.microsoft.com/ko-kr/library/bb934049.aspx
CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
http://technet.microsoft.com/en-us/library/bb677241.aspx
BACKUP MASTER KEY (Transact-SQL)
http://technet.microsoft.com/en-us/library/ms174387.aspx
RESTORE MASTER KEY (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms186336.aspx
CREATE CERTIFICATE (Transact-SQL)
http://technet.microsoft.com/en-us/library/ms187798.aspx
작성자 : Lai Go / 작성일자 : 2009.12.21