たとえば、次のユーザーがいる場合:
> db.system.users.find()
{ "user" : "testAdmin", "pwd" : "[some hash]", "roles" : [ "clusterAdmin" ], "otherDBRoles" : { "TestDB" : [ "readWrite" ] } }
dbAdmin
そして、そのユーザーにデータベースのアクセス許可を付与したいのでTestDB
、ユーザー レコードを削除してから、新しいアクセス許可で追加し直すことができます。
> db.system.users.remove({"user":"testAdmin"})
> db.addUser( { user: "testAdmin",
pwd: "[whatever]",
roles: [ "clusterAdmin" ],
otherDBRoles: { TestDB: [ "readWrite", "dbAdmin" ] } } )
しかし、それはハックでエラーが発生しやすいようです。
そして、テーブル レコード自体を更新できます。
> db.system.users.update({"user":"testAdmin"}, {$set:{ otherDBRoles: { TestDB: [ "readWrite", "dbAdmin" ] }}})
しかし、それが本当に正しいアクセス許可を作成するかどうかはわかりません。問題ないように見えますが、微妙に間違っている可能性があります。
これを行うより良い方法はありますか?