在创建集合时启用可查询加密
本页内容
概述
在创建集合时启用可查询加密。您无法加密已存在于集合中的文档的字段。
重要
显式创建您的集合,而不是通过插入操作隐式创建。当您使用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
,并在创建访问集合的客户端时也指定它。这确保了如果服务器安全受到破坏,信息仍然通过客户端进行加密。