Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / / /

创建collection时启用 Queryable Encryption

在此页面上

  • Overview
  • 对集合启用 Queryable Encryption

在创建集合时启用Queryable Encryption 。 您无法对已在集合中的文档上的字段进行加密。

重要

显式创建集合,而不是使用插入操作隐式创建集合。 当您使用 createCollection()创建集合时, MongoDB会在加密字段上创建索引。 如果没有此索引,对加密字段的查询可能会运行缓慢。

您可以通过以下两种方式之一对字段启用 Queryable Encryption。 以下示例使用 Node.js 启用 Queryable Encryption:

  • encryptedFieldsObject 常量表示的加密模式传递给应用程序用于创建集合的客户端:

    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>");
    }

    有关autoEncryption配置选项的更多信息,请参阅适用于 Queryable Encryption 的 Queryable Encryption选项部分。

  • 将加密模式encryptedFieldsObject传递给createEncryptedCollection()

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

    提示

    在创建集合以及创建客户端以访问集合时指定encryptedFieldsObject 。 这样可以确保如果服务器的安全性遭到破坏,信息仍然通过客户端进行加密。

后退

创建模式