当前位置: 首页 > news >正文

MongoDB设置密码

关于为什么要设置密码

公司的测试服务器MongoDB服务对外网开放的,结果这几天发现数据库被每天晚上被人清空的了,还新建了个数据库,说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见,我们给mongo设置密码。

本文档适用于Linux和Windows环境

1. 使用客户端连接mongo服务

切换至mongo安装目录下的bin目录,执行mongo命令连接至mongo服务。如果没有mongo脚本,可以到官网下载,也可以使用其他第三方客户端工具连接。这里的方式多种多样,只要能执行命令就行。

Linux版本
windows版本
mongo高版本

客户端工具

2. 切换至admin数据库

use admin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 创建用户并指定密码

db.createUser({user:"admin",pwd:"myMongoDBPassword",roles: [{role:"root",db:"admin" }]})

在admin数据库下创建的用户有所有数据库的权限

注意设置的密码最好不要包含@:字符,这两个是连接uri 中的关键字,项目中会导致连接不上。

关于MongoDB的内置角色
Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

4. 修改配置文件,重启mongo服务

创建好用户后,如果不修改配置文件,不用用户名密码可以连接的。

配置文件中增加如下配置,启用认证。

security:authorization: enabled

然后重启mongo服务,这样密码就设置好了。

5. 连接登录

  1. SpringBoot 项目中
    下面以yml配置文件为例
spring:data:mongodb:#MongoDB数据库端口port: 27017#MongoDB数据库IPhost: 192.168.x.x#MongoDB业务数据库database: realData#MongoDB用户名username: admin#MongoDB密码password: myMongoDBPassword#MongoDB验证数据库authentication-database: admin

或者

spring:data:mongodb:uri: mongodb://username:password@localhost:27017/database_name?authSource=admin

从这个uri中看得出,密码中尽量不要有@:,不然程序截取的时候可能出错。

  1. Navicat连接时
    在这里插入图片描述
http://www.lryc.cn/news/218656.html

相关文章:

  • 重生奇迹mu召唤师怎么加点?
  • 第九章《搞懂算法:决策树是怎么回事》笔记
  • jar包的精细化运营,Java模块化简介 | 京东云技术团队
  • 「Verilog学习笔记」移位运算与乘法
  • 静态、友好、内在:解析C++中的这些特殊元素和对象复制的优化
  • 【RabbitMQ】 RabbitMQ 消息的延迟 —— 深入探索 RabbitMQ 的死信交换机,消息的 TTL 以及延迟队列
  • CVE-2023-34040 Kafka 反序列化RCE
  • 全局变量和局部变量在for循环的使用
  • pytorch collate_fn测试用例
  • 【qemu逃逸】HITB2017-babyqemu 2019数字经济-qemu
  • Docker Compose学习笔记
  • 基于树 二叉树的回溯搜索算法(DPLL)
  • 【嵌入式】适用于ESP32/ESP8266远程自动烧录工具
  • 服务器遭受攻击如何处理(记录排查)
  • 分享81个工作总结PPT,总有一款适合您
  • 什么是DITA?从百度的回答说起
  • 线扫相机DALSA软件开发套件有哪些
  • Scala集合操作
  • SQL备忘--特殊状态“未知“以及“空值NULL“的判断
  • 《Pytorch新手入门》第一节-认识Tensor
  • 【JAVA学习笔记】55 - 集合-Map接口、HashMap类、HashTable类、Properties类、TreeMap类(难点)
  • Pytorch图像模型转ONNX后出现色偏问题
  • 插值表达式 {{}}
  • 白雪公主
  • 宏观角度认识递归之合并两个有序链表
  • Leetcode-509 斐波那契数列
  • 解密 docker 容器内 DNS 解析原理
  • 故障诊断模型 | Maltab实现SVM支持向量机的故障诊断
  • 开源的网站数据分析统计平台——Matomo
  • linux入门到地狱