Menu Docs

Ativação da Queryable Encryption ao criar collections

Ative a Queryable Encryption na criação da collection. Não é possível criptografar campos em documentos que já estejam em uma collection.

Importante

Crie sua coleção explicitamente, ao invés de criá-la implicitamente com uma operação de inserção. Quando você cria uma coleção utilizando createCollection(), MongoDB cria um índice nos campos codificados. Sem esse índice, queries em campos criptografados podem ser executadas lentamente.

Você pode ativar a Queryable Encryption em campos de duas maneiras. Os exemplos a seguir usam Node.js para habilitar a Queryable Encryption:

  • Passe o esquema de criptografia, representado pela constante do encryptedFieldsObject, para o cliente que o aplicativo usa para criar a coleção:

    const client = new MongoClient(uri, {
    autoEncryption: {
    keyVaultNameSpace: "<your keyvault namespace>",
    kmsProviders: "<your kms provider>",
    extraOptions: {
    cryptSharedLibPath: "<path to Automatic Encryption Shared Library>"
    },
    encryptedFieldsMap: {
    "<databaseName.collectionName>": { encryptedFieldsObject }
    }
    }
    ...
    await client.db("<database name>").createEncryptedCollection("<collection name>");
    }

    Para obter mais informações sobre as opções de configuração autoEncryption, consulte a seção sobre MongoClient Options for Queryable Encryption.

  • Passe o esquema de criptografia encryptedFieldsObject para createEncryptedCollection():

    await encryptedDB.createEncryptedCollection("<collection name>", {
    encryptedFields: encryptedFieldsObject
    });

    Dica

    Especifique o encryptedFieldsObject ao criar a collection e também ao criar um cliente para acessar a collection. Para obter mais informações sobre as considerações de segurança de não definir encryptedFieldsObject o, consulte Considerações de segurança.