针对特定db的Mongo身份验证

时间:2013-06-12 11:00:52

标签: mongodb

你能帮我看看如何使用mongo进行身份验证来访问数据库吗?

use admin
db.addUser( { user: "root", pwd: "root", roles: ["readWrite"] } )
db.auth('root', 'root')

我正在使用Ubuntu。 我做错了什么? 如何通过身份验证访问我的数据库?

2 个答案:

答案 0 :(得分:1)

您可以通过先更改为该数据库use dbname,然后为该特定数据库db.addUser('username','password')添加用户,将用户添加到特定数据库。完成此操作后,您可以使用mongo dbname -u username -p连接到该数据库,或者连接到mongo,然后更改为该数据库,然后执行db.auth('username','password')

管理数据库是一种特殊情况,因为授予此数据库中用户的权限授予任何数据库。 MongoDB文档中的一个示例是:

  

userAdmin是特定于数据库的权限,仅授予用户管理单个数据库上的用户的权限。但是,对于admin数据库,userAdmin允许用户获得userAdminAnyDatabase,因此对于admin数据库,只有这些角色实际上是相同的。

答案 1 :(得分:0)

我假设您实际上是在问两个问题:(1)如何设置MongoDB身份验证和(2)如何使用它。

尽管已经过了几年,但我不禁要链接official tutorial。这里是管理摘要:

  1. 在不进行身份验证的情况下启动MongoDB,连接到Mongo Shell并在admin DB中创建一个用户管理员。
  2. 断开与Mongo Shell的连接,并在配置文件中启用身份验证。如果找不到mongod.conf,则说明您使用的MongoDB版本已过时,应在继续之前认真考虑进行更新。
  3. 有时有必要重新启动MongoDB服务。
  4. 连接到MongoDB并使用您在步骤1中设置的用户名和密码作为用户管理员进行身份验证。
  5. 创建其他用户。您并不总是希望使用用户管理员来完成所有工作。
  6. 仅此而已。

更多资源: