system.users
自己管理型配置のコレクション
admin
データベース内のsystem.users
コレクションには、ユーザーの認証と認可の情報が保存されています。 このコレクション内のデータを管理するために、MongoDB はユーザー管理コマンド を提供します。
system.users
スキーマ
system.users
コレクション内のドキュメントには次のスキーマがあります。
{ _id: <system defined id>, userId : <system assigned UUID>, user: "<name>", db: "<database>", credentials: { <authentication credentials> }, roles: [ { role: "<role name>", db: "<database>" }, ... ], customData: <custom information>, authenticationRestrictions : [ <documents> ] }
各system.users
ドキュメントには次のフィールドがあります。
admin.system.users.user
ユーザー名。 ユーザーは単一の論理データベースのコンテキストに存在します(
admin.system.users.db
を参照)が、roles
配列で指定されたロールを介して他のデータベースにアクセスできます。
admin.system.users.db
ユーザーに関連付けられている認証データベースです。 ユーザーの特権は必ずしもこのデータベースに限定されません。 ユーザーは、
roles
配列を介して追加のデータベースで特権を持つことができます。
admin.system.users.credentials
ユーザーの認証情報。 Kerberosや x を使用するユーザーなど、外部に保存された認証情報を持つユーザーの場合。認証用の509証明書の場合、そのユーザーの
system.users
ドキュメントにcredentials
フィールドが含まれていない場合。 SCRAMユーザー認証情報の場合、このメカニズム、反復回数、認証パラメーターが含まれます。
admin.system.users.roles
ユーザーに付与されたロールの配列。 配列には、組み込みロールとユーザー定義ロールの両方が含まれています。
ロール ドキュメントの構文は次のとおりです。
{ role: "<role name>", db: "<database>" } ロール ドキュメントには、次のフィールドがあります。
admin.system.users.roles[n].role
ロールの名前。 ロールは、MongoDB によって提供される組み込みロールまたはカスタムユーザー定義のロールにすることができます。
ロール マネジメントまたはユーザー マネジメントコマンドを使用してロールを指定する場合、ロール名のみを指定できます(例:
"readWrite"
)は、コマンドが実行されるデータベースに存在するロールの場合、
例
system.users
コレクション内の次のドキュメントを検討してみましょう。
{ "_id" : "home.Kari", "userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), "user" : "Kari", "db" : "home", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "S/xM2yXFosynbCu4GzFDgQ==", "storedKey" : "Ist4cgpEd1vTbnRnQLdobgmOsBA=", "serverKey" : "e/0DyzS6GPboAA2YNBkGYm87+cg=" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "p1G+fZadAeYAbECN8F/6TMzXGYWBaZ3DtWM0ig==", "storedKey" : "LEgLOqZQmkGhd0owm/+6V7VdJUYJcXBhPUvi9z+GBfk=", "serverKey" : "JKfnkVv9iXwxyc8JaapKVwLPy6SfnmB8gMb1Pr15T+s=" } }, "authenticationRestrictions" : [ { "clientSource" : [ "69.89.31.226" ], "serverAddress" : [ "172.16.254.1" ] } ], "customData" : { "zipCode" : "64157" }, "roles" : [ { "role" : "read", "db" : "home" }, { "role" : "readWrite", "db" : "test" } ] }
このドキュメントには、ユーザーKari
の認証データベースがhome
データベースであることが示されています。 Kari
は、 home
データベースではread
ロール、 test
データベースではreadWrite
ロールを持っています。