2016-08-17 91 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”命令,因为它很便宜,而且不需要验证,因此它是检查服务器是否可用的 的简单方法。