2017-11-27 2 views
1

管理者ユーザーを作成しようとしていますが、これはどのデータベースでも認証できます。 adminデータベースに接続するときにそれが正常に動作します任意のデータベース(まだ存在しないデータベースを含む)にも認証できる管理者を作成します。

db.createUser({ 
    "user": "admin", 
    "pwd": "adminPassword", 
    "roles": [ 
     "userAdminAnyDatabase", 
     "dbAdminAnyDatabase", 
     "readWriteAnyDatabase" 
    ] 
}); 

:私はこのような何かをするとき。しかし、私はこのような何かをしようとすると動作しません:mongodb://admin:[email protected]:27017/someDatabaseHeresomeDatabaseHereに認証することはできません。まず、管理データベースに認証してから、someDatabaseHereに変更してください。

上記のようにURIを取得したいのですが、後で各データベースのユーザーを作成する必要はありません。

また、資格情報(単にmongodb://localhost:27017/someDatabaseHere)を使用せずにローカルで認証したいのですが、リモートで資格情報を要求しています。それはうまくいくかもしれない。

答えて

1

私はまずadminデータベースを認証しないと、後でsomeDatabaseHereで変更する必要があります。

(MongoDB 3.4.10以降)これは認証メカニズムの仕組みです。これが--authenticationDatabase parameterの目的です。ユーザーがadminデータベースで定義されている場合、既存のデータベースとは関係なく、サーバー上のすべてのデータベースにアクセスできる必要があります。

私はMongoDBのロールベースの認証方式ではなくIPベースの認証を使用していますので、現在、これは、不可能です

資格情報

せずにローカルで認証したいと思います。

関連する問題