[MongoDB] 用户权限管理

本文介绍如何在MongoDB 2.6中通过角色(Role)进行用户权限管理,包括创建拥有userAdminAnyDatabase权限的管理员用户,以及创建具有dbOwner权限的数据库用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[MongoDB] 用户权限管理

在新环境按照原来的步骤新装了MongoDB,结果出现了一些错误,才发现版本升到了2.6.1,用户权限相关的内容全部改掉了。

现在使用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: '[username]',
    pwd: '[pwd]',
    roles:
    [
      {
        role: 'dbOwner',
        db: '[db_name]'
      }
    ]
  }
)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值