6

Robomongo 経由で Mongodb サーバーに接続しようとしています。

フィールド も設定したサーバーでに変更しBind_ipました。0.0.0.0mongod.confauth=true

RoboMongo からログインしようとすると、認証失敗エラーが発生します。

正直なところ、ユーザー名やパスワードが何かわかりません (Mongo のインストール後にユーザーを設定していませんでした。また、nodeJs を使用してデータベースにクエリを実行していて、ログインしようとすると、設定したくないのです)。 m 認証も失敗します [mongoskin の場合])

Mongodb にはデフォルトのユーザー名またはパスワードがありますか? または他に何ができますか?

4

2 に答える 2

4

Mongodb にはデフォルトのユーザー名またはパスワードがありますか?

MongoDB によって作成される既定のユーザーはありませんが、認証を有効にしたばかりで、最初のユーザー(ユーザー管理者である必要があります) をまだ作成していない場合は、localhost 経由で接続して初期ユーザーを設定する必要があります。特に認証を有効にした最初のユーザーの作成を許可するために、デフォルトで有効になっているlocalhost 例外があります。リモート接続は、有効なユーザー資格情報がないと認証できません。

必要なユーザーを作成したら、Robomongo またはmongoシェルやモンゴスキン アプリなどの別のインターフェイスを使用して、これらの資格情報でリモートからログインできるようになります。

localhost 例外を使用したくない場合は、別の方法として、認証を無効にして MongoDB サーバーを起動し、必要なユーザーをリモートで追加してから、認証を有効にしてサーバーを再起動します。

于 2015-01-07T06:52:34.697 に答える
2

必要なのはドキュメントだけです: http://docs.mongodb.org/manual/tutorial/enable-authentication/

管理者ユーザー(役割) を作成します。

use admin
db.createUser(
  {
    user: "siteUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

通常のユーザー(読み書きロール)を追加します。

use reporting
db.createUser(
    {
      user: "reportsUser",
      pwd: "12345678",
      roles: [
         { role: "read", db: "reporting" },
         { role: "read", db: "products" },
         { role: "read", db: "sales" },
         { role: "readWrite", db: "accounts" }
      ]
    }
)

管理者を追加するには、おそらく を使用して mongo を起動しauth=false、adminuser を追加して、再度有効にする必要がありauth=trueます。

ロールを表示するには:db.getRoles()

于 2015-01-06T18:41:02.253 に答える