如何对MongoDB3.2进行用户权限管理配置

发布时间:2017-11-22 编辑:小张个人博客 查看次数:5362

例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,MongoDB如果不配置auth验证的情况是等于游客也是超级管理员的,所有库和集合都有读写权限

mongodb-用户管理

MongoDB数据库角色

  • 内建的角色

  • 数据库用户角色:read、readWrite;

  • 数据库管理角色:dbAdmin、dbOwner、userAdmin

  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager

  • 备份恢复角色:backup、restore

  • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

  • 超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase

  • 内部角色:__system

MongoDB角色说明:

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

mongodb-添加管理员用户

注意:

1、在mongodb中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据.

use admin , -->相当于进入超级用户管理模式.

2、mongo的用户是以数据库为单位来建立的, 每个数据库有自己的管理员.

3、我们在设置用户时,需要先在admin数据库下建立管理员---这个管理员登陆后,相当于超级管理员.

userAdminAnyDatabase 权限只是针对用户管理的,对其他是没有权限的

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

mongodb-开启权限验证

注意: 添加用户后,我们再次退出并登陆,发现依然可以直接读数据库?

原因: mongodb服务器启动时, 默认不是需要认证的.

要让用户生效, 需要启动服务器时,就指定 --auth 选项.

这样, 操作时,就需要认证了.

mongod --dbpath d:\MongoDB\data\db --auth

mongodb-开启权限验证

mongodb-认证用户

use admin

# db.auth(用户名,密码);
db.auth('test','test');

mongodb-开启权限验证

允许用户读写指定数据库

use xiaozhang
db.createUser(
   {
     user: "test1",
     pwd: "test1",
     roles: [ { role: "readWrite", db: "xiaozhang" } ]
   }
)
# 验证,因为在xiaozhang下面添加的帐号,所以要到xiaozhang下面验证。
db.auth('test','test');

允许用户读写指定数据库

mongodb-修改用户密码

use test
db.changeUserPassword("test", "123456");

mongodb-删除用户

use test
db.removeUser(用户名);



出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号