本页介绍了与Queryable Encryption和客户端字段级加密兼容的MongoDB Server版本和驾驶员版本,以帮助您确定您的部署是否支持每个正在使用的加密功能。
➤ 使用选择语言下拉菜单选择驾驶员,并查看其与Queryable Encryption和客户端字段级加密的兼容性。
可查询加密兼容性
以下部分描述了将Queryable Encryption与MongoDB Server和所选驾驶员一起使用的兼容性要求。
MongoDB 兼容性
您可以在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 驾驶员结合使用,请安装以下组件:
驱动程序版本 5.5.0 或更高版本
mongodb-client-encryption 版本 2.8.0或更高版本
如果您使用的是 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驾驶员结合使用,请安装以下组件:
驱动程序版本 2.19 或更高版本
libmongocrypt-helper 版本为 1.8.0或更高版本
要将Queryable Encryption与Rust驾驶员结合使用,请安装以下组件:
驱动程序版本 2.4.0 或更高版本
libmongocrypt 1.8.0 或更高版本
要将Queryable Encryption与Scala驾驶员结合使用,请安装以下组件:
驱动程序版本 4.10.0 或更高版本
mongodb-crypt 版本 1.8.0或更高版本
MongoDB 支持限制
在集合上启用 Queryable Encryption 会导致某些诊断命令中的字段被脱敏,并且查询日志中会省略一些操作。这限制了 MongoDB 的支持工程师获取可用的数据,特别是在分析查询性能时。要衡量操作对加密集合的影响,可使用第三方应用程序性能监控工具来收集指标。
客户端字段级加密兼容性
以下部分描述了将客户端字段级加密(CSFLE) 与MongoDB Server和所选驾驶员结合使用的兼容性要求。
MongoDB 兼容性
您可以在副本集或分片集群上使用客户端字段级加密,但不能在独立运行实例使用。下表显示了哪些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 Sync或Java 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 的更多信息,请参阅轮换和重新包装加密密钥。