文档菜单
文档首页
/
MongoDB 手册
/ / / / /

在创建集合时启用可查询加密

本页内容

  • 概述
  • 在集合上启用可查询加密

在创建集合时启用可查询加密。您无法加密已存在于集合中的文档的字段。

重要

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

您可以通过以下两种方式之一在字段上启用可查询加密。以下示例使用Node.js启用可查询加密

  • 将表示为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配置选项的更多信息,请参阅可查询加密的MongoClient选项.

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

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

    提示

    在创建集合时指定encryptedFieldsObject,并在创建访问集合的客户端时也指定它。这确保了如果服务器安全受到破坏,信息仍然通过客户端进行加密。

返回

创建架构