SQL Server의 가져오기 및 내보내기 마법사에서 Always Encrypted를 사용하여 열로 또는 열에서 데이터를 마이그레이션할 수 있습니다

적용 대상:SQL ServerAzure SQL 데이터베이스Azure SQL Managed Instance

SQL Server 가져오기 및 내보내기 마법사는 소스에서 목적지로 데이터를 복사할 수 있는 도구입니다. 이 글에서는 원본, 대상 또는 둘 다가 Always Encrypted로 보호되는 열을 포함하는 SQL Server 데이터베이스인 경우 SQL Server 가져오기 및 내보내기 마법사를 사용하는 방법을 설명합니다.

마이그레이션 시나리오

SQL Server 가져오기 및 내보내기 마법사를 사용하여 암호화된 열로 또는 암호화된 열에서 데이터를 마이그레이션하는 다음과 같은 시나리오를 구현할 수 있습니다.

마이그레이션할 때 일반 텍스트 데이터 암호화

데이터 소스에 평문 데이터가 포함되어 있고 목적지가 암호화된 열을 포함하는 SQL Server 데이터베이스라면, SQL Server 가져오기 및 내보내기 마법사를 사용해 원본에서 평문 데이터를 가져와 암호화한 뒤, 암호화된 데이터(암호문)를 목적지 데이터베이스의 암호화된 열로 복사할 수 있습니다. 이 마이그레이션 시나리오에서 데이터 소스는 SQL Server 가져오기 및 내보내기 마법사가 지원하는 파일, SQL Server 데이터베이스, 또는 다른 데이터베이스 시스템의 데이터베이스 등 모든 데이터 저장소일 수 있습니다.

SQL Server 가져오기 및 내보내기 마법사가 데이터를 암호화할 수 있도록 하기 위해, 대상 데이터베이스 연결에 대해 Always Encrypted를 활성화하고, 대상 데이터베이스 열의 데이터를 보호하는 키에 액세스할 수 있도록 하세요. 자세한 내용은 데이터베이스 연결에 Always Encrypted 사용 및 사용 안 함 및 마이그레이션 중 데이터 암호화 또는 암호 해독 권한을 참조하세요.

마이그레이션할 때 암호화된 데이터 암호 해독

SQL Server 데이터베이스의 암호화된 데이터베이스 열에 저장된 데이터를 마이그레이션할 경우, SQL Server 가져오기 및 내보내기 마법사를 설정하여 데이터를 복호화하고 복호화된 (평문) 데이터를 목적지로 복사할 수 있습니다. 목적지는 SQL Server 가져오기 및 내보내기 마법사가 지원하는 모든 데이터 저장소일 수 있으며, 파일, SQL Server 데이터베이스, 또는 다른 데이터베이스 시스템의 데이터베이스 등이 될 수 있습니다.

SQL Server 가져오기 및 내보내기 마법사가 데이터를 복호화할 수 있도록 하려면 소스 데이터베이스 연결에 대해 Always Encrypted를 활성화하고, 소스 데이터베이스 열의 데이터를 보호하는 키에 액세스할 수 있도록 하세요. 자세한 내용은 데이터베이스 연결에 Always Encrypted 사용 및 사용 안 함 및 마이그레이션 중 데이터 암호화 또는 암호 해독 권한을 참조하세요.

마이그레이션할 때 데이터 재암호화

소스 SQL Server 데이터베이스의 암호화된 열에서 동일하거나 다른 SQL Server 데이터베이스의 암호화된 열로 데이터를 복사하는 경우, SQL Server 가져오기 및 내보내기 마법사를 설정하여 데이터를 소스에서 가져온 후 복호화하고, 대상 데이터베이스의 암호화된 열에 삽입하기 전에 다시 암호화하도록 할 수 있습니다. 대상 열의 스키마(예: 열 데이터 타입, 암호화 타입, 컬럼 암호화 키)가 소스 컬럼의 스키마와 다를 때 이 방법을 사용하세요.

