创建指定项目中的一个数据库用户。此 MongoDB Cloud 支持每个项目最多 100 个数据库用户。如果某个项目需要超过 100 个数据库用户,请联系支持部门。要使用此资源,请求的服务帐户或 API 密钥必须具有“项目所有者”角色、“项目图表管理员”角色、“项目流处理所有者”角色或“项目数据库访问管理员”角色。
路径参数
-
用于标识项目的唯一 24-十六进制数字字符串。 使用 /groups 端点检索身份验证的用户有权访问权限的所有项目。
注意:群组和项目是同义词。您的群组 ID 与项目 ID 相同。对于现有群组,群组/项目 ID 保持不变。资源和相应的端点使用“群组”一词。
格式应符合以下模式:
^([a-f0-9]{24})$。
查询参数
-
指示应用程序是否将响应包装在
envelopeJSON 对象中的标志。某些 API 客户端无法访问 HTTP 响应标头或状态代码。要修复此问题,请在查询中设置 Envelope=true。返回结果列表的端点将结果对象用作 envelope。应用程序将状态参数添加到响应正文中。默认值为
false。 -
指示响应正文是否应采用 prettyprint 格式的标记。
默认值为
false。Prettyprint
body
必需
在指定项目中创建一个数据库用户。
-
可读的标签,指示新数据库用户是否使用与用户或用户角色关联的 Amazon Web Services (AWS) 身份和访问管理 (IAM) 凭证进行身份验证。
值为
NONE、USER或ROLE。默认值为NONE。 -
数据库用户进行身份验证所依据的数据库。 数据库用户必须提供用户名和身份验证数据库才能登录 MongoDB。 如果用户使用Amazon Web Services IAM、x.509、 LDAP或 OIDC 工作负载进行身份验证,此值应为
$external。 如果用户使用 SCRAM-SHA 或 OIDC Workforce 进行身份验证,则此值应为admin。值为
admin或$external。默认值为admin。 -
MongoDB Cloud 删除用户的日期和时间。此参数以 ISO 8601 时间戳格式(UTC 格式)表示其值,可以包括时区名称。您必须指定发出应用程序编程接口 (API) 请求后一周内的某个未来日期。
-
此数据库用户的描述。
最大长度为
100。 -
用于标识项目的唯一的 24 位十六进制数字字符串。
-
包含用于标记和分类 MongoDB 数据库用户的键值对的列表。您定义的标签不会显示在控制台中。
应用于此MongoDB Cloud 组件的人类可读标签。
-
轻型目录访问协议 (LDAP) 记录的一部分,数据库使用它来对 LDAP 主机上的此数据库用户进行身份验证。
值为
NONE、GROUP或USER。默认值为NONE。 -
人类可读标签,指示新数据库用户或群组是否使用 OIDC联合身份验证进行身份验证。要创建联合身份验证用户,请在此字段中指定 USER 的值。要创建联合身份验证群组,请在此字段中指定
IDP_GROUP的值。值为
NONE、IDP_GROUP或USER。默认值为NONE。 -
用于根据
databaseName中指定的数据库验证此数据库用户身份的字母数字字符串。要使用 SCRAM-SHA 进行身份验证,您必须指定此参数。该参数不出现在此响应中。最小长度为
8。SCRAM-SHA -
提供单个角色与单个适用数据库配对的列表。
该数据库用户可用的资源范围。
-
包含此数据库用户可以访问的集群、MongoDB Atlas data lake 和 MongoDB Atlas Streams Workspaces 的列表。如果省略, MongoDB Cloud 会授予数据库用户访问权限项目中所有集群、 MongoDB Atlas Data Lake 和MongoDB Atlas Streams 工作区的权限。
该数据库用户可用的资源范围。
-
人类可读标签,表示向 MongoDB 进行身份验证的用户。此标签的格式取决于身份验证方法:
身份验证方法 所需参数 参数值 用户名格式 AWS IAM awsIAMTypeROLEARN AWS IAM awsIAMTypeUSERARN x.509 x509TypeCUSTOMERRFC2253 标识名 x.509 x509TypeMANAGEDRFC2253 标识名 LDAP ldapAuthTypeUSERRFC2253 标识名 LDAP ldapAuthTypeGROUPRFC2253 标识名 OIDC 员工队伍 oidcAuthTypeIDP_GROUPAtlas OIDC IdP ID(在联合设置中找到),后跟“/”,然后是 IdP 组名称 OIDC 工作负载 oidcAuthTypeUSERAtlas OIDC IdP ID(在联合设置中找到),后跟“/”,然后是 IdP 用户名 SCRAM-SHA awsIAMType,x509Type,ldapAuthType,oidcAuthTypeNONE字母数字字符串 最大长度为
1024。 -
MongoDB Cloud 用于对数据库用户进行身份验证的 X.509 方法。
- 对于应用程序托管的 X.509,请指定
MANAGED。 - 对于自我托管的 X.509,请指定
CUSTOMER。
使用
CUSTOMER方法创建的用户需要在用户名参数中使用公用名 (CN)。您必须对$external数据库创建经过外部身份验证的用户。值为
NONE、CUSTOMER或MANAGED。默认值为NONE。 - 对于应用程序托管的 X.509,请指定
atlas api databaseUsers createDatabaseUser --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.CreateGroupDatabaseUserApiParams{}
sdkResp, httpResp, err := client.DatabaseUsersApi.
CreateGroupDatabaseUserWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/databaseUsers" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/databaseUsers" \
-d '{ <Payload> }'
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"username": "arn:aws:iam::358363220050:user/mongodb-aws-iam-auth-test-user",
"awsIAMType": "USER",
"databaseName": "$external"
}
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"username": "CN=marketing,OU=groups,DC=example,DC=com",
"databaseName": "admin",
"ldapAuthType": "GROUP"
}
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"username": "5dd7496c7a3e5a648454341c/sales",
"databaseName": "admin",
"oidcAuthType": "IDP_GROUP"
}
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"username": "5dd7496c7a3e5a648454341c/sales",
"databaseName": "$external",
"oidcAuthType": "USER"
}
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"password": "changeme123",
"username": "david",
"databaseName": "admin"
}
{
"roles": [
{
"roleName": "readWrite",
"databaseName": "sales"
},
{
"roleName": "read",
"databaseName": "marketing"
}
],
"scopes": [
{
"name": "myCluster",
"type": "CLUSTER"
}
],
"groupId": "32b6e34b3d91647abb20e7b8",
"username": "CN=david@example.com,OU=users,DC=example,DC=com",
"x509Type": "CUSTOMER",
"databaseName": "$external"
}
{
"awsIAMType": "NONE",
"databaseName": "admin",
"deleteAfterDate": "2026-05-04T09:42:00Z",
"description": "string",
"labels": [
{
"key": "string",
"value": "string"
}
],
"ldapAuthType": "NONE",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"oidcAuthType": "NONE",
"roles": [
{
"collectionName": "string",
"databaseName": "string",
"roleName": "atlasAdmin"
}
],
"scopes": [
{
"name": "string",
"type": "CLUSTER"
}
],
"username": "string",
"x509Type": "NONE"
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 409,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
"reason": "Conflict",
"errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}