2016-08-17 101 views
1

我在我的MongoDB數據庫上啓用了身份驗證,並通過 pymongo連接到它。當連接到數據庫的用戶擁有所有相關權限時,一切正常,但當權限有限的用戶連接時,只有在執行第一個命令時纔會引發異常。 有沒有一種方法可以檢查用戶對連接的權限?Pymongo檢查連接的用戶權限

+0

我的答案是否適合您? – DAXaholic

回答

0

如果您使用的是最新的pymongo你可能要檢查這個page of the docs

在PyMongo 3版本中,MongoClient構造而 連接到服務器或服務器不再塊,它不再加薪 連接失敗(如果它們不可用),如果用戶憑證錯誤,則返回ConfigurationError( )。相反,構造函數立即返回 並啓動後臺線程的連接過程。 連接選項被添加來控制這些線程是立即開始,還是第一次使用客戶端時是否爲 。

他們還提供了一個「處理方法」,如果你想知道直接連接是否在與此

from pymongo.errors import ConnectionFailure 
client = MongoClient(connect=False) 
try: 
    result = client.admin.command("ismaster") 
except ConnectionFailure: 
    print("Server not available") 

之所以成功建立使用上述client.admin.command("ismaster")是由於一個事實,即任何特殊權限需要執行它

任何操作都可以用來確定服務器是否可用。我們在 這裏選擇「ismaster」命令,因爲它很便宜,而且不需要驗證,因此它是檢查服務器是否可用的 的簡單方法。