创建collection时启用 Queryable Encryption
Overview
在创建集合时启用Queryable Encryption 。 您无法对已在集合中的文档上的字段进行加密。
重要
显式创建集合,而不是使用插入操作隐式创建集合。 当您使用 createCollection()
创建集合时, MongoDB会在加密字段上创建索引。 如果没有此索引,对加密字段的查询可能会运行缓慢。
对集合启用 Queryable Encryption
您可以通过以下两种方式之一对字段启用 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
。 这样可以确保如果服务器的安全性遭到破坏,信息仍然通过客户端进行加密。