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