Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / /

제한 사항

이 페이지의 내용

  • 개요
  • Atlas Search
  • MongoDB 지원 제한 사항
  • 경합 요인
  • 수동 메타데이터 컬렉션 압축
  • encryptedFieldsMap 수정
  • 읽기 및 쓰기 작업 지원
  • 편집
  • 쿼리 로그 및 데이터베이스 프로파일러 편집
  • 명령 및 집계 단계 출력 편집
  • 토폴로지 지원
  • 샤딩
  • CRUD
  • 컬렉션
  • 제거 collection
  • 컬렉션 생성
  • 쿼리 유형
  • 암호화된 필드 이름
  • 조회수
  • 데이터 정렬
  • Unique Indexes
  • _id 필드
  • 읽기/쓰기 쿼리 지원

Queryable Encryption 을 활성화하기 전에 이러한 제한 사항을 고려하세요. 일부 작업은 지원되지 않으며, 다른 작업은 다르게 동작합니다.

Queryable Encryption 은 MongoDB Atlas Atlas Search와 호환되지 않습니다.

컬렉션에서 Queryable Encryption를 사용하도록 설정하면 일부 진단 명령에서 필드가 삭제되고 쿼리 로그에서 일부 작업이 생략됩니다. 이로 인해 MongoDB 지원 엔지니어가 특히 쿼리 성능을 분석할 때 사용할 수 있는 데이터가 제한됩니다. 암호화된 컬렉션에 대한 작업의 영향을 측정하려면 타사 애플리케이션 성능 모니터링 도구를 사용하여 지표를 수집하십시오.

자세한 내용은 편집 섹션을 참조하세요.

경합 요인은 동시 작업 수에 따라 성능을 조정하는 데 도움이 되는 설정입니다. 설정하지 않으면 경합은 대부분의 워크로드에 고성능을 제공하는 기본값 8 을 사용합니다.

경합 요인은 암호화할 필드를 지정할 때만 설정할 수 있습니다. 암호화할 필드를 지정하면 경합 요인을 변경할 수 없습니다.

자세한 정보는 경합 요인 구성을 참조하세요.

메타데이터 컬렉션이 1GB를 초과하는 경우 메타데이터 컬렉션 압축을 수동으로 실행합니다. 압축은 암호화된 필드와 관련된 메타데이터 컬렉션의 크기를 줄이고 성능을 개선합니다.

MongoClient에 전달된 encryptedFieldsMap를 수정하지 마세요. 이로 인해 쿼리할 때 잘못된 동작이 예기치 않게 발생할 수 있습니다.

mongod는 암호화된 BinData만 저장하고 BinData 값에 대해 암호화된 필드를 지정하는 집계 표현식 또는 쿼리 연산자를 적용합니다. 표현식 또는 연산자가 BinData 필드를 지원할 수 있지만, 동일한 표현식 또는 연산자를 해독된 값과 비교했을 때 결과 값이 부정확하거나 예기치 않은 값이 나올 수 있습니다. 표현식 또는 연산자가 BinData 값을 지원하지 않는 경우 mongod에서 오류가 발생합니다.

Queryable Encryption은 보안을 강화하기 위해 암호화된 컬렉션의 일부 진단 명령에서 필드를 삭제하고 쿼리 로그에서 특정 작업을 생략합니다. 암호화된 컬렉션은 encryptedFields 옵션이 있는 모든 컬렉션입니다.

아래의 CRUD 작업은 암호화된 컬렉션에서 실행할 때 느린 작업 쿼리 로그와 Database 프로파일러 system.profile 컬렉션에서 생략됩니다.

collStats 명령 및 $collStats 집계 단계.

  • Omit "queryExecStats"

  • Omit "latencyStats"

  • url 필드 만 포함하도록 "WiredTiger"(있는 경우)를 수정합니다.

currentOp 명령 및 $currentOp 집계 단계.

  • "command" 이후의 모든 필드를 생략합니다.

  • 첫 번째 요소인 $comment$db만 포함하도록 "command"(을)를 수정합니다.

top 명령은 암호화됨 컬렉션의 컬렉션 이름만 반환합니다.

$planCacheStats 집계 단계에서는 작업이 정상적으로 캐시되더라도 암호화됨 컬렉션에 대한 작업을 생략합니다.

  • 복제본 세트 및 샤딩된 클러스터가 지원됩니다.

  • 독립형 배포는 지원되지 않습니다.

  • 세컨더리 읽기는 지원되지 않음

  • 메타데이터 컬렉션은 샤딩되어서는 안 됩니다.

  • 샤드 키는 암호화된 필드일 수 없음

  • Queryable Encryption을 사용하는 샤딩된 클러스터 트랜잭션의 경우 ReadConcernsnapshot(으)로 설정해야 합니다.

  • Queryable Encryption는 다중 문서 업데이트 작업을 지원하지 않습니다. db.collection.updateMany()는 지원되지 않습니다.

  • Queryable Encryption은 다중 문 업데이트 또는 삭제 작업을 지원하지 않습니다. 업데이트 또는 삭제 작업이 두 개 이상인 db.collection.bulkWrite()는 지원되지 않습니다.

  • Queryable Encryption 은 db.collection.findAndModify() 인수를 제한합니다.

    • fields 허용되지 않습니다.

    • new false여야 합니다.

  • 업서트 작업을 수행할 때 필터의 암호화된 필드는 삽입에서 제외됩니다.

  • 클라이언트 사이드 필드 레벨 암호화는 동일한 컬렉션에서 Queryable Encryption와 함께 사용할 수 없습니다.

    • Queryable Encryption은 클라이언트 사이드 필드 레벨 암호화로 암호화된 컬렉션으로부터 마이그레이션을 지원하지 않습니다. 문서를 해독하고 하나씩 삽입해야 합니다.

    • Queryable Encryption 은 암호화되지 않은 컬렉션 에서의 자동 마이그레이션 을 지원 하지 않습니다. 문서를 하나씩 삽입해야 합니다.

  • Queryable Encryption는 새 컬렉션만 지원합니다. 기존 컬렉션에 Queryable Encryption을 추가하거나 제거할 수 없습니다.

  • 암호화된 필드가 있는 컬렉션의 이름은 변경할 수 없습니다.

  • Queryable Encryption 컬렉션을 생성할 때 jsonSchemaencrypt 키워드가 포함된 경우 jsonSchemadb.createCollection()으로 지정할 수 없습니다.

    • jsonSchema에 암호화된 필드에 대한 유효성 검사가 포함되어 있지 않은 한 encryptedFields(과)와 jsonSchema(을)를 모두 db.createCollection()(으)로 지정할 수 있습니다.

  • Queryable Encryption는 , time series 컬렉션 또는 고정 사이즈 컬렉션을 지원하지 않습니다.

  • Queryable Encryption은 TTL 인덱스 또는 고유 인덱스를 지원하지 않습니다.

  • jsonSchema 유효성 검사는 비활성화할 수 없습니다.

  • 컬렉션이 encryptedFields 옵션을 사용하는 경우:

    • validationLevelnone으로 설정할 수 없습니다.

    • validationActionwarn으로 설정할 수 없습니다.

  • Queryable Encryption으로 구성되지 않은 MongoClient 컬렉션에서 컬렉션을 삭제해도 관련 메타데이터 컬렉션은 삭제되지 않습니다. 메타데이터 컬렉션을 삭제하기 전에 암호화된 필드가 있는 컬렉션을 삭제하면 mongod(이)가 경고를 로그합니다.

Queryable Encryption 에 대해 구성된 MongoClient 가 있는 컬렉션 을 삭제하면 호환되는 드라이버는 관련 메타데이터 컬렉션도 삭제합니다.

Queryable Encryption 을 사용하는 모든 컬렉션은 항상 명시적으로 생성하세요. 암시적 컬렉션 생성은 필요한 인덱스와 메타데이터 컬렉션을 생성하지 않으므로 쿼리 성능이 저하됩니다.

