Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Limitações

Nesta página

  • Suporte à operação de leitura e gravação
  • Visualizações
  • Agrupamentos
  • Índices únicos
  • Chave de shard
  • Suporte a queries de leitura/gravação

O mongod armazena somente BinData criptografado e aplica qualquer expressão de agregação ou operador de query especificando um campo criptografado em relação ao valor BinData . Embora a expressão ou operador possa suportar campos BinData , o valor resultante pode ser incorreto ou inesperado quando comparado à emissão da mesma expressão ou operador em relação ao valor descriptografado. O mongod lançará um erro se a expressão ou o operador não suportar valores BinData .

Por exemplo, considere um número inteiro codificado deterministicamente Salary. Uma query filtra documentos em que Salary é maior que 100000. O aplicativo criptografa explicitamente (manualmente) o valor da query usando criptografia determinística antes de emitir a query. O mongod compara o valor BinData criptografado de 100000 com os valores BinData criptografados armazenados em cada documento. Embora a operação retorne com sucesso, a comparação dos valores BinData pode retornar um resultado diferente da comparação dos valores inteiros descriptografados.

A criptografia automática no nível do campo do lado do cliente rejeita operações de leitura ou gravação que retornariam resultados incorretos ou inesperados quando emitidas em um campo criptografado. Para obter a documentação completa, consulte Suporte de leitura/gravação com criptografia automática em nível de campo. Os aplicativos que executam a criptografia explícita (manual) podem fazer referência à página vinculada como orientação para emitir operações de leitura/gravação em campos criptografados.

Query em campo em collection que contêm valores criptografados no nível do campo do lado do cliente podem retornar resultados inesperados ou incorretos se o pipeline de agregação da campo subjacente ou a query fizer referência a campo criptografados. Se estiver criando uma campo em uma collection que contém valores criptografados no nível do campo do lado do cliente, evite operar em campo criptografados para mitigar o risco de resultados inesperados ou incorretos.

Enquanto 4.2+ drivers compatíveis configurados para criptografia automática em nível de campo no lado do cliente tiverem validação para operações de leitura e gravação não suportadas, a biblioteca de suporte subjacente não pode fazer a introspecção do catálogo de visualização para identificar uma determinada collection como uma visualização. Portanto, a aplicação não pode confiar na validação automática da criptografia no nível do campo para evitar consultas não permitidas em relação a visualizações de collection com campos criptografados.

Para aplicativos que usam criptografia explícita (manual) para consultar uma visualização em uma coleção contendo valores criptografados, considere a possibilidade de construir a query usando apenas operadores de query com comportamento normal conhecido quando emitido em campos criptografados.

A criptografia no nível do campo do lado do cliente não respeita os agrupamentos especificados pelo usuário ou os agrupamentos padrão da coleção. A criptografia no nível do campo oculta o valor do campo e impede o comportamento normal de agrupamento. Consultas sensíveis de agrupamento em campos criptografados podem retornar resultados inesperados ou incorretos.

Enquanto 4.2+ drivers compatíveis configurados para criptografia automática em nível de campo no lado do cliente tiverem validação para operações de leitura e gravação não suportadas, a biblioteca de suporte subjacente não pode introspecção do catálogo de collection para identificar o agrupamento padrão. Portanto, a aplicação não podem confiar na validação automática da criptografia em nível de campo para evitar a query em campo criptografados com padrões de agrupamento.

Índices únicos não pode garantir exclusividade se a chave de índice especificar quaisquer campos criptografados aleatoriamente .

Os campos criptografados usando o algoritmo aleatório sempre produzem um valor criptografado diferente de acordo com uma entrada específica. O servidor considera cada valor criptografado exclusivo, embora o valor descriptografado em si não seja exclusivo. A collection pode, portanto, conter vários documentos com valores descriptografados duplicados para um campo com uma restrição exclusiva imposta pelo índice.

Enquanto 4.2+ drivers compatíveis configurados para criptografia automática em nível de campo no lado do cliente tiverem validação para operações de leitura e gravação não suportadas, a biblioteca de suporte subjacente não pode introspecção do catálogo de índices para identificar um determinado campo como exclusivo. Portanto, os aplicativos não podem confiar na validação automática da criptografia em nível de campo para evitar violações de restrições exclusivas em campos criptografados aleatoriamente.

Especificar uma chave de shard em campos criptografados ou criptografar campos de uma chave de shard existente pode resultar em comportamento de fragmentação inesperado ou incorreto.

Enquanto 4.2+ drivers compatíveis configurados para criptografia automática em nível de campo no lado do cliente tiverem validação para operações de leitura e gravação não suportadas, a biblioteca de suporte subjacente não pode introspecção dos metadados do catálogo de fragmentação para identificar campos de chave de fragmento. Portanto, os aplicativos não podem confiar na validação automática da criptografia no nível do campo para evitar a criptografia dos campos de chave de fragmento.

A criptografia automática no nível do campo do lado do cliente oferece suporte a um subconjunto de comandos, operadores de query, operadores de atualização, estágios de agregação e expressões de agregação. Para obter a documentação completa, consulte Suporte de leitura/gravação com criptografia automática em nível de campo.

← Gerenciar chaves de criptografia de dados