簡體   English   中英

readAnyDatabase用戶可以在mongodb上創建數據庫

[英]readAnyDatabase user can create a database on mongodb

以下代碼留下一個空的虛擬數據庫。 此系統行為是故意的嗎? mongodb正在運行--auth模式,並且該用戶是readAnyDatabase角色的一部分。

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:pw@localhost: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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM