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

CSFLE 服务器端模式执行

在此页面上

  • 例子
  • 了解详情

在启用了客户端字段级加密(CSFLE) 的客户端应用程序中,您可以使用模式验证来让MongoDB实例实施特定字段的加密。 要指定哪些字段需要加密,请将自动加密规则关键字 $jsonSchema验证对象一起使用。 如果指定字段不是Binary (BinData)子类型6对象,服务器会拒绝对该集合的任何写入操作。

要了解配置为使用自动加密的启用 CSFLE 的客户端在遇到服务器端模式时的行为,请参阅服务器端字段级加密执行。

要了解配置为使用显式加密且启用了 CSFLE 的客户端在遇到服务器端模式时的行为,请参阅服务器端字段级加密执行。

hremployees以具有collection集合的数据库为例。employees集合中的文档具有以下形式:

{
"name": "Jane Doe",
"age": 51
}

您希望使用collection的应用程序强制执行以下行为:

  • 加密age字段时,客户端必须遵循以下加密规则:

    • 使用_idUUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a")的数据加密密钥。

    • 使用随机加密算法。

    • age字段必须是整数。

  • 加密name字段时,客户端必须遵循以下加密规则:

    • 使用_idUUID("33408ee9-e499-43f9-89fe-5f8533870617")的数据加密密钥。

    • 使用确定性加密算法。

    • name字段必须是字符串。

以下mongosh代码使用collMod命令更新hr.employees集合以包含validator ,从而强制执行上述行为:

db.getSiblingDB("hr").runCommand({
collMod: "employees",
validator: {
$jsonSchema: {
bsonType: "object",
properties: {
age: {
encrypt: {
keyId: [UUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a")],
algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Random",
bsonType: "int",
},
},
name: {
encrypt: {
keyId: [UUID("33408ee9-e499-43f9-89fe-5f8533870617")],
algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic",
bsonType: "string",
},
},
},
},
},
});

要了解有关 CSFLE 支持的加密算法的更多信息,请参阅字段和加密类型。

要了解有关加密模式和加密规则的更多信息,请参阅CSFLE 加密模式。

后退

Schemas

在此页面上