2017-01-09 9 views
0

adminデータベース上で "userAdminAnyDatabase"ロールを持つユーザーを管理データベース上に作成しました。 アクセスレベルは、データベースをリストしようとしているときに(ショーデータベースコマンドを使用して)正常に動作しますが、私は管理者以外の任意のデータベース上ショーコレクションコマンドを実行すると、次のエラーがスローされます。MongoDBユーザーに追加のデータベースへのアクセスを提供する

Error: couldn't add user: No role named [email protected]

は、私が追加する必要がありますか:私は次のエラーを取得する

db.updateUser("xyz",{pwd:"abcd",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"userAdminAnyDatabase",db:"employee"}]})

:ここで私は、次のコマンドを使用してアクセスを提供するために、ユーザーを更新しようとした

Error: listCollections failed: { "ok" : 0, "errmsg" : "not authorized on xxxx to execute command { listCollections: 1.0, filter: {} }", "code" : 13, "codeName" : "Unauthorized"

エラーがありますこれが機能するためには、特に各データベースの役割は?

答えて

0

userAdminAnyDatabaseロールでは、ユーザーを管理できます。この役割はアプリケーションデータベース/コレクションからデータを読み書きできません。

read/readWrite操作では、read/readWriteロールでデータベース上のユーザを作成するか、readAnyDatabase/readWriteAnyDatabaseロールを管理ユーザに追加することができます。

+0

私はこれを働かせました。あなたの上記の説明と私の修正から理解していただきたいのは、userAdminAnyDatabaseロールは管理データベース内にのみ存在し、そのユーザーはどのデータベースでもユーザーを管理する権利を与えられることです。読み書きするデータベースにユーザーを作成する必要があります。他のデータベースへの読み書きを許可されている中央データベースにすべてのユーザーを持つという概念は、Mongoには存在しないようです。 – kl27driver

関連する問題