MongoDB で アクセス制御を有効化 するとユーザー管理が必要になってきます。 ここでは MongoDB で使う ユーザーに関する操作として ユーザーの追加、一覧表示、変更、削除 といった一連の方法についてまとめました。 ユーザー情報の変更ではよく使いそうな パスワード変更、ロール追加、ロール削除のみ扱っています。
ユーザー の 作成
新規ユーザーは db.createUser()
メソッドで作成できます。
ユーザー名は「データベース名+ユーザー名」の組み合わせで一意になっているようなので、登録する際は接続先データベース名に注意してください。
構文
1 2 3 4 5 6 7 8 | db.createUser({ user: "<username>" , pwd: "<password>" , roles: [{ role: "<role>" , db: "<database>" }] }) |
フィールド名 | 型 | 説明 |
---|---|---|
user | string | 登録するユーザー名を指定します。 |
pwd | string | 登録するユーザーのパスワードをクリアテキストで指定します。 |
roles | array | 登録するユーザーのロール名またはロールを表現するオブジェクト(ロールと適用先データベースを定義したオブジェクト)を指定します。 |
roles.role | string | ロール名を指定します。 |
roles.db | string | ロール適用先データベース名を指定します。 |
サンプルコード
1 2 3 4 5 6 7 8 9 | user test db.createUser({ user: "tanaka" , pwd: "qwerty" , roles: [{ role: "readWrite" , db: "test" }] }) |
ユーザー の 一覧表示
db.getUsers()
メソッドで現在接続中のデータベースに登録されているユーザー一覧が表示できます。
構文
1 | db.getUsers() |
サンプルコード
1 2 | use test db.getUsers() |
ユーザー情報 の 変更
ユーザー情報の変更として「パスワード変更」「ロール追加」「ロール削除」についてまとめます。
パスワード変更
db.changeUserPassword()
メソッドを利用すると、指定したユーザーのパスワードを更新できます。
構文
1 | db.changeUserPassword( "<username>" , "<password>" ) |
引数 | 型 | 説明 |
---|---|---|
username | string | パスワード変更したいユーザー名を指定します。 |
password | string | 新しいパスワードを指定します。 |
サンプルコード
1 2 | use test db.changeUserPasword( "tanaka" , "password" ) |
ロール 追加
db.grantRolesToUser()
メソッドで指定したユーザーにロールを追加することができます。
ロールの指定方法はユーザー作成 db.createUser()
でロール指定する方法と同じです。
構文
1 | db.grantRolesToUsre( "<username>" , [ "<roles>" ]}) |
引数 | 型 | 説明 |
---|---|---|
username | string | ロール追加したいユーザー名を指定します。 |
roles | array | 追加したいロール名またはロールオブジェクト(ロール名とデータベース名を定義したオブジェクト)を指定します。 |
サンプルコード
1 2 3 4 5 | use products db.grantRolesToUsre( "tanaka" , [ "readWrite" , {role: "read" , db: "stock" }] ) |
ロール 削除
db.revokeRolesFromUser()
メソッドで指定したユーザーからロールを削除することができます。
ロールの指定方法はユーザー作成 db.createUser()
でロール指定する方法と同じです。
構文
1 | db.revokeRolesFromUsre( "<username>" , [ "<roles>" ]}) |
引数 | 型 | 説明 |
---|---|---|
username | string | ロール削除したいユーザー名を指定します。 |
roles | array | 削除したいロール名またはロールオブジェクト(ロール名とデータベース名を定義したオブジェクト)を指定します。 |
サンプルコード
1 2 3 4 5 | use products db.revokeRolesFromUsre( "tanaka" , [{role: "read" , db: "stock" }] ) |
ユーザー の 削除
db.dropUser()
で指定したユーザーを削除できます。
db.removeUser()
というメソッドも存在しますが、こちらは 2.6以降 非推奨となっています。
構文
1 | db.dropUser( "<username>" ) |
引数 | 型 | 説明 |
---|---|---|
username | string | 削除したいユーザー名を指定します。 |
サンプルコード
1 2 | use test db.dropUser( "tanaka" ) |
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!