2014. 7. 22. 11:44
MSSQL
데이타베이스 전체를 암호화해서 이동해서 복원하는 절차를 인터넷에서 찾았는데 여기에 내 스타일(?)에 맞게 다시 정리하여 올림....(자료 정리 차원에서)
/*************************************************************** *** SOURCE 데이타베이스 *** ***************************************************************/ -- 1. 마스터 키, 인증서 생성 USE master ; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*****'; GO CREATE CERTIFICATE TestSQLServerCert2 WITH SUBJECT = 'Certificate to protect TDE key' GO ---- 인증서 확인 SELECT * FROM sys.certificates -------------------------------------------------------- -- 2. 인증서 백업 BACKUP CERTIFICATE TestSQLServerCert2 TO FILE = 'TestSQLServerCert2' WITH PRIVATE KEY ( FILE = 'C:\wmpub\CustRecords\SQLPrivateKeyFile', ENCRYPTION BY PASSWORD = 'BITOM8115' ); GO -------------------------------------------------------- -- 3. 데이타베이스 생성 CREATE DATABASE CustRecords2 ; GO -------------------------------------------------------- -- 4. 데이타베이스에 암호화 적용 USE CustRecords2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE TestSQLServerCert2; GO ALTER DATABASE CustRecords2 SET ENCRYPTION ON; GO -------------------------------------------------------- -- 5. 데이타베이스에 데이타 입력 CREATE TABLE CustomerRecord (CustomerID int PRIMARY KEY, SecretData nvarchar(100) NOT NULL) ; GO INSERT CustomerRecord (CustomerID,SecretData) VALUES (23997, 'Plain text data') ; GO SELECT CustomerID, SecretData FROM CustomerRecord ; GO -------------------------------------------------------- -- 6. 데이타베이스 분리 USE master ; GO EXEC master.dbo.sp_detach_db @dbname = N'CustRecords2'; GO -------------------------------------------------------- -- 7. 마스터키와 인증서 삭제 USE master GO DROP CERTIFICATE TestSQLServerCert2; DROP MASTER KEY;
/******************************************************************* *** TARGET 데이타베이스 *** *******************************************************************/ -- 1. 마스터키 생성 USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '********'; GO ---- 인증서 확인 SELECT * FROM sys.certificates -------------------------------------------------------- --2. 인증서 복원 CREATE CERTIFICATE TestSQLServerCert2 FROM FILE = 'TestSQLServerCert2' WITH PRIVATE KEY ( FILE = 'C:\wmpub\CustRecords\SQLPrivateKeyFile', DECRYPTION BY PASSWORD = 'Certificate to protect TDE key' ); GO -------------------------------------------------------- --3. 데이타베이스 복원 CREATE DATABASE [CustRecords2] ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\CustRecords2.mdf' ), ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\CustRecords2_log.LDF' ) FOR ATTACH ; GO -------------------------------------------------------- --4. 데이타베이스 테스트 USE CustRecords2 ; GO SELECT CustomerID, SecretData FROM CustomerRecord ; GO
출처 : http://msdn.microsoft.com/ko-kr/library/ff773063.aspx#create
'MSSQL' 카테고리의 다른 글
bulk insert 을 하기 위한 구분들.. (0) | 2014.07.22 |
---|---|
6자리 숫자로 만들어진 난수 발생기 (0) | 2014.07.22 |
테이블별 데이터 개수, 인덱스 사이즈, 생성일, 마지막 수정일을 알고 싶을때... (0) | 2014.07.22 |
모든 데이타베이스 숨기기 (0) | 2014.07.22 |
랜덤 쿠폰 번호와 순차적 쿠폰 번호 발행하기 (0) | 2014.07.22 |