2014-11-25 122 views
0

以下代碼留下空的虛擬數據庫。這是系統行爲的目的? mongodb正在運行--auth模式,並且用戶是readAnyDatabase角色的一部分。readAnyDatabase用戶可以在mongodb上創建數據庫

import pymongo print CORE_PROD_URL mongo = pymongo.MongoClient(CORE_PROD_URL) print mongo.database_names() print mongo.dummy.test.count() print mongo.database_names()

這給:

mongodb://read_only_user:[email protected]:27017 [u'admin', u'local'] 0 [u'admin', u'local', u'dummy']

相同的行爲發生與find()

mongo.dummy.test.insert({‘foo’: ‘bar’}) 

拋出一個異常

OperationFailure: not authorized on new_db to execute command 

回答

0

這是一個已知的錯誤,SERVER-11051。下次重新啓動服務器時,數據庫名稱將從「database_names()」中消失,但當您下次從「虛擬」數據庫讀取時,它將重新出現。