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的摄影师分享交流社区应运而生,它旨在满足摄影师们的这些需求,促进摄影文化的…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
