2015-04-12 29 views
0

jbossews.log段:jbossews登錄openshift顯示com.mongodb.CommandFailureException:{「serverUsed」:「127.xx2.xxx.xx0:27017」,「ok」:0.0,「errmsg」:「未授權」}

引起:com.mongodb.CommandFailureException:{ 「serverUsed」: 「127.xxx.xx3.xx0:27017」, 「OK」:0.0 「ERRMSG」: 「未授權」} 在com.mongodb.CommandResult.getException(CommandResult.java:76) 在com.mongodb.CommandResult.throwOnError(CommandResult.java:131)

的mongodb.log段:我覺得它給我ABO由於「命令被拒絕:{listDatabases:1}」行,因此例外情況爲 。

Sun Apr 12 12:30:24.150 [conn1] authenticate db:admin {authenticate:1,nonce:「#####」,user:「admin」,key:「##### #「}
Sun Apr 12 12:31:54.580 [conn3] authenticate db:mydb {authenticate:1,user:」admin「,nonce:」#######「,key:」#### ###「}
Sun Apr 12 12:31:54.582 [conn3] command denied:{listDatabases:1}
Sun Apr 12 13:20:14.781 [conn4] authenticate db:admin {authenticate:1,user: 「admin」,nonce:「######」,key:「#######」}
Sun Apr 12 13:20:15.031 [conn4] command mydb。$ cmd command:{$ eval :CodeWScope(function(){return db.getCollectionNames();},{}),args:{} } ntoreturn:1 keyUpdates:0 locks(micros)W:223980 reslen:109 224ms
Sun Apr 12 13:20:15.141 [conn5] authenticate db:admin {authenticate:1,user:「admin」,nonce:「# #####」,鍵: 「#######」}

我缺少什麼?任何幫助將不勝感激。

+0

用戶'admin'做MongoDB中的listDatabases操作不具有運行該命令的權限。檢查「admin」的權限。 – wdberkeley

+0

用戶管理員擁有所有權限,它是mongoDB carteridge的默認用戶。我認爲listDatabases操作在mydb數據庫上執行,它應該在管理數據庫上執行。我試着在mydb數據庫上運行{listDatabases:1}。它給了我同樣的錯誤。 –

回答

0

如果您使用的是mongodb盒式磁帶,則您的用戶名和密碼應與安裝在環境變量中的盒式磁帶相匹配。請使用這些,看看你是否得到相同的錯誤。

以下是身份驗證代碼的示例 - 您是否正在做類似於此的操作?

https://github.com/thesteve0/javaparks/blob/master/src/main/java/org/openshift/data/DBConnection.java

+0

感謝TheSteve0的回覆,我使用的是環境變量中的用戶名和密碼。我認爲它能夠使用「admin」密碼對admin和mydb數據庫進行身份驗證,但在mydb數據庫上執行listDatabases操作/命令。 –