Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / /

Limitações

Nesta página

  • Visão geral
  • Atlas Search
  • Limitações de suporte do MongoDB
  • Fator de contenção
  • Compactação manual da coleção de metadados
  • encryptedFieldsMap Modification
  • Suporte a operações de leitura e gravação
  • Redação
  • Log de consulta e supressão do profiler de banco de dados
  • Supressão de saída do estágio de comando e agregação
  • Suporte a topologia
  • Fragmentação
  • CRUD
  • Collections
  • Descartar collection
  • criar coleta
  • Tipos de query
  • Nomes de campo criptografados
  • Visualizações
  • Agrupamentos
  • Unique Indexes
  • O campo _id
  • Suporte a consultas de leitura/gravação

Considere estas limitações e restrições antes de ativar a Queryable Encryption. Algumas operações não são suportadas e outras se comportam de forma diferente.

Queryable Encryption é incompatível com oMongoDB Atlas Atlas Search.

A Queryable Encryption em uma collection elimina campos de alguns comandos de diagnóstico e omite algumas operações do registro de queries. Isso limita os dados disponíveis aos engenheiros de suporte do MongoDB, especialmente ao analisar o desempenho da query. Para medir o impacto das operações em relação a collections criptografadas, use uma ferramenta de monitoramento de desempenho de aplicativos de terceiros para coletar métricas.

Para obter detalhes, consulte a seção Supressão.

O fator de contenção é uma configuração que ajuda a ajustar o desempenho com base no número de operações simultâneas. Ao não ser definido, a contenção usa um valor padrão de 8, que fornece alto desempenho para a maioria das cargas de trabalho.

Você pode definir o fator de contenção somente ao especificar um campo para criptografia. Depois de especificar um campo para criptografia, o fator de contenção é imutável.

Para obter mais informações, consulte Configurando o fator de contenção.

Execute manualmente a compactação da coleção de metadados quando suas coleções de metadados excederem 1 GB. A compactação diminui o tamanho das coleções de metadados associadas aos campos criptografados e melhora o desempenho.

Não modifique o encryptedFieldsMap passado para seu MongoClient. Isso pode resultar em um comportamento inesperado e incorreto durante a consulta.

O mongod armazena apenas o BinData criptografado e aplica qualquer expressão de agregação ou operador de consulta que especifique um campo criptografado ao valor BinData. Embora a expressão ou o operador possa oferecer suporte a campos BinData, o valor resultante pode ser incorreto ou inesperado quando comparado à emissão dessa mesma expressão ou operador em relação ao valor descriptografado. O mongod gera um erro se a expressão ou o operador não suportar valores BinData.

Para melhorar a segurança, a Queryable Encryption oculta campos de alguns comandos de diagnóstico em coleções criptografadas e omite determinadas operações do log de query. Uma coleção criptografada é qualquer coleção com a opção encryptedFields .

As operações CRUD abaixo são omitidas do registro de query de operações lentas e da coleção do Database Profiler system.profile quando você as executa em uma coleção criptografada.

O comando collStats e o estágio de agregação $collStats:

  • Omit "queryExecStats"

  • Omit "latencyStats"

  • Edite "WiredTiger", se presente, para incluir apenas o campo url .

O comando currentOp e o estágio de agregação $currentOp:

  • Omita todos os campos após "command".

  • Suprima "command" para incluir apenas o primeiro elemento $comment e $db.

O comando top retorna somente o nome da collection de collections criptografadas.

