선택적 단계로 새로 만든 데이터베이스를 암호화할 수 있습니다. TDE(투명한 데이터 암호화)는 데이터 및 로그 파일의 실시간 I/O 암호화 및 암호 해독을 수행합니다. 이러한 종류의 암호화는 복구 중에 가용성을 위해 데이터베이스 부팅 레코드에 저장된 DEK(데이터베이스 암호화 키)를 사용합니다. 자세한 내용은 TDE(투명한 데이터 암호화) 를 참조하고 TDE로 보호된 데이터베이스를 다른 SQL Server로 이동합니다.
이 단원에서는 이미 다음 단계를 완료한 것으로 가정합니다.
Azure Storage 계정이 있습니다.
Azure Storage 계정으로 컨테이너를 만들었습니다.
읽기, 쓰기 및 목록 권한이 있는 컨테이너에 정책을 만들었습니다. SAS 키도 생성했습니다.
원본 머신에서 SQL Server 자격 증명을 만들었습니다.
4단원에 설명된 단계에 따라 데이터베이스를 만들었습니다.
데이터베이스를 암호화하려면 다음 단계를 수행합니다.
원본 컴퓨터에서 쿼리 창에서 다음 문을 수정하고 실행합니다.
-- Create a master key and a server certificate USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01'; GO CREATE CERTIFICATE MySQLCert WITH SUBJECT = 'SQL - Azure Storage Certification' GO -- Create a backup of the server certificate in the master database. -- Store TDS certificates in the source machine locally. BACKUP CERTIFICATE MySQLCert TO FILE = 'C:\certs\MySQLCert.CER' WITH PRIVATE KEY ( FILE = 'C:\certs\MySQLPrivateKeyFile.PVK', ENCRYPTION BY PASSWORD = 'MySQLKey01' );그런 다음, 다음 단계를 수행하여 원본 컴퓨터에서 새 데이터베이스를 암호화합니다.
-- Switch to the new database. -- Create a database encryption key, that is protected by the server certificate in the master database. -- Alter the new database to encrypt the database using TDE. USE TestDB1; GO -- Encrypt your database CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MySQLCert GO ALTER DATABASE TestDB1 SET ENCRYPTION ON GO
데이터베이스의 암호화 상태 및 관련 데이터베이스 암호화 키를 알아보려면 다음 문을 실행합니다.
SELECT * FROM sys.dm_database_encryption_keys;
GO
이 단원에서 사용된 Transact-SQL 문에 대한 자세한 내용은 CREATE DATABASE(SQL Server Transact-SQL), ALTER DATABASE(Transact-SQL), CREATE MASTER KEY(Transact-SQL), CREATE CERTIFICATE(Transact-SQL) 및 sys.dm_database_encryption_keys(Transact-SQL)를 참조하세요.
다음 단원: