보안 Enclave를 사용한 Always Encrypted
적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당 Azure SQL 데이터베이스
보안 Enclave를 사용한 Always Encrypted는 바로 암호화 및 보다 풍부한 기밀 쿼리를 사용하여 Always Encrypted의 기밀 컴퓨팅 기능을 확장합니다. 보안 Enclave가 있는 Always Encrypted는 SQL Server 2019(15.x) 이상 및 Azure SQL Database에서 사용할 수 있습니다.
2015년의 Azure SQL Database 및 SQL Server 2016(13.x)에서 도입된 Always Encrypted는 맬웨어 및 권한 수준이 높은 권한 없는 사용자로부터 중요한 데이터의 기밀성을 보호합니다. DBA(데이터베이스 관리자), 컴퓨터 관리자, 클라우드 관리자 또는 서버 인스턴스, 하드웨어 등에 대해 합법적인 액세스 권한이 있지만 실제 데이터의 일부 또는 전체에 액세스할 수 없는 다른 모든 사용자가 여기에 해당합니다.
이 문서에 설명된 향상된 기능을 사용하지 않는 Always Encrypted는 클라이언트 쪽에서 데이터를 암호화하여 데이터 또는 해당 암호화 키가 데이터베이스 엔진 내에서 일반 텍스트로 표시되지 않게 하여 데이터를 보호합니다. 결과적으로, 데이터베이스 내에 있는 암호화된 열에 대한 기능은 심각하게 제한되었습니다. 데이터베이스 엔진 암호화된 데이터에 관해 수행할 수 있는 유일한 작업은 같음 비교입니다(결정적 암호화에서만 사용할 수 있음). 암호화 작업(초기 데이터 암호화 또는 키 회전), 더 풍부한 쿼리(예: 패턴 일치) 등 다른 모든 작업은 데이터베이스 내에서 지원되지 않습니다. 사용자는 클라이언트 쪽에서 이러한 작업을 수행하려면 데이터베이스 외부로 데이터를 이동해야 합니다.
보안 Enclave를 사용한 Always Encrypted는 서버 측 보안 Enclave 내부의 일반 텍스트 데이터에 대한 일부 계산을 허용하여 이러한 제한 사항을 해결합니다. 보안 Enclave는 데이터베이스 엔진 프로세스 내에서 보호되는 메모리 영역입니다. 보안 Enclave는 데이터베이스 엔진의 나머지 부분 및 호스팅 머신의 다른 프로세스에서 불투명 상자로 표시됩니다. 디버거를 사용하더라도 외부에서 Enclave 내의 데이터나 코드를 볼 수 없습니다. 해당 속성을 사용하면 데이터 기밀성 손상 없이 일반 텍스트 형식의 암호화 키 및 중요한 데이터에 안전하게 액세스할 수 있는 보안 Enclave의 ‘신뢰 실행 환경’이 생성됩니다.
Always Encrypted는 다음 다이어그램에 설명된 대로 보안 Enclave를 사용합니다.
애플리케이션에서 제출한 Transact-SQL 문을 구문 분석할 때 데이터베이스 엔진에서는 보안 Enclave를 사용해야 하는 암호화된 데이터의 모든 작업이 문에 포함되어 있는지 확인합니다. 해당 문의 경우:
클라이언트 드라이버는 작업에 필요한 열 암호화 키를 보안 Enclave(보안 채널을 통해)로 보내고 실행을 위해 문을 제출합니다.
문을 처리할 때 데이터베이스 엔진에서는 암호화된 열의 암호화 작업 또는 계산을 보안 Enclave에 위임합니다. 필요한 경우 Enclave는 데이터의 암호를 해독하고 일반 텍스트를 기반으로 계산을 수행합니다.
문을 처리하는 동안 데이터 및 열 암호화 키는 둘 다 보안 Enclave 외부의 데이터베이스 엔진에서 일반 텍스트로 공개되지 않습니다.
지원되는 클라이언트 드라이버
보안 Enclave와 함께 Always Encrypted를 사용하려면 애플리케이션에서 이 기능을 지원하는 클라이언트 드라이버를 사용해야 합니다. Enclave 계산 및 Enclave 증명을 사용하도록 애플리케이션 및 클라이언트 드라이버를 구성합니다(아래 보안 Enclave 증명 섹션 참조). 지원되는 클라이언트 드라이버 목록을 비롯한 자세한 내용은 Always Encrypted를 사용하여 애플리케이션 개발을 참조하세요.
지원되는 Enclave 기술
Always Encrypted는 다음 Enclave 기술(또는 Enclave 형식)을 지원합니다.
- VBS(가상화 기반 보안) Enclave(가상화 기반 보안 보안 모드 또는 VSM Enclave라고도 함)는 Windows 하이퍼바이저를 사용하며 특별한 하드웨어를 요구하지 않는 소프트웨어 기반 기술입니다.
- Intel SGX(Intel Software Guard Extensions) Enclaves - 하드웨어 기반의 신뢰 실행 환경 기술입니다.
데이터베이스에 사용할 수 있는 Enclave의 유형은 데이터베이스를 호스팅하는 SQL 제품(Azure SQL 데이터베이스 vs. SQL Server) 및(Azure SQL 데이터베이스의 경우) 데이터베이스 구성에 따라 달라집니다.
SQL Server 2019(15.x) 이상에서 Always Encrypted는 VBS Enclave를 지원합니다. (Intel SGX Enclave는 지원되지 않습니다.)
Azure SQL 데이터베이스에서 데이터베이스는 데이터베이스가 실행되도록 구성된 하드웨어에 따라 Intel SGX Enclave 또는 VBS Enclave를 사용할 수 있습니다.
- DC 시리즈 하드웨어 구성(vCore 구매 모델에서 사용 가능)을 사용하는 데이터베이스는 Intel SGX Enclave를 사용합니다.
- VCore 구매 모델에서 DC 시리즈 이외의 구성을 사용하는 데이터베이스와 DTU 구매 모델을 사용하는 데이터베이스는 VBS Enclave를 사용하도록 구성할 수 있습니다.
참고 항목
VBS Enclave는 현재 Jio India Central을 제외한 모든 Azure SQL Database 지역에서 사용할 수 있습니다.
각 Enclave 형식 공급자가 제공하는 보호 수준에 대한 중요한 정보는 보안 고려 사항 섹션을 참조하세요.
보안 개체 Enclave 증명
Enclave 증명은 악의적인 관리자가 Enclave 코드 또는 해당 환경을 변조하는 공격을 감지하는 데 도움이 되는 심층 방어 메커니즘입니다.
Enclave 증명을 사용하면 앱이 중요한 데이터를 처리하기 위해 Enclave를 사용하기 전에 클라이언트 애플리케이션이 데이터베이스에 대한 보안 Enclave에 대한 신뢰를 설정할 수 있습니다. 증명 워크플로는 Enclave가 정품 VBS 또는 Intel SGX Enclave이고 그 안에서 실행되는 코드가 Always Encrypted용 Microsoft 서명 Enclave 라이브러리인지 확인합니다. 증명 중에 애플리케이션 내의 클라이언트 드라이버와 데이터베이스 엔진 모두 클라이언트 지정 끝점을 사용하여 외부 증명 서비스와 통신합니다.
Always Encrypted는 다음 두 증명 서비스 중 하나를 사용할 수 있습니다.
- Microsoft Azure Attestation - 클라우드 기반 증명 솔루션.
- Windows Defender System Guard 런타임 증명을 구현하는 HGS(호스트 보호 서비스)입니다.
애플리케이션에 보안 Enclave를 사용하여 Always Encrypted를 사용하려면 애플리케이션에서 클라이언트 드라이버의 구성에서 증명 프로토콜을 설정해야 합니다. 증명 프로토콜 값은 1) 클라이언트 앱이 증명을 사용할지 여부를 결정하고, 그렇다면 2) 사용할 증명 서비스 유형을 지정합니다. 아래 테이블에서는 유효한 SQL 제품 및 Enclave 형식 조합에 대해 지원되는 증명 프로토콜을 캡처합니다.
호스팅 제품 | Enclave 형식 | 지원되는 증명 프로토콜 |
---|---|---|
SQL Server 2019(15.x) 이상 | VBS enclave | HGS, 증명 없음 |
Azure SQL Database | SGX Enclave(DC 시리즈 데이터베이스) | Microsoft Azure Attestation |
Azure SQL Database | VBS enclave | 증명 없음 |
몇 가지 중요한 사항은 다음과. 같습니다.
- SQL Server 2019(15.x)에서 VBS Enclave를 증명하려면 HGS가 필요합니다. 증명 없이 VBS Enclave를 사용할 수도 있습니다(최신 클라이언트 드라이버가 필요).
- Azure SQL Database에서 Intel SGX Enclave(DC 시리즈 데이터베이스)를 사용하는 경우 증명은 필수이며 Microsoft Azure Attestation을 사용해야 합니다.
- Azure SQL Database VBS Enclave는 증명을 지원하지 않습니다.
자세한 내용은 다음을 참조하세요.
용어
Enclave 사용하다 키
보안 Enclave를 사용한 Always Encrypted는 Enclave 사용 키의 개념을 소개합니다.
- Enclave 사용 열 마스터 키 – 데이터베이스 내 열
master
키 메타데이터 개체에ENCLAVE_COMPUTATIONS
속성을 지정한 열master
키입니다. 열master
마스터 키 메타데이터 개체에는 메타데이터 속성의 유효한 서명도 포함되어야 합니다. 자세한 내용은 CREATE COLUMN MASTER KEY(Transact-SQL)를 참조하세요. - Enclave 사용 열 암호화 키 - Enclave 사용 열
master
키로 암호화된 열 암호화 키입니다. Enclave 사용 열 암호화 키만 보안 Enclave 내에서 계산에 사용할 수 있습니다.
자세한 정보는 보안 Enclave를 사용한 Always Encrypted 키 관리를 참조하세요.
Enclave 사용 열
Enclave 사용 열은 Enclave 사용 열 암호화 키로 암호화된 데이터베이스 열입니다.
Enclave 사용 열의 기밀 컴퓨팅 기능
보안 Enclave를 사용하는 Always Encrypted의 두 가지 주요 이점은 내부 암호화 및 풍부한 기밀 쿼리입니다.
바로 암호화
내부 암호화를 사용하면 데이터를 데이터베이스 외부로 이동하지 않고도 보안 Enclave 내의 데이터베이스 열에 대한 암호화 작업을 수행할 수 있습니다. 내부 암호화는 암호화 작업의 성능과 안정성을 향상시킵니다. ALTER TABLE(Transact-SQL) 문을 사용하여 내부 암호화를 수행할 수 있습니다.
내부에서 지원되는 암호화 작업은 다음과 같습니다.
- Enclave 사용 열 암호화 키를 사용하여 일반 텍스트 열 암호화
- 암호화된 Enclave 사용 열을 다시 암호화하여 다음을 수행합니다.
- 열 암호화 키 회전 - 새 Enclave 사용 열 암호화 키로 열을 다시 암호화합니다.
- Enclave 사용 열의 암호화 유형을 변경합니다(예: 결정적 유형에서 임의 유형으로).
- Enclave 사용 열에 저장된 데이터 암호 해독(열을 일반 텍스트 열로 변환)
암호화 작업에 관련된 열 암호화 키가 Enclave를 사용하는 한, 결정적 암호화와 임의 암호화를 모두 사용하여 내부 암호화가 허용됩니다.
기밀 쿼리
참고 항목
SQL Server 2022(16.x)는 암호화된 열에서의 JOIN, GROUP BY 및 ORDER BY 작업을 사용하여 기밀 쿼리를 추가로 지원합니다.
기밀 쿼리는 보안 Enclave 내에서 수행되는 Enclave 사용 열의 작업과 관련된 DML 쿼리입니다.
보안 Enclave 내에서 지원되는 작업은 다음과 같습니다.
작업 | Azure SQL Database | SQL Server 2022(16.x) | SQL Server 2019 (15.x) |
---|---|---|---|
비교 연산자 | 지원됨 | 지원됨 | 지원됨 |
BETWEEN(Transact-SQL) | 지원됨 | 지원됨 | 지원됨 |
IN(Transact-SQL) | 지원됨 | 지원됨 | 지원됨 |
LIKE(Transact-SQL) | 지원됨 | 지원됨 | 지원됨 |
DISTINCT | 지원됨 | 지원됨 | 지원됨 |
조인 | 지원됨 | 지원됨 | 중첩된 루프 조인만 지원됨 |
SELECT - ORDER BY 절(Transact-SQL) | 지원됨 | 지원됨 | 지원되지 않음 |
SELECT - GROUP BY- Transact-SQL | 지원됨 | 지원됨 | 지원되지 않음 |
참고 항목
보안 Enclave 내에서 위의 작업에는 임의 암호화가 필요합니다. 결정적 암호화는 지원되지 않습니다. 결정적 암호화를 사용하는 열에 대해 같음 비교 작업을 계속 사용할 수 있습니다.
데이터베이스의 호환성 수준은 SQL Server 2022(160) 이상으로 설정되어야 합니다.
Azure SQL 데이터베이스 및 SQL Server 2022(16.x)에서 문자열 열(char
, nchar
)에 Enclave를 사용하는 기밀 쿼리를 수행하려면 열에서 이진 코드 포인트(_BIN2) 데이터 정렬 또는 UTF-8 데이터 정렬을 사용해야 합니다. SQL Server 2019(15.x)에서는 a_BIN2 데이터 정렬이 필요합니다.
자세한 정보는 보안 Enclave를 사용하여 Transact-SQL 문 실행을 참조하세요.
Enclave 사용 열의 인덱스
임의 암호화를 사용하여 Enclave 사용 열에 비클러스터형 인덱스를 만들어 보안 Enclave를 사용하는 기밀 DML 쿼리를 더 빠르게 실행할 수 있습니다.
임의 암호화를 사용하여 암호화된 열의 인덱스가 중요한 데이터를 누출하지 않도록 하기 위해 인덱스 데이터 구조(B-트리)의 키 값은 일반 텍스트 값에 따라 암호화되고 정렬됩니다. 일반 텍스트 값을 기준으로 정렬하는 것은 Enclave 내에서 쿼리를 처리하는 데에도 유용합니다. 데이터베이스 엔진의 쿼리 실행기가 Enclave 내의 계산을 위해 암호화된 열의 인덱스를 사용하는 경우 인덱스를 검색하여 열에 저장된 특정 값을 조회합니다. 각 검색에는 여러 비교가 포함될 수 있습니다. 쿼리 실행기는 각 비교를 Enclave에 위임하고, Enclave는 열에 저장된 값 및 비교할 암호화된 인덱스 키 값의 암호를 해독하고 일반 텍스트를 비교하여 비교 결과를 실행기에 반환합니다.
임의 암호화를 사용하는데 Enclave를 사용하지 않는 열에는 인덱스를 만들 수 없습니다.
결정적 암호화를 사용하는 열의 인덱스는 열의 Enclave 사용 여부에 관계없이 암호 텍스트(일반 텍스트 아님)를 기준으로 정렬됩니다.
자세한 정보는 보안 Enclave를 통해 Always Encrypted를 사용하여 열에 인덱스 생성 및 사용을 참조하세요. 데이터베이스 엔진 인덱싱의 작동 방식에 관한 일반적인 내용은 클러스터형 및 비클러스터형 인덱스 소개 문서를 참조하세요.
데이터베이스 복구
SQL Server 인스턴스가 실패하면 데이터 파일에 불완전한 트랜잭션의 일부 수정 내용이 포함될 수 있는 상태로 데이터베이스가 남아 있을 수 있습니다. 인스턴스가 시작되면 데이터베이스 복구라는 프로세스를 실행합니다. 여기에는 데이터베이스 무결성이 유지되도록 트랜잭션 로그에 있는 불완전한 트랜잭션을 모두 롤백하는 작업이 포함됩니다. 불완전한 트랜잭션이 인덱스를 변경한 경우 해당 변경 내용도 취소해야 합니다. 예를 들어 인덱스의 일부 키 값을 제거하거나 다시 삽입해야 할 수 있습니다.
Important
임의 암호화로 암호화된 Enclave 사용 열에 첫 번째 인덱스를 만들기 전, 데이터베이스에 대해 ADR(가속 데이터베이스 복구)을 사용하는 것을 강하게 권장합니다. ADR은 Azure SQL Database에서 기본적으로 사용하도록 설정되지만, SQL Server 2019(15.x) 이상에서는 사용하도록 설정되지 않습니다.
ARIES 복구 모델을 따르는 기존 데이터베이스 복구 프로세스를 사용하면 인덱스 변경을 실행 취소하려면 SQL Server는 애플리케이션이 열에 대한 열 암호화 키를 Enclave에 제공할 때까지 기다려야 하며, 이는 오랜 시간이 걸릴 수 있습니다. ADR(가속 데이터베이스 복구)은 Enclave 내의 캐시에서 열 암호화 키를 사용할 수 없으므로 연기해야 하는 실행 취소 작업의 수를 크게 줄입니다. 따라서 새 트랜잭션이 차단될 가능성이 최소화되어 데이터베이스 가용성이 상당히 증가합니다. ADR을 사용한 상태에서 SQL Server는 이전 데이터 버전 정리를 완료하기 위해 열 암호화 키가 필요할 수 있지만, 데이터베이스 또는 사용자 트랜잭션의 사용 가능성에 영향을 주지 않는 백그라운드 작업으로 수행합니다. 열 암호화 키가 누락되어 실패한 정리 작업을 나타내는 오류 메시지가 오류 로그에 표시될 수 있습니다.
보안 고려 사항
다음 보안 고려 사항은 보안 Enclave를 사용한 Always Encrypted에 적용됩니다.
- VBS Enclave는 VM 내의 공격으로부터 데이터를 보호하는 데 도움이 됩니다. 단, VBS Enclave는 호스트에서 시작된 권한 있는 시스템 계정을 사용하여 공격으로부터 어떠한 보호도 제공하지 않습니다. Intel SGX Enclave는 게스트 OS와 호스트 OS 모두에서 발생하는 공격으로부터 데이터를 보호합니다.
- Enclave 증명은 사용자 환경에서 사용할 수 있고 데이터베이스를 호스팅하는 컴퓨터에 대한 OS 수준 관리자 액세스 권한이 있는 사용자의 공격으로부터 데이터를 보호하는 데 관심이 있는 경우 권장됩니다. 증명을 사용하는 경우 신뢰할 수 있는 관리자가 증명 서비스와 해당 구성을 관리해야 합니다. 또한 지원되는 증명 서비스는 서로 다른 정책과 증명 모드를 제공하며, 그 중 일부는 Enclave 및 해당 환경에 대한 최소한의 검증을 수행하며 테스트 및 개발을 위해 설계되었습니다. 해당 증명 서비스와 관련된 지침에 따라 권장 구성 및 정책을 프로덕션 배포에 사용합니다.
- Enclave 사용 열 암호화 키를 통해 임의 암호화를 사용하여 열을 암호화하면 열에 저장된 데이터의 순서가 누출될 수 있습니다. 이러한 열은 범위 비교를 지원합니다. 예를 들어 직원 급여를 포함하는 암호화된 열에 인덱스가 있는 경우, 악의적인 DBA가 인덱스를 검색하여 최대 암호화된 급여 값을 찾고 최대 급여를 받는 사람을 식별할 수 있습니다(사람 이름은 암호화되지 않았다고 가정).
- Always Encrypted를 사용하여 DBA의 무단 액세스로부터 중요한 데이터를 보호하는 경우 열
master
키 또는 열 암호화 키를 DBA와 공유하지 마세요. DBA는 Enclave 내의 열 암호화 키 캐시를 사용하여 키에 직접 액세스하지 않고도 암호화된 열의 인덱스를 관리할 수 있습니다.
무중단 업무 방식, 재해 복구, 데이터 마이그레이션에 대한 고려 사항
보안 Enclave와 함께 Always Encrypted를 사용하여 데이터베이스에 대한 고가용성 또는 재해 복구 솔루션을 구성할 때 모든 데이터베이스 복제본이 보안 Enclave를 사용할 수 있는지 확인합니다. 주 복제본에 대해 Enclave를 사용할 수 있지만, 보조 복제본에는 사용할 수 없는 경우 장애 조치(failover) 후 보안 Enclave와 함께 Always Encrypted의 기능을 사용하려는 모든 문이 실패합니다.
보안 Enclave가 있는 Always Encrypted를 사용하여 데이터베이스를 복사하거나 마이그레이션하는 경우 대상 환경이 항상 Enclave를 지원하는지 확인합니다. 그러지 않으면 Enclave를 사용하는 문이 복사본이나 마이그레이션된 데이터베이스에서 작동하지 않습니다.
유의해야 하는 특정 고려 사항은 다음과 같습니다.
SQL Server
- Always On 가용성 그룹을 구성하는 경우, 가용성 그룹의 데이터베이스를 호스트하는 각 SQL Server 인스턴스에서 보안 Enclave를 사용한 Always Encrypted를 지원하며 Enclave와 증명이 구성되어 있는지 확인합니다.
- Enclave가 구성되지 않은 SQL Server 인스턴스에서 보안 Enclave를 통해 Always Encrypted의 기능을 사용하는 데이터베이스의 백업 파일에서 복원하는 경우 복원 작업이 성공하고 Enclave를 사용하지 않는 모든 기능을 사용할 수 있습니다. 단, Enclave 기능을 사용하는 후속 문은 실패하고 임의 암호화를 사용하는 Enclave 사용 열의 인덱스는 유효하지 않습니다. Enclave가 구성되지 않은 인스턴스에서 보안 Enclave와 함께 Always Encrypted를 사용하여 데이터베이스를 연결할 때도 마찬가지입니다.
- 데이터베이스에 임의 암호화를 사용하는 Enclave 사용 열이 포함된 경우 데이터베이스 백업을 만들기 전에 데이터베이스에서 ADR(가속 데이터베이스 복구)을 사용하도록 설정해야 합니다. ADR을 사용하면 데이터베이스를 복원한 후에 인덱스를 비롯한 데이터베이스를 즉시 사용할 수 있습니다. 자세한 내용은 데이터베이스 복구를 참조하세요.
Azure SQL Database
- 활성 지역 복제를 구성할 때 주 데이터베이스가 지원하는 경우 보조 데이터베이스가 보안 Enclave를 지원하는지 확인합니다.
SQL Server 및 Azure SQL Database에서는 둘 다, bacpac 파일을 사용하여 데이터베이스를 마이그레이션하는 경우 bacpac 파일을 만들기 전에 임의 암호화를 사용하는 Enclave 사용 열의 인덱스를 모두 삭제해야 합니다.
알려진 제한 사항
보안 Enclave를 사용한 Always Encrypted는 Enclave 사용 열에 대한 기밀 컴퓨팅 기능에 설명된 대로 인덱스를 사용한 내부 암호화 및 더욱 풍부한 기밀 쿼리를 지원하여 Always Encrypted의 일부 제한 사항을 해결합니다.
제한 사항에 나열된 Always Encrypted의 다른 모든 제한 사항은 보안 Enclave를 사용한 Always Encrypted에도 적용됩니다.
다음 제한 사항은 보안 Enclave를 사용하는 Always Encrypted와 관련이 있습니다.
- 임의 암호화를 사용하는 Enclave 사용 열에서 클러스터형 인덱스를 생성할 수 없습니다.
- 임의 암호화를 사용하는 Enclave 사용 열은 기본 키 열이 될 수 없으며 외래 키 제약 조건 또는 고유 키 제약 조건 조건으로 참조할 수 없습니다.
- SQL Server 2019(15.x)(이 제한 사항은 Azure SQL Database 또는 SQL Server 2022(16.x)에 적용되지 않음)에서 임의 암호화를 사용하는 Enclave 사용 열에서는 중첩된 루프 조인(인덱스 사용, 사용 가능한 경우)만 지원됩니다. 여러 제품 간의 기타타 차이점에 대한 자세한 정보는 기밀 쿼리를 참조하세요.
- 바로 암호화 작업은 동일한 코드 페이지 내의 데이터 정렬 및 null 허용 여부 변경을 제외하고 다른 열 메타데이터 변경과 결합할 수 없습니다. 예를 들어 단일
ALTER TABLE
/ALTER COLUMN
Transact-SQL 문에서는 열을 암호화, 재암호화 또는 해독할 수 없으며 열의 데이터 형식을 변경할 수 없습니다. 두 개의 별도 명령문을 사용합니다. - 메모리 내 테이블의 열에 대해 Enclave 사용 키를 사용할 수 없습니다.
- 계산 열을 정의하는 식은 임의 암호화를 사용하여 Enclave 설정 열에서 계산을 수행할 수 없습니다(계산이 기밀 쿼리에 나열된 지원 작업에 속한 경우에도).
- 임의 암호화를 사용하는 Enclave 사용 열의 LIKE 연산자 매개 변수에서는 이스케이프 문자가 지원되지 않습니다.
- 암호화 후 큰 개체가 되는 다음 데이터 형식 중 하나를 통해 쿼리 매개 변수가 있는 LIKE 연산자 또는 비교 연산자를 사용하는 쿼리는 인덱스를 무시하고 테이블 검색을 수행합니다.
- n이 3,967보다 큰 경우
nchar[n]
및nvarchar[n]
입니다. - n이 7935보다 큰 경우
char[n]
,varchar[n]
,binary[n]
,varbinary[n]
입니다.
- n이 3,967보다 큰 경우
- 도구 제한 사항:
- Enclave 사용 열
master
키를 저장하기 위해 지원되는 유일한 키 저장소는 Windows 인증서 저장소 및 Azure Key Vault입니다. ALTER TABLE
/ALTER COLUMN
을(를) 통해 내부 암호화 작업을 트리거하려면 SSMS 또는 Azure Data Studio의 쿼리 창을 사용하여 문을 실행해야 하거나, 문을 실행하는 프로그램을 직접 쓸 수 있습니다. 현재 SqlServer PowerShell 모듈의Set-SqlColumnEncryption
cmdlet과 SQL Server Management Studio의 Always Encrypted 마법사는 내부 암호화를 지원하지 않습니다. 작업에 사용되는 열 암호화 키가 Enclave를 사용하는 경우에도 암호화 작업을 위해 데이터베이스 밖으로 데이터를 이동합니다.
- Enclave 사용 열
- VBS Enclave 사용 데이터베이스를 복원하는 경우 VBS Enclave 설정을 재구성해야 합니다.