SQL Server 가져오기 및 내보내기 마법사가 데이터를 암호화 및 복호화할 수 있도록 하려면, 소스 데이터베이스 연결과 대상 데이터베이스 연결 모두에 대해 Always Encrypted를 활성화하고, 소스 및 대상 데이터베이스 열의 데이터를 보호하는 키에 액세스할 수 있어야 합니다. 자세한 내용은 데이터베이스 연결에 Always Encrypted 사용 및 사용 안 함 및 마이그레이션 중 데이터 암호화 또는 암호 해독 권한을 참조하세요.

마이그레이션 중에 암호화된 데이터 유지

소스 SQL Server 데이터베이스의 암호화된 열에서 동일하거나 다른 SQL Server 데이터베이스의 암호화된 열로 데이터를 복사하고, 대상 열이 소스 열과 동일한 스키마를 사용하며, 동일한 데이터 타입, 암호화 유형, 열 암호화 키를 포함한다면, SQL Server 가져오기 및 내보내기 마법사를 설정하여 소스 열에서 암호문을 불러와, 암호화된 데이터(암호문)를 대상 SQL Server 데이터베이스의 암호화된 열에 삽입할 수 있습니다.

이 경우에는 SQL Server를 지원하는 데이터 제공자를 사용하여 소스 또는 목적지 SQL Server 데이터베이스에 연결하세요. 목적지 데이터베이스에 연결하기 위해 항상 암호화(Always Encrypted)를 지원하는 제공업체를 사용한다면, 데이터베이스 연결에서 항상 암호화가 비활성화되어 있는지 확인하세요. 자세한 내용은 데이터베이스 연결에 Always Encrypted 사용 및 사용 안 함을 참조하세요.

또한 SQL Server 가져오기 및 내보내기 마법사가 대상 데이터베이스에 연결할 때 사용하는 데이터베이스 주체(사용자)에 대해 ALLOW_ENCRYPTED_VALUE_MODIFICATIONS 옵션이 ON로 설정되어 있는지 확인해야 합니다. 이 옵션은 대량 복사 작업 시 서버의 암호화 메타데이터 검사를 억제하여 마법사가 암호화된 데이터를 복호화 없이 목적지 데이터베이스에 대량 삽입할 수 있게 합니다. 자세한 내용은 ' 항상 암호화된 칼럼에 암호화된 데이터를 대량 적재'를 참조하세요.

데이터베이스 연결에 Always Encrypted 사용 및 사용 안 함

마이그레이션 시나리오에서 SQL Server 가져오기 및 내보내기 마법사가 데이터를 암호화하거나 복호화해야 한다면, Always Encrypted를 지원하는 데이터 제공자를 사용하여 소스 SQL Server 데이터베이스 연결, 목적지 SQL Server 데이터베이스 연결 또는 둘 다를 설정하세요. 또한 해당 연결에 대해 항상 암호화(Always Encrypted)를 활성화해야 합니다.

마법사가 해당 연결의 데이터를 암호화하거나 해독할 필요가 없으면 해당 연결에 대해 어떤 데이터 제공자든 사용하세요.

SQL Server 가져오기 및 내보내기 마법사의 다음 데이터 공급자는 Always Encrypted를 지원합니다.

마이그레이션 중 데이터 암호화 또는 암호 해독 권한

SQL Server 소스 또는 대상 데이터베이스에 저장된 데이터를 암호화하거나 복호화하려면 소스 데이터베이스에 VIEW ANY COLUMN MASTER KEY DEFINITION 및 VIEW ANY COLUMN ENCRYPTION KEY DEFINITION 권한이 필요합니다. 열 마스터 키에 액세스하고 사용하려면 키 저장소 권한도 필요합니다. 키 관리 작업에 필요한 키 저장소 권한에 대한 자세한 정보는 Always Encrypted용 열 마스터 키 생성 및 저장을 참고하시고, 사용 중인 키 저장소에 해당하는 섹션을 찾으세요.