mongodb - 使用身份验证选项编译的 MongoDB C++ 驱动程序是否会惩罚不使用身份验证的客户端?
问题描述
Mongo C++ 驱动程序有两个编译选项。从驱动程序文档:
--ssl
启用 SSL 支持。您将需要可用的 SSL 库的兼容版本。自 MongoDB 3.0 版以来的默认授权机制是 SCRAM-SHA-1。如果要使用标准 MongoDB 身份验证,则应使用 -ssl 选项进行编译以支持 SCRAM-SHA-1 机制。--use-sasl-client
启用 SASL,MongoDB 将其用于 MongoDB Enterprise 上可用的 Kerberos 身份验证。您将需要可用的兼容版本的 SASL 实现库。Cyrus SASL 库是我们用来测试的,并且被推荐使用。
我想知道客户端不使用身份验证(这是一个典型的场景,其中 CB-MongoDB 连接使用其他方式保护,例如 3 级防火墙,或者只是用户不想要它,无论出于何种原因)。的表现。我的意思是,想要身份验证的用户为此付出代价是可以的(就身份验证所需的 SSL CB-MongoDB 通信的性能损失而言),但不想要身份验证的用户不应该受到影响。
驱动程序是否足够聪明,因此即使使用身份验证--ssl
和--use-sasl-client
客户端不使用身份验证进行编译也能获得与不使用这些选项编译驱动程序时相同的性能?
注意:我知道这是关于 Mongo C++ 遗留驱动程序的问题,它是一个遗留软件。但是,也许类似的问题也适用于新驱动程序(假设它具有类似的基于选项的编译可配置性),所以我知道这个问题无论如何都是有意义的。
解决方案
推荐阅读
- spss - 为什么我的语法无法计算新变量?
- ansible - Ansible:如何从 YAML 中的 JSON 响应中提取嵌套字典值
- shell - 在 shell 脚本中访问 cpp #define 预处理器变量?
- java - onActivityResult 返回值太晚
- json - Spring Boot 控制器建议 - 如何返回 XML 而不是 JSON?
- c++ - 从 std::string 对象到 char* 的显式转换,而不使用任何 std::string 成员函数
- ios - 适用于 App Store 和 Google Play 的 Unity IAP 和出口合规性
- git - “git push”和“拉取请求”有什么区别?
- ios - 我可以强制用户在 iOS 上登录消耗品应用内产品吗?
- powershell - 无法使用 powershell 删除 yammer 评论