MongoDB用户权限管理

1. 进入MongoDB的shell

注意:mongo.conf文件中的auth应设置为false
启动mongo服务

net start MongoDB

2. 切换数据库

use admin

3. 创建admin超级管理员用户

第一次创建用户时应首先创建一个超级管理员用户

use admin
db.createUser(
  {
    user: "admin",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
);
exit;

user字段,为新用户的名字;
pwd字段,用户的密码;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。
db是指定数据库的名字,admin是管理数据库。

role相关的角色:

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、4. clusterMonitor、hostManage;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system

4. 修改mongo.conf配置

完成这一步操作之后,退出Mongodb,结束MongoDB服务

net stop MongDB

修改mongo.conf中的的authtrue,启动MongoDB服务

net start MongDB

5. 登录超级用户创建新用户

用之前创建的user进行authentication验证登录

mongo -u admin -p password --authenticationDatabase admin

成功登录之后,再创建拥有其他role的其他user, 例如这里我创建一个有test数据库所有权限的testuser:

use test
db.createUser(
  {
    user: "testuser",
    pwd: "test",
    roles: [ { role: "dbAdmin", db: "test" } ]
  }
);

6. 查看创建的用户

show users 或 db.system.users.find() 或 db.runCommand({usersInfo:"userName"})

至此就可以使用新建的用户登录MongoDB啦

7. 修改密码

use admin
db.changeUserPassword("username", "xxx")

可以下载MongoDB的可视化工具 Robo 3T,下载链接https://robomongo.org/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容