grantRolesToUser (ロールの付与)
最終更新:2026-10-09
grantRolesToUser (ロールの付与)
grantRolesToUser は既存ユーザーにロールを追加します。増分的で、現在のロールをすべて維持します(updateUser の一括置換とは異なります)。mongosh では db.grantRolesToUser(user, roles) を呼びます。一般的な組み込みロールは文字列で、データベースをまたぐロールは { role, db } オブジェクトで指定します。userAdmin または root が必要です。
| カテゴリ | ユーザー認証 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.grantRolesToUser("<username>", [ { role: "read", db: "shop" } ])
⚙️ パラメータ
| roles | 追加するロール。置き換えではなく追加されます。 |
|---|
戻り値:成功時は { ok: 1 } を返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// grantRolesToUser: 読み取りロールの追加
use admin
db.grantRolesToUser('reader', [
{ role: 'read', db: 'analytics' }
])
出力:
{ ok: 1 }
📌 注意事項
- 付与は加算的。既存ロールは残る
- 存在しないロールや権限不足はエラーになる
- 組み込みロールは文字列、クロス DB は { role, db } オブジェクトを使う
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
QgrantRolesToUser と updateUser の付与方法の違いは?
AgrantRolesToUser は追加、updateUser はロールリストの置換です。
Qカスタムロールを付与できますか?
Aはい。createRole で作成した後なら付与できます。
Qどの権限が必要ですか?
AuserAdmin または root です。