MongoDB设置密码并使用MongoDB Compass连接

一、安装MongoDB Compass,了解内置角色

MongoDB 安装成功后,默认是没有密码的,需要手动创建用户并设置。

MongoDB Compass 是 MongoDB 官方推出的图形化工具,可以在官网根据自己系统,下载安装:

MongoDB 提供了一系列内置角色,用于权限管理:

| 角色 | 权限描述 |

数据库用户角色
read 允许读取指定数据库的所有集合数据(查询、列表索引等)。
readWrite 允许读写指定数据库的所有集合数据(增删改查文档、创建索引等)。
dbAdmin 允许执行数据库管理操作(创建/删除索引、统计信息、数据压缩等), 但不能管理用户。
userAdmin 允许管理当前数据库的用户和角色(创建、删除、授权)。
dbOwner 最高权限 :包含 readWrite、dbAdmin 和 userAdmin 的所有权限。
数据库管理角色
readAnyDatabase 允许读取所有数据库的数据(类似 read,但作用于所有库)。
readWriteAnyDatabase 允许读写所有数据库的数据(类似 readWrite,但作用于所有库)。
userAdminAnyDatabase 允许管理所有数据库的用户和角色(类似 userAdmin,但作用于所有库)。
dbAdminAnyDatabase 允许管理所有数据库的元数据(类似 dbAdmin,但作用于所有库)。
clusterMonitor 允许监控集群状态(查询诊断命令、查看分片/副本集状态等)。
clusterManager 允许管理集群配置(添加分片、修改副本集配置、迁移数据等)。
clusterAdmin 最高权限 :包含 clusterMonitor、clusterManager 和 hostManager 的所有权限。
hostManager 允许管理服务器的启停、日志轮转等主机级操作。
backup 允许执行数据库备份(如 mongodump)。
restore 允许执行数据库恢复(如 mongorestore),需配合 backup 角色使用。
root 最高权限:拥有所有数据库和集群的管理权限,等同于 dbOwnerAnyDatabase + userAdminAnyDatabase + clusterAdmin。
__system MongoDB 内部保留角色,仅用于系统级操作(不建议手动分配)。
enableSharding 允许对数据库启用分片功能。
restrict 禁止用户执行任何操作(用于临时禁用账户)。

二、创建用户

打开 MongoDB Compass,先通过无认证的方式连接本机的 MongoDB:

MongoDB 自带三个默认的数据库,分别是 admin, config, local,我们接下来要操作 admin 数据库:

首先进入 MongoDB shell,输入 use admin,切换到 admin 数据库:

bash 复制代码
use admin

然后创建一个超级管理员用户:

bash 复制代码
db.createUser({
  user: "adminUser",
  pwd: "strongPassword123", // 设置安全的密码
  roles: [{ role: "root", db: "admin" }]
})

一定要先创建一个root权限的管理员,避免后续出现问题。

创建完成后,输入 show collections 查看 admin 数据库有哪些集合:

输入 db.system.users.find().pretty() 可以查看创建的用户:

三、修改配置文件,重启MongoDB

找到 MongoDB 的配置文件 mongod.conf,向文件中添加:

bash 复制代码
security:
  authorization: enabled

保存配置文件,重启 MongoDB。

打开 MongoDB Compass,展开 Advanced Connection Options ,点击 Authentication,输入用户名和密码,重新连接:

Authentication Database 这里要填 admin,因为认证信息在 admin 数据库里面。

四、配置SpringBoot的yml文件

yml 配置文件如下,需要增加 username, password, authentication-database三个配置项

bash 复制代码
spring:
  data:
    mongodb:
	  port: 27017
	  host: localhost
	  database: Data
	  username: adminUser #MongoDB用户名
	  password: strongPassword123 #MongoDB密码
	  authentication-database: admin #MongoDB验证数据库

五、添加其他用户

再次进入 MongoDB shell,输入 use admin,添加一个权限为 readWriteAnyDatabase 的用户

bash 复制代码
db.createUser({
  user: "localUser",
  pwd: "strongPassword123",
  roles: [{ role: "readWriteAnyDatabase", db: "admin" }]
})

像上面一样修改 SpringBoot 的 yml 配置即可,实测这个权限不影响 SpringBoot 项目的业务功能

相关推荐
l1t1 分钟前
DeepSeek总结的pgrust以光速编程:构建 Gravity 查询引擎
数据库·人工智能·postgresql
木木_Q4057733498 分钟前
Oracle 增量同步配置指南:只搬变了的数据,不重复也不漏数
数据库·oracle·数据同步·数据库同步·增量同步
升鲜宝供应链及收银系统源代码服务29 分钟前
Java Spring Boot 商业版 升鲜宝供应链管理系统--商品模块表与字段分析(商品管理页面业务逻辑与数据表关系分析)
数据库·生鲜配送系统排名·生鲜配送系统架构设计·b2b订货商城解决方案·生鲜配送系统源代码出售·生鲜配送系统设计源代码
灵晔君42 分钟前
【MySQL】库的操作
数据库·mysql
2603_969694851 小时前
【MySQL学习笔记】DQL(基础查询/条件/聚合/分组/排序/分页)与 DCL(用户权限)全解析
数据库·笔记·学习·mysql·学习方法
Paper数据分析-经管学术1 小时前
1985-2025年地级市绿色发明专利被引量
数据库
念何架构之路2 小时前
Go 标准库 database/sql 详解
数据库·sql·golang
云边有个稻草人2 小时前
MongoDB迁移不止是数据搬家:用KingbaseES重构文档数据开发
数据库·mongodb·重构·国产数据库·信创数据库·数据库国产化·mongodb迁移
MaAidan2 小时前
让 Agent 接上 YApi、Yuque、数据库、Redis 和日志:我的 MCP 资源绑定设计
数据库·redis·缓存
pikapika~~~2 小时前
Mysql+Redis八股
数据库·redis·mysql