MongoDB用户权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB用户权限管理相关的知识,希望对你有一定的参考价值。

现在使用Role来管理用户,有一些内置的Role,也可以自定义Role。

内置的Role请参看http://docs.mongodb.org/manual/reference/built-in-roles/,权限最高的是root,然后管理用户的和管理数据库的Role是分离的,cluster也有专门的Role。

原先给数据库加用户的命令已经不管用了:

1
2
use [db_name]
db.addUser('[user]''[password]')

现在MongoDB安装好之后,先要用localhost登录上去,创建一个admin,给予userAdminAnyDatabase的权限,可以管理所有数据库的用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

然后退出,再用admin登录,创建其他用户,给予dbOwner的权限,可以对某个数据库进行所有操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mongo [ip]/admin -u admin -p admin
use [db_name]
db.createUser(
  {
    user: "[user]",
    pwd: "[password]",
    roles:
    [
      {
        role: "dbOwner",
        db: "[db_name]"
      }
    ]
  }
)

然后再用新建的用户登录,就可以操作数据库了。


以上是关于MongoDB用户权限管理的主要内容,如果未能解决你的问题,请参考以下文章

如何给mongodb管理员权限

MongoDB系列---用户及权限管理02

MongoDB的补充操作,用户权限管理,查询操作

MongoDB用户及权限管理:用户管理

MongoDB用户及权限管理:角色说明

MongoDB用户权限管理