2017-03-31 10 views
1

私はsuperAdminとして認証しようとしたとき、私はDB MYNEWDBMongoDB db.authがユーザーを切り替えないのはなぜですか?

[admin] user: root>use myNewDB 
switched to db myNewDB 
[myNewDB] user: root>show users 
{ 
"_id" : "myNewDB.superAdmin", 
"user" : "superAdmin", 
"db" : "myNewDB", 
"roles" : [ 
    { 
     "role" : "userAdmin", 
     "db" : "myNewDB" 
    }, 
    { 
     "role" : "readWrite", 
     "db" : "myNewDB" 
    }, 
    { 
     "role" : "dbAdmin", 
     "db" : "myNewDB" 
    } 
    ] 
} 

でadminユーザーを持っている:

[myNewDB] user: root>db.auth("superAdmin","superAdmin123") 
1 
[myNewDB] user: root> 

を動作しているようですが、私はまだユーザー「ルート」として接続しています、はず

[myNewDB] user: superAdmin> 

UPDATE

H:私はとして認証されませんEREは私monger.js

prompt = function() { 
    database = db.getName() 
    user = db.runCommand({connectionStatus : 
    1}).authInfo.authenticatedUsers[0] 
    if (user) { 
     return "["+ database +"] " + "user: " + user.user + ">" 
    } 
    return "["+ database +"] " + ">" 
} 

答えて

2

である私はあなたのmongoシェルを使用している、とあなたは、おそらくあなたは、現在のユーザとデータベースの表示にカスタマイズされたプロンプトを取得している方法です.mongorc.jsファイルを使用していることを前提としてい。

私はあなたの.mongorc.jsファイルを見て、そして/またはここでそれを共有することをお勧めします。認証時にプロンプ​​トが変わる必要があります。例.mongorc.jsファイルについては、this threadを参照してください。

EDIT: さらに、私は複数のデータベースに対して認証されていると考えています。そして、あなたの.mongorc.jsはおそらく最初のユーザーを掴んでいるだけです。あなたの例を再度実行し、db.runCommand({connectionStatus : 1})を実行すると、複数のユーザーが表示されます。

+0

ありがとうございましたMongoDBのドキュメントはそれを発見した人には分かりにくいです... db.runCommand({connectionStatus:1})。 2つのデータベースに対して2人の認証されたユーザーを効果的に示しています...ヒントとリンクのおかげで... – erwin

関連する問題