encryptedFieldsMap 에서 컬렉션을 만들 때 필드에 대해 지정하는 쿼리 형식은 변경할 수 없습니다. 기존 필드에 새 쿼리 유형을 추가할 수 없으며 기존 쿼리 유형은 변경할 수 없습니다.

암호화된 필드 이름은 변경할 수 없습니다. 예를 들어 ssn(을)를 암호화할 필드로 지정하면 $rename의 필드 이름을 taxPayerID(으)로 지정할 수 없습니다.

애플리케이션은 자동 암호화 유효성 검사에 의존하여 암호화된 필드가 있는 컬렉션의 뷰에 대해 지원되지 않는 쿼리를 방지할 수 없습니다.

Queryable Encryption으로 암호화된 값을 포함하는 컬렉션의 에 대한 쿼리는 기본 뷰 집계 파이프라인 또는 쿼리가 암호화된 필드를 참조하는 경우 예기치 않거나 잘못된 결과를 반환할 수 있습니다. Queryable Encryption으로 암호화된 값이 포함된 컬렉션에서 뷰를 만드는 경우 예기치 않거나 잘못된 결과가 발생할 위험을 줄이려면 암호화된 필드에 대한 작업을 피하세요.

뷰에 대한 자세한 내용은 를 참조하세요.

Queryable Encryption은 사용자가 지정한 데이터 정렬 또는 컬렉션 기본 데이터 정렬을 무시합니다. 암호화는 필드 값을 가리고 정상적인 데이터 정렬 동작을 방지합니다. 암호화된 필드에 대한 데이터 정렬에 민감한 쿼리는 예기치 않거나 잘못된 결과를 반환할 수 있습니다.

데이터 정렬에 대한 자세한 내용은 데이터 정렬 문서에서 확인하세요.

쿼리 가능한 암호화 호환 드라이버에는 자동 암호화에 지원되는 작업 목록이 있습니다. 지원되지 않는 읽기 및 쓰기 작업의 경우 기본 지원 라이브러리는 컬렉션 카탈로그를 검사하여 기본 데이터 정렬을 식별할 수 없습니다. 따라서 애플리케이션은 데이터 정렬 기본값이 있는 암호화된 필드에 대한 쿼리를 방지하기 위해 Queryable Encryption 유효성 검사에 의존할 수 없습니다.

인덱스 키가 암호화된 필드를 지정하는 경우 고유 인덱스는 고유성을 보장할 수 없습니다.

Queryable Encryption은 같은 입력이라도 항상 다른 암호화된 값을 출력합니다. 서버는 해독된 값이 고유하지 않더라도 각 암호화된 값을 고유하게 간주합니다. 즉, 컬렉션이 필드에 인덱스 적용 고유 제약 조건을 사용하더라도 컬렉션에는 해당 필드에 대해 중복된 일반 텍스트 값이 있는 여러 문서가 포함될 수 있습니다.

Queryable Encryption 호환 드라이버는 자동 암호화를 위해 구성되며, 자동 암호화를 위한 일부 작업을 지원합니다. 지원되지 않는 읽기 및 쓰기 작업의 경우, 기본 라이브러리는 인덱스 카탈로그를 검사하여 주어진 필드를 고유한 것으로 식별할 수 없습니다. 애플리케이션은 무작위로 암호화된 필드에서 고유한 제약 조건 위반을 방지하기 위해 자동 암호화 유효성 검사에 의존할 수 없습니다.

Queryable Encryption는 MongoDB에서 자동 생성된 값에 의존하기 때문에 _id 필드를 암호화하도록 구성할 수 없습니다.

자동 암호화는 명령, 쿼리 연산자, 업데이트 연산자, 집계 단계, 집계 표현식의 하위 집합을 지원합니다. 지원되는 작업 목록은 자동 암호화에 지원되는 작업을 참조하세요.

돌아가기

호환성