Docs 菜单
Docs 主页
/
数据库手册
/ / /

兼容性

本页介绍了与Queryable Encryption和客户端字段级加密兼容的MongoDB Server版本和驾驶员版本,以帮助您确定您的部署是否支持每个正在使用的加密功能。

➤ 使用选择语言下拉菜单选择驾驶员,并查看其与Queryable Encryption和客户端字段级加密的兼容性。

以下部分描述了将Queryable Encryption与MongoDB Server和所选驾驶员一起使用的兼容性要求。

您可以在MongoDB Server 7.0 或更高版本的副本集或分片集群上使用Queryable Encryption ,但不能在独立运行的实例使用。下表显示了MongoDB Server产品支持的Queryable Encryption机制:

产品名称
最低版本
支持具有自动加密功能的 Queryable Encryption
支持使用显式加密进行 Queryable Encryption

MongoDB Atlas [ 1 ]

7.0

MongoDB Enterprise Advanced

7.0

MongoDB Community Edition

7.0

No

[1] Queryable Encryption与MongoDB Atlas兼容,但与 MongoDB Search 不兼容。

要将Queryable Encryption与C驾驶员一起使用,请安装以下组件:

  • 驱动程序版本 1.24.0 或更高版本

  • libmongocrypt 1.8.0 或更高版本

要将Queryable Encryption与C++驾驶员一起使用,请安装以下组件:

  • 驱动程序版本 3.8.0 或更高版本

  • libmongocrypt 1.8.0 或更高版本

要将 Queryable Encryption 与 .NET/C# 驾驶员一起使用,请安装驾驶员版本 2.20.0 或更高版本。

如果您使用的是驾驶员版本 3.0 或更高版本,则还必须完成以下步骤:

  • 安装MongoDB。来自 NuGet 的驱动程序.Encryption 包。该包支持自动加密。

  • 如果您的应用程序在Linux上运行,请手动安装libmongocrypt。然后,将 LIBMONGOCRYPT_PATH 环境变量设立为 libmongocrypt文件的绝对路径。

  • 如果您的应用程序在 64 位Linux上运行,并且您使用的是 3.4.3 或更早版本的驾驶员程序,请将以下几行 XML 添加到 .csproj文件中。更改 <MongoDriverEncryptionVersion> 元素的值以匹配您已安装的 MongoDB.Driver.Encryption包的版本。

<PropertyGroup>
<!-- replace the version here with your package version -->
<MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion>
<MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath>
</PropertyGroup>
<PropertyGroup>
<!-- Suppresses the duplicate file error -->
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>
<!-- Ensures the correct library after build or publish -->
<Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''">
<!-- Determine paths based on current operation -->
<PropertyGroup>
<_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir>
<_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir>
</PropertyGroup>
<!-- Copy the correct library based on runtime identifier (RID) -->
<ItemGroup>
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-x64'" />
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" />
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" />
</ItemGroup>
<!-- Copy with overwrite -->
<Copy SourceFiles="@(_CorrectMongoLib)"
DestinationFolder="$(_TargetDir)"
Condition="'@(_CorrectMongoLib)' != ''"
OverwriteReadOnlyFiles="true" />
<Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)"
Condition="'@(_CorrectMongoLib)' != ''" />
</Target>

要将Queryable Encryption与Go驾驶员结合使用,请安装以下组件:

  • 驱动程序版本 1.12 或更高版本

  • libmongocrypt 1.8.0 或更高版本

要将Queryable Encryption与Java Reactive Streams驾驶员结合使用,请安装以下组件:

  • 驱动程序版本 4.10.0 或更高版本

  • mongodb-crypt 版本 1.8.0或更高版本

要将Queryable Encryption与Java Sync驾驶员结合使用,请安装以下组件:

  • 驱动程序版本 4.10.0 或更高版本

  • mongodb-crypt 版本 1.8.0或更高版本

要将 Queryable Encryption 与 Node.js 驾驶员结合使用,请安装以下组件:

如果您使用的是 6.0 或更高版本的 Node.js驾驶员,则还必须使用 mongodb-client-encryption 6.0 或更高版本。

要将Queryable Encryption与PHP驾驶员结合使用,请安装驾驶员版本 1.16 或更高版本。

要将Queryable Encryption与PyMongo结合使用,请安装以下组件:

  • 驱动程序版本 4.4 或更高版本

  • pymongocrypt 版本 1.6 或更高版本

要将Queryable Encryption与Ruby驾驶员结合使用,请安装以下组件:

要将Queryable Encryption与Rust驾驶员结合使用,请安装以下组件:

  • 驱动程序版本 2.4.0 或更高版本

  • libmongocrypt 1.8.0 或更高版本

要将Queryable Encryption与Scala驾驶员结合使用,请安装以下组件:

  • 驱动程序版本 4.10.0 或更高版本

  • mongodb-crypt 版本 1.8.0或更高版本

重要

自动加密支持

要将Queryable Encryption与自动加密结合使用,必须安装查询分析组件。要学习;了解更多信息,请参阅安装和配置查询分析组件。

