如何创建一个完全访问MongoDB的用户?

时间:2014-04-01 14:12:17

标签: mongodb

这真让我烦恼。我打算创建一个用户来控制对MongoDB的所有访问,并为我的所有应用程序使用相同的用户。我意识到让不同的用户更加安全,但我想保持这一点。

不幸的是,提供超级用户访问权限似乎并不那么简单。到目前为止,我已将管理员用户指定为:

db.addUser({user:"admin", pwd:"ppp", 
roles: ["clusterAdmin", "readWriteAnyDatabase", "dbAdminAnyDatabase", "userAdminAnyDatabase"] } )

但是admin仍然不能用于对另一个数据库进行身份验证而不是管理数据库本身。例如 mongo raconteurdb -u admin -p MongoDB shell version: 2.4.9 Enter password: connecting to: raconteurdb Tue Apr 1 10:10:57.109 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228

我是否需要为每个数据库分别设置访问权限?当这些数据库被删除时,我会丢失该访问权限吗?

1 个答案:

答案 0 :(得分:2)

RipperDoc,

您可以使用admin用户对任何数据库进行身份验证。如果为用户设置了适当的权限,则可以使用以下命令:

mongo raconteurdb -u admin -p --authenticationDatabase admin

这将验证“admin”数据库中的“admin”用户设置,“raconteurdb”将是mongo-shell上的默认数据库。