1

Google Cloud Platform、App Engine にデプロイされた Mean スタック インスタンスがあります。ssh トンネルを開いて、web ブラウザーから rockmongo を表示できます: http://127.0.0.1:8888/rockmongo/index.php?action=admin.index&host=0

App Engine から root とデフォルトのパスワードでログインできます。新しいデータベースを追加しようとすると、成功したと表示されますが、新しいデータベースがリストに表示されません。新しいユーザーを作成すると、そのユーザーが表示されます。コマンドでmongoにログインすると、新しいデータベースに切り替えることができますが、コレクション内のすべてのアイテムを見つけようとすると、ユーザーがそのアクションを実行する権限がないというエラーが表示されます.

db.getCollection('users').find({}) エラー: エラー: { "ok": 0、"errmsg": "新しいデータベースでコマンドを実行する権限がありません { 検索: \"ユーザー\"、フィルター: {} }"、"コード": 13 }

ユーザーに readWrite ロールを追加して再試行しましたが、うまくいきませんでした。db.getUser("username") を実行すると、「null」が返されます。

何が足りないの...

4

1 に答える 1

1

それを考え出した、私はしなければならなかった:

ルート bitnami ユーザーとしてログインします

use admin
db.createUser( { user: "newusername",
                 pwd: "newpassword",
                 roles: [  "userAdminAnyDatabase","readWriteAnyDatabase" ]})

それから

use newdatabase
                   db.createUser(
      {
        user: "newuser",
        pwd: "newpassword",
        roles: [ { role: "readWrite", db: "newdatabase" } ]
      }
    )

その後、エラーはなくなりました。bitnami や rockmongo よりも、mongo の役割と権限に関する問題の方が多いです。なぜ rockmongo が php 管理画面から新しいデータベースを表示しなかったのかはまだわかりません (これはすべて mongo コマンドラインを介して行われました)。

于 2016-12-05T20:00:56.230 に答える