在集合上启用 Queryable Encryption 会导致某些诊断命令中的字段被脱敏,并且查询日志中会省略一些操作。这限制了 MongoDB 的支持工程师获取可用的数据,特别是在分析查询性能时。要衡量操作对加密集合的影响,可使用第三方应用程序性能监控工具来收集指标。

以下部分描述了将客户端字段级加密(CSFLE) 与MongoDB Server和所选驾驶员结合使用的兼容性要求。

您可以在副本集或分片集群上使用客户端字段级加密,但不能在独立运行实例使用。下表显示了哪些MongoDB Server产品支持哪些客户端字段级加密机制:

产品名称
最低版本
支持具有自动加密功能的 CSFLE
支持具有显式加密的 CSFLE

MongoDB Atlas

MongoDB Enterprise Advanced

4.2

MongoDB Community Edition

4.2

No

要将客户端字段级加密和密钥轮换API与C驾驶员一起使用,请安装驾驶员版本 1.17.5 或更高版本。

要将客户端字段级加密和密钥轮换API与C++驾驶员结合使用,请安装驾驶员版本 3.6.0 或更高版本。

要通过.NET/C#驾驶员使用客户端字段级加密,请安装驾驶员版本 2.10.0 或更高版本。要使用密钥轮换API,请安装驾驶员版本 2.17.1 或更高版本。

如果您使用的是驾驶员版本 3.0 或更高版本,则还必须完成以下步骤:

  • 安装MongoDB。来自 NuGet 的驱动程序.Encryption包。该包支持自动加密。

  • 如果您的应用程序在Linux上运行,请手动安装libmongocrypt。然后,将 LIBMONGOCRYPT_PATH 环境变量设立为 libmongocrypt文件的绝对路径。

  • 如果您的应用程序在 64 位Linux上运行,并且您使用的是 3.4.3 或更早版本的驾驶员程序,请将以下几行 XML 添加到 .csproj文件中。更改 <MongoDriverEncryptionVersion> 元素的值以匹配您已安装的 MongoDB.Driver.Encryption包的版本。

<PropertyGroup>
<!-- replace the version here with your package version -->
<MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion>
<MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath>
</PropertyGroup>
<PropertyGroup>
<!-- Suppresses the duplicate file error -->
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>
<!-- Ensures the correct library after build or publish -->
<Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''">
<!-- Determine paths based on current operation -->
<PropertyGroup>
<_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir>
<_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir>
</PropertyGroup>
<!-- Copy the correct library based on runtime identifier (RID) -->
<ItemGroup>
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-x64'" />
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" />
<_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so"
Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" />
</ItemGroup>
<!-- Copy with overwrite -->
<Copy SourceFiles="@(_CorrectMongoLib)"
DestinationFolder="$(_TargetDir)"
Condition="'@(_CorrectMongoLib)' != ''"
OverwriteReadOnlyFiles="true" />
<Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)"
Condition="'@(_CorrectMongoLib)' != ''" />
</Target>

要通过Go驾驶员使用客户端字段级加密,请安装驾驶员版本 1.2 或更高版本。要使用密钥轮换API,请安装 libmongocrypt 1.5.2 或更高版本。

要将客户端字段级加密与Java Reactive Streams驾驶员结合使用,请安装驾驶员版本 1.12.0 或更高版本。要使用密钥轮换API,请安装 mongodb-crypt 版本 1.7.3 或更高版本。

要将客户端字段级加密与Java SyncJava Reactive Streams驾驶员一起使用,请安装驾驶员版本 3.10.0 或更高版本。要使用密钥轮换API,请安装 mongodb-crypt 版本 1。7。3或更高版本。

要通过Node.js 驾驶员使用客户端字段级加密,请安装驾驶员版本 3.4.0 或更高版本。要使用密钥轮换API,请安装 mongodb-client-encryption 版本 2.2.0- 2.x。

如果您使用的是 6.0 或更高版本的 Node.js驾驶员,则还必须使用 mongodb-client-encryption 6.0 或更高版本。

要将客户端字段级加密和密钥轮换API与PHP驾驶员结合使用,请安装驾驶员版本 1.6.0 或更高版本。

要在PyMongo中使用客户端字段级加密,请安装驾驶员版本 3.10.0 或更高版本。要使用密钥轮换API,请安装 pymongocrypt 版本 1。3。1或更高版本。

要将客户端字段级加密和密钥轮换API与Ruby驾驶员结合使用,请安装驾驶员版本 2.12.1 或更高版本。

要将客户端字段级加密与Rust驾驶员结合使用,请安装驾驶员版本 2.4.0 或更高版本。要使用密钥轮换API,请安装 libmongocrypt 版本 1.8.0 或更高版本。

要将客户端字段级加密和密钥轮换API与Scala驾驶员一起使用,请安装驾驶员版本 2.7.0 或更高版本。

要学习;了解有关密钥轮换API 的更多信息,请参阅轮换和重新包装加密密钥。

重要

自动加密支持

要将客户端字段级加密与自动加密结合使用,必须安装查询分析组件。要学习;了解更多信息,请参阅安装和配置 CSFLE 查询分析组件。

后退

使用显式加密

在此页面上