Mongodb 启用认证
MongoDB 启用认证的完整指南
启用 MongoDB 的认证功能需要按照以下步骤进行设置:
检查 MongoDB 配置文件
在 MongoDB 配置文件中(通常为 mongod.conf),需要启用认证功能。
修改配置文件
打开 mongod.conf 文件,找到或添加以下内容:
systemLog:destination: filepath: /your_path/mongo.loglogAppend: true
storage:dbPath: /your_path/mongodb
net:bindIp: *********, ::1ipv6: true
security:authorization: enabled
- 如果是 Homebrew 安装的 MongoDB,配置文件路径通常为 /opt/homebrew/etc/mongod.conf。
- 如果是手动安装的 MongoDB,请确保路径正确,或者创建自己的配置文件。
重启 MongoDB 服务
修改完配置文件后,重启 MongoDB 服务:
mongod --config /your_path/mongod.conf
mongod --config /opt/homebrew/etc/mongod.conf
或者:
brew services restart mongodb-community@<version>
启动 MongoDB(无认证模式)
如果数据库未启用用户认证,可以先以无认证模式启动 MongoDB,创建管理员用户。
启动命令:
mongod --config /your_path/mongod.conf
创建管理员用户
进入 MongoDB Shell,连接数据库:
mongosh "mongodb://127.0.0.1:27017"
切换到 admin 数据库:
use admin
创建管理员用户:
db.createUser({user: "admin",pwd: "your_password", // 设置强密码roles: [ { role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" }]
})
- userAdminAnyDatabase
- 允许该用户在所有数据库上管理用户。
- readWriteAnyDatabase
- 跨数据库的读写权限:用户可以对 所有非系统数据库 执行 read(读取)和 write(写入)操作,包括插入、更新、删除和查询文档。
- 不能操作 admin 数据库的配置或管理数据:虽然用户可以访问 admin 数据库(因为它是默认管理数据库),但无法修改数据库的配置或用户管理数据(需要更高权限,如 userAdminAnyDatabase 或 dbAdminAnyDatabase)。
- clusterAdmin
- 允许关闭数据库等管理操作。
- 建议将密码设置为复杂密码以保证安全性。
验证管理员用户
退出 MongoDB Shell,然后以认证模式重启 MongoDB:
mongod --config /your_path/mongod.conf
使用管理员用户连接 MongoDB:
mongosh -u admin -p your_password --authenticationDatabase admin
成功登录后,验证管理员用户权限:
use admin
db.getUsers()
创建普通用户
如果需要对特定数据库的访问权限进行限制,可以创建普通用户。
切换到目标数据库:
use your_database_name
创建普通用户:
db.createUser({user: "user_name",pwd: "user_password",roles: [ { role: "readWrite", db: "your_database_name" } ]
})
- readWrite 角色允许该用户对指定数据库进行读写操作。
启动认证并测试
确保 mongod.conf 中已启用认证(即 authorization: enabled)。
使用普通用户登录:
mongosh -u user_name -p user_password --authenticationDatabase your_database_name
测试权限:
db.collection_name.find() // 测试读取权限
db.collection_name.insert({ key: "value" }) // 测试写入权限
注意事项
- 数据备份:在启用认证前,请确保所有重要数据已备份。
- 权限分配:为不同的用户分配最小权限,以减少安全风险。
- 密码管理:妥善管理用户密码,定期更新以防泄露。
优雅的关闭 MongoDB 服务
db.adminCommand({ shutdown: 1 })
验证是否已经关闭:
// 使用 ps 查看进程:
ps aux | grep mongod
// 使用 mongosh 连接:
mongosh
相关文章:
Mongodb 启用认证
MongoDB 启用认证的完整指南 启用 MongoDB 的认证功能需要按照以下步骤进行设置: 检查 MongoDB 配置文件 在 MongoDB 配置文件中(通常为 mongod.conf),需要启用认证功能。 修改配置文件 打开 mongod.conf 文件,找…...
QT:vlc出错处理及重新播放
这个问题一直想解决,昨天认真研究了一下。 要点 视频用的Widget不能重复使用,每次出错后,都要新建。 回调函数的处理。 代码1 关键在于libvlc_event_attach void VideoWidget::play() {libvlc_media_t* media;if (strstr(video_path, &…...
密钥管理系统在数据安全解决方案中的重要性
密钥管理系统在数据安全解决方案中占据着举足轻重的地位,其重要性体现在以下几个方面: 一、保障数据机密性 密钥管理系统通过生成、存储和管理加密密钥,确保了数据的机密性。这些密钥用于加密和解密数据,只有授权用户才能访问和…...
Docker的容器编排
目录 1. 什么是容器编排(Docker Compose)2. 容器编排的功能3. 容器编排文件(docker-compose.yml)的介绍3.1 文件语法版本3.2 文件基本结构及常见指令 4. Docker Compose命令详解4.1 Docker Compose命令清单4.2 命令格式和常见选项…...
Java Web项目部署教程简单实用
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
推送本地仓库到远程git仓库
目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…...
线性池学习
一、什么是进程?什么是线程? 1. 进程的定义 从操作系统的角度解释: 进程是操作系统分配资源和调度执行的基本单位。每个进程都是操作系统中一个独立的实体,拥有自己的内存空间、文件描述符、代码、数据等资源。进程是程序在执行…...
微积分复习笔记 Calculus Volume 2 - 4.3 Separable Equations
4.3 Separable Equations - Calculus Volume 2 | OpenStax...
前端项目部署方法
ngnix服务器部署 下载nignx,我下的是windows版本的 下载链接:[https://nginx.org/en/download.html](https://nginx.org/en/download.html) 解压文件 如果原本的80端口号被占用了,可以改为其他的端口号 可以点击nginx.exe文件启动nginx,它可能…...
Docker创建一个mongodb实例,并用springboot连接 mongodb进行读写文件
一、通过Docker 进行运行一个 mongodb实例 1、拉取镜像 docker pull mongo:5.0.5 2、创建 mongodb容器实例 docker run -d --name mongodb2 \-e MONGO_INITDB_ROOT_USERNAMEsalaryMongo \-e MONGO_INITDB_ROOT_PASSWORD123456 \-p 27017:27017 \mongo:5.0.5 3、进入容器&am…...
Android app反编译 攻与防
大概是2020年的时候,有一次,我们的竞争同行有另外一家公司要用我们的安卓软件app,拉了个群,告知他用一个软件多少钱,然后在群里发了一个我打包的apk包。结果就没有下文了。又过了一个月。我同事在那个要买我们apk的人的朋友圈&…...
ElasticSearch 简介
一、什么是 ElastcSearch? ElasticSearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎。 1.1 ElasticSearh 的基本术语概念 index 索引 索引类似与 mysql 中的数据库,ES 中的索引是存储数据的地方,包含了一堆有相似结构的文档数据…...
Kerberos实验
kdc:192.168.72.163 客户端(机器账户win10):192.168.72.159 用户:administrator 抓包:开机登录win10,使用administrator域用户凭据登录。 生成 Kerberos 解密文件 抓取 krbtgt 用户和 win1…...
Android之RecyclerView显示数据列表和网格
一、RecyclerView的优势 RecyclerView 的最大优势在于,它对大型列表来说非常高效: 默认情况下,RecyclerView 仅会处理或绘制当前显示在屏幕上的项。例如,如果您的列表包含一千个元素,但只有 10 个元素可见࿰…...
docker mysql挂载
在提供的 docker run 命令中,已经挂载了三个卷到 MySQL 容器中:日志目录、数据目录和配置目录。然而,还没有挂载一个包含 cube_admin.sql 文件的目录。要将 SQL 文件放入容器中并在 MySQL 中执行它,可以按照以下步骤操作ÿ…...
顺序表-递增有序表合并
两个递增有序表合并操作 题目: 将两个递增有序的顺序表 A 和 B 合并成一个新的递增有序顺序表 C。 思路: 使用三个索引 i, j, k 分别遍历顺序表 A, B 和合并后的顺序表 C。比较 A 和 B 当前索引指向的元素,将较小的元素放入 C 中…...
【Qt】qt安装
在工作一年之后,还是想做一个Qt的教程,遥想研一刚刚接触Qt,从0到1学习,没有什么参考书籍,网上的资料也不多,幸好Qt官方文档写得好,加上自己肯研究,才堪堪入门。 现在我想自己写一个…...
CXF WebService SpringBoot 添加拦截器,处理响应报文格式
描述 XFIRE升级CXF框架,但是对接的系统不做调整,这时候就要保证参数报文和响应报文和以前是一致的。但是不同的框架有不同的规则,想要将报文调整的一致,就需要用到拦截器拦截报文,自定义解析处理。 CXF框架本身就是支…...
vue iframe进行父子页面通信并切换URL
使用通义千问提问后得到一个很好的示例。 需求是2个项目需要使用同一个面包屑进行跳转,其中一个是iframe所在的项目,另一个需要通过地址访问。通过 window.parent.postMessage ,帮助 <iframe> 内嵌入的子页面和其父页面之间进行跨域通…...
基于Spring Boot的摄影师分享交流社区
一、系统背景与目的 随着摄影技术的不断发展和摄影爱好者群体的日益扩大,摄影师们需要一个能够展示自己作品、分享摄影心得、交流摄影技巧的平台。基于Spring Boot的摄影师分享交流社区应运而生,它旨在满足摄影师们的这些需求,促进摄影文化的…...
从炸管到稳定运行:我的MOSFET应用避坑实录(附热设计、驱动电路实测数据)
从炸管到稳定运行:我的MOSFET应用避坑实录 去年夏天,当我设计的48V转12V DC-DC模块第三次在高温测试中炸毁时,实验室里弥漫的焦糊味终于让我意识到:MOSFET的应用远不是选个低Rds(on)就万事大吉。作为从业十年的电源工程师&#x…...
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是一款专为机械键盘爱好者设计的开源固件刷写工具…...
找不到msvcr120.dll解决方法:2026年有效的一键修复与手动安装步骤
正玩着游戏或做着设计图,屏幕突然弹出“找不到msvcr120.dll”的提示,相信很多Windows用户都遇到过这种令人抓狂的时刻。这个错误意味着你的电脑缺少了某个软件或游戏运行所必需的“零件”。别担心,这个零件就是Microsoft Visual C 2013运行库…...
突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南
突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录ÿ…...
5分钟快速掌握Bypass Paywalls Clean:终极内容解锁工具完整指南
5分钟快速掌握Bypass Paywalls Clean:终极内容解锁工具完整指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 你是否经常遇到想阅读优质文章却被付费墙阻挡的烦恼&#…...
C++引用:高效编程的技巧
C引用的本质与特性 引用是已存在变量的别名,与变量共享同一内存地址。声明时必须初始化且不可更改绑定对象: int x 10; int& ref x; // ref成为x的别名 ref 20; // 修改x的值引用与指针的核心区别 初始化要求:引用必须声明时初始…...
精选 Skills 推荐:10 个让 Coding Agent 如虎添翼的Skills + 优质来源分享
精选 Skills 推荐:10 个让 Coding Agent 如虎添翼的Skills 优质来源分享 本篇是 Vibecoding 系列教程 的工具导向专题篇。 前篇:进阶教程(一):MCP Skills 让 coding agent 有自己的工具系列合集:Vibecodi…...
【限时开源】Polars 2.0清洗模板库V1.0发布:含金融时序对齐、电商ID映射、日志正则归一化等9大高复用Pipeline
第一章:Polars 2.0大规模数据清洗技巧入门到精通教程 Polars 2.0 是专为高性能、内存安全与并行计算设计的 DataFrame 库,其惰性执行引擎与零拷贝语义使其在处理 GB 级别结构化数据时显著优于 Pandas。本章聚焦真实场景下的数据清洗实践,涵盖…...
Kubernetes中的ConfigMap与Secret:安全高效管理配置的终极指南
引言:云原生时代的配置困境 在传统的运维模式中,配置往往硬编码在镜像中,或通过环境变量散落在各处。随着微服务架构的普及,这种模式带来了“配置漂移”、镜像臃肿、敏感信息泄露等痛点。 Kubernetes 通过 ConfigMap 和 Secret …...
若依管理系统实战:基于Vuex的用户角色权限与动态菜单路由解析
1. 若依管理系统权限控制核心逻辑解析 若依管理系统作为一款基于SpringBoot和Vue的企业级中后台解决方案,其权限控制体系设计得非常精巧。我在实际项目中使用这套方案时,发现它通过前后端协同工作,实现了细粒度的权限管理。整个流程可以概括为…...
