为什么db.auth()仅在选择特定数据库后才能工作?

时间:2016-08-16 18:41:23

标签: mongodb

我启动, input [ type' "number", placeholder "Age", onIntInput Age ] [] 后,正在运行

mongo

返回db.auth("admin", "myGreatPassword") 。但这样做:

0

返回use admin db.auth("admin", "myGreatPassword")

我发现这很奇怪,因为1用户具有root权限,可以访问所有数据库并执行任何操作。

上述行为可能是什么原因?为什么我需要首先选择一个特定的数据库,在本例中为admin,以登录?

1 个答案:

答案 0 :(得分:3)

使用mongodb对特定数据库进行身份验证:该数据库包含定义用户及其角色的集合。然后可以授权该用户在多个数据库上执行操作,但是登录的操作针对特定数据库发生。

使用命令行工具时,这是--authenticationDatabase选项,在mongo shell中,身份验证命令针对当前数据库运行。