안녕하세요
한창 MS-SQL을 익히고 있는 초보 DBA입니다.
TDE를 적용시키다가 문득 드는 의문이 있어서요.
TDE가 적용되었던 데이터베이스를 Detach 후에 새로운 서버로 Attach 시키려고 할 때 기존의 서버에도 이미 TDE가 적용된 데이터베이스가 기 존재하면 어떻게 하죠? 말이 헷갈리네요 ㅠ
그러니까 정리하면 아래와 같습니다.
A 서버 내: a 데이터베이스(TDE가 적용되어있음)
B 서버 내: b 데이터베이스(TDE가 적용되어있음)
1. A 서버 내 데이터베이스 a를 Detach 함
2. B 서버로 데이터베이스 a를 Attach 하고 싶음
--이럴 경우 어떻게 해야하죠? 제가 생각했을 때는 아래와 같이 해야한다고 생각하는데요
1. B 서버내의 데이터베이스 b의 TDE 적용을 일단 OFF, 기존의 Certificate랑 MASTER KEY를 Drop
2. A 서버에서 백업한 Master key, Certificate, Service Master key을 B 서버에서 복원
3. 복원된 Master key, Certificate, Service Master key를 가지고 B 서버내에서 다시 데이터베이스 a,b를 TDE 적용 시킴
다른 방법은 없을까요?
---------------------------------------------------------------------------------------------------------------------------------------------------------
또 하나 궁금한게 ㅠ
하나의 서버 안에서 다른 Master key, Certificate를 가지고
각각의 데이터베이스에 TDE를 적용시킬 순 없을까요?
Master key 자체가 master 데이터베이스에서 만들어야 하는 거는 알고 있는데요ㅠ
다른 데이터베이스에서도 일단은 master key랑 certificate가 생성되긴 되거든요(msdb에서 해보았습니다.)
그런데 DEK를 만들 때는 master 데이터베이스에서 만든 certificate를 가지고 생성되더라구요 ㅠ
다른 방법이 없을 까요?
답변 부탁드립니다. 감사합니다.
Comment 2
-
수노
2013.05.31 14:59
-
쓸만한게없네(윤선식)
2013.05.31 18:08
우선..
그림부터.
http://msdn.microsoft.com/ko-kr/library/bb934049.aspx
보시는 것처럼 TDE에서 User Database를 Master Database의 인증서가 암호화 키를 암호화하는 구조이기 때문에,
서버가 달라지면 해당 Instance Master Database의 인증서로 암호화를 진행해야 합니다.
대칭키 암호화나 비대칭키 암호화도...
암호화된 데이터 자체가 변경되는 것은 아니지만, 데이터베이스 마스터키는 Instance의 서비스 마스터키로 보호되어야 하죠.
(어려운가요???)
하여간 위 그림을 잘 이해하시면 편하실 듯 합니다.
PS. 수노님. "관리하기에 위험하다"의 기준이 어떤 것인지요? 혹 제가 놓치고 있는 부분이 있다면 말씀해 주세요.
TDE는 서버에 적용되는 옵션이라서 두번째 질문처럼 디비 따로따로는 안됩니다.
그리고, 제가 생각하기에 다른 서버에 복원하려면 얘기해주신 방법 말고는 딱히 떠오르지 않네요 ^^;
TDE..거는건 쉬운데.. 나중에 관리하기는 좀 위험하죠 ㅋ