1 つのプロジェクトに 1 人のデータベースユーザーを作成
指定されたプロジェクトに 1 人のデータベースユーザーを作成します。この MongoDB Cloud は、プロジェクトごとに最大 100 人のデータベースユーザーをサポートします。プロジェクトで 100 を超えるデータベースユーザーが必要な場合は、サポートにお問い合わせください。このリソースを使用するには、リクエスト元のサービス アカウントまたは API キーに、プロジェクト オーナー ロール、プロジェクト チャート管理者ロール、プロジェクト ストリーム処理オーナー ロール、またはプロジェクト データベース アクセス管理者ロールが必要です。
path パラメータ
-
プロジェクトを識別する一意の 24 桁の 16 進数文字列。 認証済みユーザーがアクセスできるすべてのプロジェクトを取得するには、 /groups エンドポイントを使用します。
注: グループとプロジェクトは同義語です。そのため、グループ ID はプロジェクト ID と同じです。既存のグループの場合、グループ/プロジェクト ID は同じままです。リソースおよび対応するエンドポイントでは、グループという用語が使用されます。
形式は次のパターンと一致する必要があります:
^([a-f0-9]{24})$
。
クエリ パラメータ
-
アプリケーションがレスポンスを
envelope
JSON オブジェクトにラップするかどうかを示すフラグ。一部の API クライアントは、HTTP レスポンス ヘッダーまたはステータス コードにアクセスできません。これを修正するには、クエリで envelope=true を設定します。結果のリストを返すエンドポイントは、結果オブジェクトをエンベロープとして使用します。アプリケーションは、レスポンス本体にステータス パラメータを追加します。デフォルト値は
false
です。 -
レスポンス本体を pretty-print 形式にするかどうかを示すフラグ。
デフォルト値は
false
です。Prettyprint
body
必須
指定されたプロジェクトに 1 人のデータベースユーザーを作成します。
-
新しいデータベースユーザーが、ユーザーに関連付けられた AWS(Amazon Web Services)の IAM(Identity and Access Management、ID とアクセス管理)認証情報で認証されるか、またはユーザーのロールで認証されるを示す、人間が判読可能なラベル。
値は
NONE
、USER
、またはROLE
です。デフォルト値はNONE
です。 -
データベースユーザーが認証するデータベース。 データベースユーザーは、MongoDB にログインするためにユーザー名と認証データベースの両方を提供する必要があります。 ユーザーがAmazon Web Services IAM、x.509、 LDAP 、または OIDC Workload で認証される場合、この値は
$external
になります。 ユーザーが SCRAM-SHA または OIDC ワークフォース で認証される場合、この値はadmin
になります。値は
admin
または$external
です。デフォルト値はadmin
です。 -
MongoDB Cloud がユーザーを削除する日時。このパラメーターは、その値を ISO 8601 タイムスタンプ形式で UTC で表し、タイム ゾーンの指定を含めることができます。API(Application Programming Interface、アプリケーション プログラミング インターフェース)要求を行ってから 1 週間以内の未来の日付を指定する必要があります。
-
このデータベースユーザーの説明。
最大長は
100
です。 -
プロジェクトを識別するユニークな 24 桁の 16 進数の文字列。
-
MongoDB データベース ユーザーをタグ付けおよび分類するためのキーと値のペアが格納されたリスト。定義したラベルはコンソールに表示されません。
このMongoDB Cloud コンポーネントに適用された、人間が判読可能なラベル。
-
データベースが LDAP(Lightweight Directory Access Protocol、ライトウェイト ディレクトリ アクセス プロトコル)のホスト上でこのデータベースユーザーを認証するために使用する LDAP レコードの一部。
値は
NONE
、GROUP
、またはUSER
です。デフォルト値はNONE
です。 -
新しいデータベースユーザーまたはグループが OIDC フェデレーション認証で認証されるかどうかを示す、人間が判読可能なラベル。フェデレーション認証ユーザーを作成するには、このフィールドに USER の値を指定します。フェデレーション認証グループを作成するには、このフィールドに IDP_GROUP の値を指定します。
値は
NONE
、IDP_GROUP
、またはUSER
です。デフォルト値はNONE
です。 -
databaseName
で指定されたデータベースに対してこのデータベースユーザーを認証する文字列。SCRAM-SHA で認証するには、このパラメーターを指定する必要があります。このパラメーターは、この応答には含まれません。最小長は
8
です。SCRAM-SHA -
1 つのロールと適用される 1 つのデータベースの組み合わせを提供するリスト。
このデータベースユーザーが利用できるリソースの範囲。
-
このデータベース ユーザーがアクセスできるクラスター、MongoDB Atlas Data Lake、MongoDB Atlas Streams インスタンスが格納されたリスト。省略した場合、MongoDB Cloud はデータベースユーザーに、プロジェクト内のすべてのクラスター、MongoDB Atlas Data Lakes、MongoDB Atlas Streams インスタンスへのアクセスを許可します。
このデータベースユーザーが利用できるリソースの範囲。
-
MongoDB に認証するユーザーを表す、人間が判読可能なラベル。このラベルの形式は、認証方法によって異なります。
認証方法 必要なパラメーター パラメーターの値 username のフォーマット AWS IAM awsIAMType ROLE ARN AWS IAM awsIAMType USER ARN x.509 x509Type CUSTOMER RFC2253 識別名 x.509 x509Type MANAGED RFC2253 識別名 LDAP ldapAuthType USER RFC2253 識別名 LDAP ldapAuthType GROUP RFC2253 識別名 OIDC WORKFORCE oidcAuthType IDP_GROUP Atlas OIDC IdP ID(フェデレーション設定で確認可能)、その後に「/」、その後に IdP グループ名が続きます OIDC Workload oidcAuthType USER Atlas OIDC IdP ID(フェデレーション設定で確認可能)、その後に「/」が続き、その後に IdP ユーザー名が続きます SCRAM-SHA awsIAMType, x509Type, ldapAuthType, oidcAuthType なし 英数字の文字列 最大長は
1024
です。 -
MongoDB Cloud がデータベースユーザーの認証に使用する X.509 方式。
- アプリケーション管理 X.509 の場合は、
MANAGED
を指定します。 - 自己管理型 X.509 の場合は、
CUSTOMER
を指定します。
CUSTOMER
メソッドで作成されたユーザーには、ユーザー名パラメーターに CN(Common Name、共通名)が必要です。$external
データベースに外部認証ユーザーを作成する必要があります。値は
NONE
、CUSTOMER
、またはMANAGED
です。デフォルト値はNONE
です。 - アプリケーション管理 X.509 の場合は、
atlas api databaseUsers createGroupDatabaseUser --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20240530001/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.2024-05-30+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.2024-05-30+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": "2025-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"
}