视频分享网站开发,网页设计基础填空题及答案,微信crm系统如何添加,网站建设合同详细关于为什么要设置密码
公司的测试服务器MongoDB服务对外网开放的#xff0c;结果这几天发现数据库被每天晚上被人清空的了#xff0c;还新建了个数据库#xff0c;说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见#xff0c;我们给m…关于为什么要设置密码
公司的测试服务器MongoDB服务对外网开放的结果这几天发现数据库被每天晚上被人清空的了还新建了个数据库说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见我们给mongo设置密码。
本文档适用于Linux和Windows环境
1. 使用客户端连接mongo服务
切换至mongo安装目录下的bin目录执行mongo命令连接至mongo服务。如果没有mongo脚本可以到官网下载也可以使用其他第三方客户端工具连接。这里的方式多种多样只要能执行命令就行。 2. 切换至admin数据库
use admin3. 创建用户并指定密码
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:passwordlocalhost:27017/database_name?authSourceadmin从这个uri中看得出密码中尽量不要有和:不然程序截取的时候可能出错。
Navicat连接时