私は、このユーザー持っている場合たとえば、:MongoDBのユーザー権限はどのように変更しますか?
> db.system.users.find()
{ "user" : "testAdmin", "pwd" : "[some hash]", "roles" : [ "clusterAdmin" ], "otherDBRoles" : { "TestDB" : [ "readWrite" ] } }
をそして、私はそのユーザーにTestDB
データベース上dbAdmin
権限を与えたいと思う、私は、新しい権限でそれを再度追加ユーザレコードを削除することができます。
> 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" ] }}})
しかし、それは本当に正しい権限を作成する場合、私はわからない - それは正常に見えるが、それは微妙に間違っている可能性があります。
これを行うより良い方法はありますか?
MongoDB権限チェッカーは、すべてのアクセス時にデータベースから読み取るのですか、キャッシュされていますか? –
アクセスごとに。回答の更新部分を参照してください。 –
いいえ、答えはありません: db.system.users.update({"user": "testAdmin"}、{$ addToSet:{'otherDBRoles.TestDB': 'dbAdmin'}}、false、 false)(db.system.usersはdb.usersではない) –