这真让我烦恼。我打算创建一个用户来控制对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
我是否需要为每个数据库分别设置访问权限?当这些数据库被删除时,我会丢失该访问权限吗?
答案 0 :(得分:2)
RipperDoc,
您可以使用admin用户对任何数据库进行身份验证。如果为用户设置了适当的权限,则可以使用以下命令:
mongo raconteurdb -u admin -p --authenticationDatabase admin
这将验证“admin”数据库中的“admin”用户设置,“raconteurdb”将是mongo-shell上的默认数据库。