1、需求说明
在Win10系统中安装好了MongoDB数据库以后,为了增加数据库的安全性,需要设置用户名和密码才能连接数据库。本文中使用的MongoDB 4.4.5 的版本,数据库下载地址:
https://www.mongodb.com/try/download/community
数据库安装教程:https://blog.csdn.net/p445098355/article/details/113178242
2、设置MongoDB用户名和密码
2.1、开启验证
先找到MongoDB的安装目录,在安装目录下找到 /bin/mongod.cfg 文件,找到下面的这句:
#security;
将其修改为:
security:
authorization: enabled
修改完成后要重启MongoDB服务,打开任务管理器,找到MongoDB服务,点击右键选择重新启动,效果如下图所示。
2.2、设置admin
打开命令行工具,输入以下命令:
# 进入mongodb数据库
mongo
# 打开admin数据库
use admin
# 创建用户
db.createUser({
user: 'admin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})
# 验证用户是否设置成功,执行下面命令如果显示1表示设置成功
db.auth('admin', '123456')
除了可以设置超级管理员之外,还可以为每个数据库单独设置管理员,并且可以单独设置操作数据库的权限,命令如下:
# 打开需要设置管理员的数据库
use test
# 创建用户
db.createUser({
user: 'tom', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色,即操作权限
db: 'test' // 数据库名
}]
})
MongoDB数据库默认的角色如下:
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
更多配置可以查阅官方文档:https://docs.mongodb.com/manual/reference/built-in-roles/
2.3、MongoDB用户操作的其他命令
我们还可以使用命令行工具对用户做其他操作。例如:
# 查看当前库下的用户
show users
# 删除用户
db.dropUser('testadmin')
# 修改用户密码
db.updateUser('admin', {pwd: '654321'})
# 密码认证
db.auth('admin', '654321')
3、连接数据库
- 使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上
mongo://admin:123456@localhost/
- 连接本地数据库服务器,端口默认27017
mongodb://localhost
- 在Node中使用mongoose连接数据库
mongodb://admin:123456@localhost:27017/test?authSource=admin