다음을 통해 공유


DAC 패키지로 Always Encrypted를 사용하여 열 암호화 구성

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance

DACPAC라고도 하는 DAC(데이터 계층 애플리케이션) 패키지는 테이블 내의 테이블 및 열을 포함하여 모든 SQL Server 개체를 정의하는 SQL Server 데이터베이스 배포의 이식 가능한 단위입니다. DACPAC를 데이터베이스에 게시하면(DACPAC를 사용하여 데이터베이스를 업그레이드할 때) 대상 데이터베이스의 스키마가 DACPAC의 스키마와 일치하도록 업데이트됩니다. SQL Server Management Studio, PowerShell 또는 sqlpackage에서 데이터 계층 애플리케이션 업그레이드 마법사를 사용하여 DACPAC를 게시할 수 있습니다.

이 문서에서는 DACPAC 또는/및 대상 데이터베이스에 Always Encrypted로 보호되는 열이 포함된 경우 데이터베이스 업그레이드에 대한 특별한 고려 사항을 설명합니다. DACPAC의 열에 대한 암호화 체계가 대상 데이터베이스의 기존 열에 대한 암호화 체계와 다른 경우 DACPAC를 게시하면 열에 저장된 데이터를 암호화, 암호 해독 또는 다시 암호화할 수 있습니다. 세부 정보는 다음 테이블을 참조하세요.

조건 작업
DACPAC에서는 열이 암호화되고 데이터베이스에서는 암호화되지 않습니다. 열의 데이터가 암호화됩니다.
DACPAC에서는 열이 암호화되지 않고 데이터베이스에서는 암호화됩니다. 열의 데이터 암호가 해독됩니다(열에 대한 암호화가 제거됨).
이 열은 DACPAC와 데이터베이스 모두에서 암호화되지만 DACPAC의 열은 데이터베이스의 해당하는 열과 다른 암호화 유형 또는/및 다른 열 암호화 키를 사용합니다. 열의 데이터 암호가 해독된 다음 DACPAC의 암호화 구성에 맞게 다시 암호화됩니다.

DAC 패키지를 배포하면 Always Encrypted에 사용되는 열 마스터 키 또는 열 암호화 키의 메타데이터 개체가 생성되거나 제거될 수도 있습니다.

성능 고려 사항

암호화 작업을 수행하려면 DACPAC를 배포하는 데 사용하는 도구가 데이터를 데이터베이스 밖으로 이동시켜야 합니다. 이 도구는 데이터베이스에서 원하는 암호화 구성을 사용하여 새 테이블을 만들고, 원래 테이블에서 모든 데이터를 로드하고, 요청된 암호화 작업을 수행하고, 데이터를 새 테이블에 업로드한 다음 원래 테이블을 새 테이블로 바꿉니다. 암호화 작업을 실행하는 데는 시간이 오래 걸릴 수 있습니다. 그동안 데이터베이스는 트랜잭션을 작성할 수 없습니다.

참고 항목

SQL Server 2019(15.x)를 사용하고 SQL Server 인스턴스가 보안 Enclave로 구성된 경우 데이터베이스 외부로 데이터를 이동하지 않고도 바로 암호화 작업을 실행할 수 있습니다. 보안 enclave를 사용한 Always Encrypted를 이용하여 내부 열 암호화 구성을 참조하세요. DACPAC 배포에는 현재 위치 암호화를 사용할 수 없습니다.

Always Encrypted가 설정된 경우 DAC 패키지를 게시할 수 있는 권한

Always Encrypted가 DACPAC 또는/및 대상 데이터베이스에 설정된 경우 DAC 패키지를 게시하려면 DACPAC의 스키마와 대상 데이터베이스 스키마 간의 차이에 따라 아래 권한의 일부 또는 전부가 필요할 수 있습니다.

ALTER ANY COLUMN MASTER KEY, ALTER ANY COLUMN ENCRYPTION KEY, VIEW ANY COLUMN MASTER KEY DEFINITION, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

업그레이드 작업에서 데이터 암호화 작업을 트리거하는 경우에는 열 마스터 키에 액세스하여 사용할 수 있는 키 저장소 권한도 필요합니다. 키 저장소 권한에 대한 자세한 정보는 Always Encrypted에 대한 열 마스터 키 생성 및 저장을 참조하고 키 저장소와 관련된 섹션을 확인하세요.

다음 단계

참고 항목