O estágio de agregação $planCacheStats omite as operações em coleções criptografadas, mesmo que as operações sejam armazenadas em cache normalmente.

  • Conjuntos de réplicas e clusters fragmentados são aceitos

  • Implantações autônomas não são aceitas

  • Não há compatibilidade para leituras secundárias

  • As coleções de metadados não devem ser fragmentadas

  • As chaves de fragmento não devem ser campos criptografadas

  • Para transações de cluster fragmentado que usam Queryable Encryption, deve-se configurar readConcern como snapshot.

  • O Queryable Encryption não oferece suporte a operações de atualização de vários documentos. Não há suporte para db.collection.updateMany().

  • A Queryable Encryption não suporta operações de atualização ou exclusão de várias declarações. Se tiver mais de uma operação de atualização ou exclusão, db.collection.bulkWrite() não é suportado.

  • A Queryable Encryption limita db.collection.findAndModify() argumentos.

    • fields não é permitido

    • new deve ser falso

  • Ao executar uma operação de upsert, todos os campos criptografados no filtro são excluídos da inserção.

  • Não é possível usar a criptografia de nível de campo do lado do cliente com Queryable Encryption na mesma coleção.

    • O Queryable Encryption não oferece suporte à migração de coleções criptografadas com criptografia no nível do campo do lado do cliente. Você deve descriptografar seus documentos e inseri-los um por um.

    • A Queryable Encryption não oferece suporte à migração automática de uma collection não criptografada. Você deve inserir os documentos um a um.

  • A Queryable Encryption oferece suporte apenas a novas coleções. Você não pode adicionar ou remover a Queryable Encryption de coleções existentes.

  • Você não pode renomear uma coleção com campos criptografados.

  • Você não pode especificar jsonSchema a db.createCollection() ao criar uma coleção Queryable Encryption se jsonSchema contiver a palavra-chave encrypt.

    • Você pode especificar tanto encryptedFields quanto jsonSchema a db.createCollection(), desde que o jsonSchema não contenha validação para campos criptografados.

  • A Queryable Encryption não é compartível com Visualizações, coleções de séries temporais nem collections limitadas.

  • A Queryable Encryption não é compatível com índices TTL ou índices únicos.

  • Você não pode desabilitar a validação do jsonSchema .

  • Quando uma coleção usa a opção encryptedFields :

    • Não é possível definir validationLevel como none.

    • Não é possível definir validationAction como warn.

  • Descartar coleções de um MongoClient que não está configurado para Queryable Encryption não descarta as coleções de metadados associadas. mongod registra um aviso se você soltar uma coleção com campos criptografados antes de descartar as coleções de metadados.

Dica

Ao descartar uma coleção com um MongoClient configurado para Queryable Encryption, os drivers compatíveis também descartam as coleções de metadados associadas.

Sempre crie explicitamente quaisquer coleções que usem Queryable Encryption. A criação implícita de collections não cria os índices e collections de metadados necessários, resultando em um baixo desempenho da query.

Ao criar a coleção no encryptedFieldsMap, o tipo de query que você especificar para um campo será imutável. Não é possível adicionar novos tipos de query a um campo existente nem alterar o tipo de query existente.

Os nomes dos campos criptografados são imutáveis. Por exemplo, se você especificar ssn como um campo para criptografar, não poderá $rename o nome do campo como taxPayerID.

As aplicações não podem confiar na criptografia automática para evitar queries não suportadas em visualizações de coleções com campo criptografados.

Queries nas visualizações de coleções que contenham valores criptografados com a Queryable Encryption podem retornar resultados inesperados ou incorretos se o pipeline de agregação fundamental das visualizações ou a query fizerem referência a campos criptografados. Ao criar uma visualização em uma coleção que contenha valores criptografados com a Queryable Encryption, evite operar em campos criptografados para reduzir o risco de resultados inesperados ou incorretos.

Para obter mais informações sobre visualizações, consulte visualizações

A Queryable Encryption ignora os agrupamentos especificados pelo usuário ou os agrupamentos padrão da coleção. A criptografia obscurece o valor do campo e evita o comportamento normal de agrupamento. Queries sensíveis ao agrupamento em campo criptografados podem retornar resultados inesperados ou incorretos.

Para obter mais informações sobre agrupamentos, consulte Documento de agrupamento.

Os drivers compatíveis com Criptografia Consultável possuem uma lista de operações suportadas para criptografia automática. Para operações de leitura e gravação sem suporte, a biblioteca de suporte subjacente não pode introspeccionar o catálogo de coleção para identificar o agrupamento padrão. Os aplicativos, portanto, não podem contar com a validação do Queryable Encryption para impedir a query em campos criptografados com padrões de agrupamento.

Os índices únicos não poderão garantir a exclusividade se a chave de índice especificar quaisquer campos criptografados.

Queryable Encryption sempre gera um valor criptografado diferente, mesmo para a mesma entrada. O servidor considera cada valor criptografado exclusivo, mesmo que o valor descriptografado possa não ser. Isso significa que, mesmo que uma coleção use uma restrição exclusiva imposta por índice nos campo, a coleção ainda pode conter vários documento com valores de texto simples duplicados para esse campo.

Os drivers compatíveis com o Queryable Encryption configurados para criptografia automática suportam algumas operações de criptografia automática. Para operações de leitura e gravação não permitidas, a biblioteca subjacente não pode introspecção do catálogo de índices para identificar um determinado campo como exclusivo. Os aplicativos não podem confiar na validação automática de criptografia para evitar violações de restrições exclusivas em campos criptografados aleatoriamente.

Você não pode configurar o Queryable Encryption para criptografar o campo _id porque ele depende do valor gerado automaticamente pelo MongoDB.

A criptografia automática é compatível com um subconjunto de comandos, operadores de consultas, operadores de atualização, estágios de agregação e expressões de agregação. Para obter a lista de operações com suporte, consulte Operações com suporte para criptografia automática.

Voltar

Compatibilidade