db.grantRolesToUser()
定義
db.grantRolesToUser(username, roles, writeConcern)
ユーザーに追加のロールを付与します。
db.grantRolesToUser()
メソッドでは、次の構文を使用します。db.grantRolesToUser( "<username>", [ <roles> ], { <writeConcern> } ) db.grantRolesToUser()
メソッドは次の引数を取ります。Parameterタイプ説明user
stringロールを付与するユーザーの名前。roles
配列ユーザーに付与する追加のロールの配列。writeConcern
ドキュメント任意。 操作の書込み保証( write concern ) のレベル。 詳しくは、 書込み保証(write concern) の仕様を参照してください。
roles
フィールドでは、組み込みロールとユーザー定義ロールの両方を指定できます。db.grantRolesToUser()
が実行されるのと同じデータベースに存在するロールを指定するには、ロールの名前を使用してロールを指定します。"readWrite" または、次のように、ドキュメントを使用してロールを指定することもできます。
{ role: "<role>", db: "<database>" } 別のデータベースに存在するロールを指定するには、 ドキュメントを使用してロールを指定します。
db.grantRolesToUser()
メソッドは、grantRolesToUser
コマンドをラップします。
動作
レプリカセット
レプリカセットで実行する場合、 db.grantRolesToUser()
はデフォルトで"majority"
書込み保証を使用して実行されます。
必要なアクセス権
例
products
データベースに次のロールを持つユーザー accountUser01
がある場合:
"roles" : [ { "role" : "assetsReader", "db" : "assets" } ]
次のdb.grantRolesToUser()
操作により、 accountUser01
には、 products
データベースでreadWrite
ロールとstock
データベースでread
ロールが付与されます。
use products db.grantRolesToUser( "accountUser01", [ "readWrite" , { role: "read", db: "stock" } ], { w: "majority" , wtimeout: 4000 } )
products
データベース内のユーザー accountUser01
には現在、次のロールがあります。
"roles" : [ { "role" : "assetsReader", "db" : "assets" }, { "role" : "read", "db" : "stock" }, { "role" : "readWrite", "db" : "products" } ]