Mongodb 权限管理及常用命令

1 用户权限

 

2 创建管理员:

非授权模式开启mongoDB服务。

mongod --port 27017 --dbpath /data/db

然后进入admin数据库,执行如下命令:

use admin

db.createUser(
  {
    user: "myadmin",
    pwd: "myadmin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

3 创建普通用户

3.1以授权模式开启mongoDB服务

mongod --auth --port 27017 --dbpath /data/db

3.2 管理员db.auth登录

use admin

db.auth("myadmin","myadmin")

 

3.3 创建普通用户

先创建数据库:  use  testdb(数据库名)   没有则创建,有则使用。

   然后在创建此数据库下的用户:

   db.createUser({user:"testuser",pwd:"testuser",roles:[{role:"readWrite",db:"testdb"}]});

 

3.4 登录普通用户

testuser只有testdb的读写权限,因此只能在testdb下授权通过,  admin库是没有权限的。

use testdb

db.auth("testuser","testuser")

 

4 创建角色testrole

该角色具有testdb下所有集合的所有操作。

use admin ; // 进入名为admin的数据库下,下同

db.createRole( 
 { role:"testrole",  
 privileges: [     
 { 
 resource:  { 
 db:"testdb",   
 collection:""  //db下所有集合 
 }, 
 actions: [ "find", "insert", "remove","update" ]  
 } 
 ], 
 roles: [ ]   
 })

5 角色授权给用户

在创建用户时可以指定角色。也可以用户 添加/回收 角色

use admin;

//为用户添加角色

db.grantRolesToUser("testuser", // 用户名

[{ role: "testrole", // 需要添加的角色名

  db: "testdb" // 角色对应的认证库,即角色创建时所在的数据库

}])

 

读写DB权限给user

db.grantRolesToUser("testuser",  

[{ role: "readWrite", 

db: "testdb"  

}])

 

修改权限

db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})

 

6 查看用户权限

可以使用db.getUsers()查看某个数据库中的所有用户

db.getUser("user1")查看数据库中特定用户

7  撤销权限

db.revokeRolesFromUser("testuser",[    { role: "read",db:"admin"}  ] )

 

7创建集合collection

db.createCollection("testcollection")

 

插入数据:

 

参考文档:https://segmentfault.com/a/1190000015768430

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值