![[MongoDB] 用户权限管理 [MongoDB] 用户权限管理](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
在新环境按照原来的步骤新装了MongoDB,结果出现了一些错误,才发现版本升到了2.6.1,用户权限相关的内容全部改掉了。
现在使用Role来管理用户,有一些内置的Role,也可以自定义Role。
内置的Role请参看http://docs.mongodb.org/manual/reference/built-in-roles/,权限最高的是root,然后管理用户的和管理数据库的Role是分离的,cluster也有专门的Role。
原先给数据库加用户的命令已经不管用了:
use [db_name]
db.addUser('[user]', '[password]')
现在MongoDB安装好之后,先要用localhost登录上去,创建一个admin,给予userAdminAnyDatabase的权限,可以管理所有数据库的用户:
use admin db.createUser(
{
user: "admin",
pwd: "admin",
roles:
[
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
}
)
然后退出,再用admin登录,创建其他用户,给予dbOwner的权限,可以对某个数据库进行所有操作:
mongo [ip]/admin -u admin -p admin use [db_name] db.createUser(
{
user: "[user]",
pwd: "[password]",
roles:
[
{
role: "dbOwner",
db: "[db_name]"
}
]
}
)
然后再用新建的用户登录,就可以操作数据库了。