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中的的auth
为true
,启动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/