2018. 11. 19. 17:59

TDE(Transparent Data Encryption)

TDE(Transparent Data Encryption)   진행시에는 필히 Enterprise 버전에서 하시기 바랍니다.(계발자버전에서도됨)

(Standard 버전에서 하다가 왜 안되지 안되지 100번 했음)

 

2021년 6월 추가.

SQL 2019 Standard 버전에서도  TDE 옵션이 지원됩니다.

 

 

1.

--TDE상태 확인.

-- 생성된 인증서 확인.

SELECT name, certificate_id, pvt_key_encryption_type, pvt_key_encryption_type_desc, subject 

FROM sys.CERTIFICATES

 

 

-- 불필요 인증서 삭제.

use master;

drop certificate YD_TEST_cert;

 

--마스터키생성

USE master

GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password2122222'

GO

 

-- Master 인증서 백업

USE master

BACKUP SERVICE MASTER KEY TO FILE = 'D:\Service_master.key' ENCRYPTION BY PASSWORD = 'password2122222'

GO

 

BACKUP MASTER KEY TO FILE = 'D:\Database_master.key' ENCRYPTION BY PASSWORD = 'password2122222'

GO

 

 

-- (추가)값 0을 반환시, 서비스 마스터키에 의한 마스터 키의 자동암호 해독이 사용하지 않도록설정.
USE master
GO
select is_master_key_encrypted_by_server from sys.databases where name = 'master'

 

 

-- 추가) 마스터 인증서 삭제(인증서가 있을경우 삭제되지 않는다)

USE master;

drop master key;

GO

 

 

-- 인증서 생성.

CREATE CERTIFICATE YD_TEST_cert WITH SUBJECT = 'password2122222'

GO

 

 

-- DB 암호화키 생성.

USE YD_TEST

GO

 

CREATE DATABASE ENCRYPTION KEY

WITH ALGORITHM = AES_256

ENCRYPTION BY SERVER CERTIFICATE YD_TEST_cert 

GO

 

 

-- DB 암호화 적용

use YD_TEST

go

ALTER DATABASE YD_TEST

SET ENCRYPTION ON

go

 

 

-- 키백업

use master

backup Certificate YD_TEST_Cert To File='D:\YD_TEST_Cert.cer' 

with Private Key 

(File='D:\YD_Test_Cert.pvk',ENCRYPTION By Password='m123bile111**11')

go

 

 

----------------------------------------------------------------------------------------------------------------

 

--DB 복원진행.

--TDE 암호화된 백업 파일이 있다면 아래와 같이 진행한다.

--이전에 생성되었던 키 암호와 동일하게 한디.

CREATE CERTIFICATE Mypage

  FROM FILE = 'D:\Keyfile\MyPage_Cert.cer'

  WITH PRIVATE KEY ( 

    FILE = 'D:\Keyfile\Mypage_cert.pvk',

 DECRYPTION BY PASSWORD = '2134do223dddd'

  );

 

-- DB 복원

USE [master]

RESTORE DATABASE [Mypage] 

FROM  DISK = N'D:\SQL_Backup\Mypage_backup.bak' 

WITH  FILE = 1,  

MOVE N'Mypage_Data' TO N'D:\SQL_DATA\Mypage.MDF',  

MOVE N'Mypage_Log' TO N'D:\SQL_DATA\Mypage.LDF',  

NOUNLOAD,  STATS = 5

GO