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