MongoDB设置密码
最佳答案 问答题库508位专家为你答疑解惑
关于为什么要设置密码
公司的测试服务器MongoDB服务对外网开放的,结果这几天发现数据库被每天晚上被人清空的了,还新建了个数据库,说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见,我们给mongo设置密码。
本文档适用于Linux和Windows环境
1. 使用客户端连接mongo服务
切换至mongo安装目录下的bin目录,执行mongo
命令连接至mongo服务。如果没有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. 连接登录
- 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中看得出,密码中尽量不要有@
和:
,不然程序截取的时候可能出错。
- Navicat连接时
99%的人还看了
相似问题
- MySQL数据库:开源且强大的关系型数据库管理系统
- 【腾讯云云上实验室-向量数据库】探索腾讯云向量数据库:全方位管理与高效利用多维向量数据的引领者
- 【史上最细教程】服务器MySQL数据库完成主从复制
- 字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)
- 缓存雪崩、击穿、穿透及解决方案_保证缓存和数据库一致性
- Redis 与其他数据库的不同之处 | Navicat
- 多协议数据库管理软件 Navicat Premium 16 mac中文版功能
- (数据库管理系统)DBMS与(数据库系统)DBS的区别
- duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113
- 数据库课后习题加真题
猜你感兴趣
版权申明
本文"MongoDB设置密码":http://eshow365.cn/6-31862-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 关闭 Android SplashScreen(闪屏)
- 下一篇: 建立弹性支付系统的 10 个技巧