Mongodb密码安全设置
Posted tk2049jq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb密码安全设置相关的知识,希望对你有一定的参考价值。
-
先从官网下载mongo安装包(建议安装3.0之后的版本)版本选择下载链接:
https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl?_ga=2.21045944.28077375.1495245189-20472680.1495115198
- 将mongodb安装在d:\mongodb下
- 创建数据库文件的存放位置,比如d:/mongodb/data(启动mongodb服务之前必须创建数据库的存放文件夹,否则不会自动创建,而且不能启动成功)
- 在d:\mongodb\log下新建文件夹log(存放日志文件)并且新建文件mongodb.log
- 在d:\mongodb新建文件mongo.config配置文件
dbpath=D:\mongodb\data
logpath=D:\mongodb\log\mongo.log - 在环境变量中配置mongodb安装路径
- 打开命令行行启动mongod:mongod --config D:\mongodb\mongo.config( mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"开机启动)
- 重新打开一个命令行输入:mongo
- 创建超级用户(需要先进入admin数据库,没有就创建):
- use admin
- db.createUser(
- {
- user: "admin",
- pwd: "admin",
- roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
- }
- )
# 创建低权限的用户
- db.createUser(
- {
- user: "myuser",
- pwd: "myuser",
- roles: [ { role: "readWrite", db: "mydb" } ]
- }
- ) - 在配置文件mongo.config中添加:auth=true
dbpath=D:\mongodb\data
logpath=D:\mongodb\log\mongo.log
auth=true
11. 重启mongod: mongod --config D:\mongodb\mongo.config
12. 打开另一个命令窗口下连接mongo:
mongo
show dbs(显示无权访问)
# 因为在admin数据库创建的,只能在 admin 数据库中登录,不能在其他的数据库中认证
# 认证之后就可以切换到其他的数据库进行相关操作
use admin
db.auth("xxxx","xxxx")
现在可以进行操作了
show dbs(显示无权访问)
# 因为在admin数据库创建的,只能在 admin 数据库中登录,不能在其他的数据库中认证
# 认证之后就可以切换到其他的数据库进行相关操作
use admin
db.auth("xxxx","xxxx")
现在可以进行操作了
- 解决Robomong连接问题
在使用Robomong连接需要通过密码验证的mongodb时,显示无法正常连接,现使用如下方法解决
1、删除以前创建的用户:db.dropUser("admin");
2、然后将mongdb.config :auth=true 删除
3、重启mongod、然后再连接
4、ues admin下 修改version:db.system.version.update({ "_id" : "authSchema"},{$set: {"currentVersion" : 3} })
5、重新创建用户:
db.createUser({user:"root",pwd:"123456",roles:[{"role":"root","db":"admin"}]})
6、重启mongdb服务,打开robomong,设置账号和密码(就是在mongo中设置的账号和密码)再次测试,就可以正常的链接了
开机之后如果mongod已启动,需要在后台关闭服务,然后再使用如下命令才能开启mongodb的安全验证
先命令行开启:mongod --config D:\mongodb\mongo.config
再命令行连接:mongo
以上是关于Mongodb密码安全设置的主要内容,如果未能解决你的问题,请参考以下文章