对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

保护您的数据

MongoDB支持多种可用于对应用程序进行身份验证的机制。 本页包含演示每种机制的代码示例。

提示

要学习;了解有关此页面上任何身份验证机制的更多信息,请参阅身份验证机制和企业身份验证机制页面。

To use an authentication example from this page, copy the code example into the sample application or your own application. Be sure to replace all placeholders in the code examples, such as <hostname>, with the relevant values for your MongoDB deployment.

您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:

  1. 确保您已将C++驱动程序安装在项目可以导入的位置。

  2. 复制以下代码,并将其粘贴到项目中的新.cpp文件中。

  3. 从本页复制代码示例,并将其粘贴到文件的突出显示部分。

1#include <bsoncxx/json.hpp>
2
3#include <mongocxx/client.hpp>
4#include <mongocxx/exception/exception.hpp>
5#include <mongocxx/instance.hpp>
6#include <mongocxx/uri.hpp>
7
8#include <iostream>
9
10int main()
11{
12 mongocxx::instance instance;
13
14 try
15 {
16 // Start example code here
17
18 // End example code here
19
20 auto admin = client["admin"];
21 admin.run_command(bsoncxx::from_json(R"({ "ping": 1 })"));
22
23 std::cout << "Successfully pinged the MongoDB server." << std::endl;
24 }
25 catch (const mongocxx::exception &e)
26 {
27 std::cout << "An exception occurred: " << e.what() << std::endl;
28 return EXIT_FAILURE;
29 }
30
31 return EXIT_SUCCESS;
32}

以下代码演示如何创建连接 URI,以使用SCRAM-SHA-256身份验证机制进行身份验证:

auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"authSource=admin&authMechanism=SCRAM-SHA-256");
auto client = mongocxx::client(uri);

要了解有关 SCRAM-SHA- 256身份验证的更多信息,请参阅身份验证指南中的SCRAM-SHA- 256 。

以下代码演示如何创建连接 URI,以使用SCRAM-SHA-1身份验证机制进行身份验证:

auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"authSource=admin&authMechanism=SCRAM-SHA-1");
auto client = mongocxx::client(uri);

要了解有关 SCRAM-SHA- 1身份验证的更多信息,请参阅身份验证指南中的SCRAM-SHA- 1 。

以下代码演示如何创建连接 URI,以使用X.509身份验证机制进行身份验证:

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"tls=true&tlsCertificateKeyFile=path/to/client.pem&authMechanism=MONGODB-X509");
auto client = mongocxx::client(uri);

要学习;了解有关 X.509身份验证的更多信息,请参阅身份验证指南中的MongoDB X.509 。

以下部分介绍如何使用 MONGODB-AWS身份验证机制连接到MongoDB。当您使用 MONGODB-AWS 机制时, C++驱动程序会尝试按列出的顺序从以下源检索您的 AWS凭证:

  1. 传递给连接 URI 的命名参数

  2. 环境变量

  3. Amazon Web Services EKS AssumeRoleWithWebIdentity请求

  4. ECS容器元数据

  5. EC 2实例元数据

每节介绍如何创建连接 URI,以便在从指定源检索Amazon Web Services档案时使用 MONGODB-AWS 进行凭证验证。

要学习;了解有关使用Amazon Web Services进行身份验证的更多信息,请参阅身份验证指南中的MONGODB- Amazon Web Services 。

以下代码演示如何创建包含Amazon Web Services档案的连接 URI,以便使用 MONGODB-AWS 进行凭证验证:

auto uri = mongocxx::uri("mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

以下代码演示了如何创建连接 URI,以便在从环境变量获取档案时使用MONGODB-AWS进行凭证验证。 在运行此代码之前,确保已指定环境变量。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用环境变量向Amazon Web Services进行身份验证的更多信息,请参阅环境变量。

以下代码演示了如何创建连接 URI,以便在从AssumeRoleWithWebIdentity请求获取档案时使用MONGODB-AWS进行凭证验证。 确保您的环境中存在Amazon Web Services配置文件,并配置了 AWS_WEB_IDENTITY_TOKEN_FILE 和 AWS_ROLE_ARN 环境变量。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 AssumeRoleWithWebIdentity请求向Amazon Web Services进行身份验证的更多信息,请参阅AssumeRoleWithWebIdentity 请求。

以下代码演示了如何创建连接 URI,以便在从 ECS元数据获取档案时使用MONGODB-AWS进行凭证验证。 确保在名为AWS_CONTAINER_CREDENTIALS_RELATIVE_URI的环境变量中指定 ECS 端点的 URI。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 ECS元数据向Amazon Web Services进行身份验证的更多信息,请参阅ECS 元数据。

以下代码演示了如何创建连接 URI,以便在从 EC 2实例元数据获取档案时使用MONGODB-AWS进行凭证验证。 确保使用临时凭证配置 EC 2实例。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 EC2实例元数据向Amazon Web Services进行身份验证的更多信息,请参阅EC2 实例元数据。

注意

仅限 MongoDB Enterprise

Kerberos 身份验证仅在 MongoDB Enterprise 中可用。

以下代码演示如何创建连接 URI 以使用Kerberos进行身份验证:

auto uri = mongocxx::uri("mongodb://<Kerberos principal>@<hostname>:<port>/?"
"authMechanism=GSSAPI"
"&authMechanismProperties=SERVICE_NAME:<authentication service name>");
auto client = mongocxx::client(uri);

要了解有关使用 Kerberos 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的Kerberos 。

注意

仅限 MongoDB Enterprise

PLAIN SASL 身份验证仅在 MongoDB Enterprise 中可用。

以下代码演示如何创建连接 URI 以使用 PLAIN SASL 进行身份验证:

auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"authMechanism=PLAIN&tls=true");
auto client = mongocxx::client(uri);

要了解有关使用 PLAIN SASL 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的PLAIN SASL 。