MongoDB権限フィールド制御の設定方法
MongoDBでは、ロールとユーザーの設定により アクセス制御が行われます。
- db.ロールを作成します()
db.createRole(
{
role: "customRole",
privileges: [
{ resource: { db: "myDB", collection: "myCollection" }, actions: ["find", "update"] }
],
roles: []
}
)
上の例では、`customRole` という名前のロールを作成し、`myDB` データベースの `myCollection` コレクションに対して、`find` および `update` の操作を実行する権限を与えています。
- ユーザーの作成とロールの指定: ユーザーを作成するとき、ユーザーに 1 つ以上のロールを指定して、それに応じた権限を与えることができます。例:
db.createUser(
{
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "customRole", db: "myDB" }
]
}
)
上記のコードでは、myUserという名前のユーザーを作成し、そのユーザーに対してcustomRoleというロールが与えられているが、このロールの権限はmyDBというデータベースに適用される
以上の設定によりMongoDBの権限フィールドを制御が可能となり、ロールの設定にて許可される操作や影響を受けるリソースを指定することで、データベースおよびコレクション上のフィールドに対するユーザーのアクセス権限や変更権限を制御することができる。