Mongodb密码安全设置

  1. 先从官网下载mongo安装包(建议安装3.0之后的版本)版本选择下载链接:

    https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl?_ga=2.21045944.28077375.1495245189-20472680.1495115198

  2. 将mongodb安装在d:\mongodb下
  3. 创建数据库文件的存放位置,比如d:/mongodb/data(启动mongodb服务之前必须创建数据库的存放文件夹,否则不会自动创建,而且不能启动成功)
  4. 在d:\mongodb\log下新建文件夹log(存放日志文件)并且新建文件mongodb.log
  5. 在d:\mongodb新建文件mongo.config配置文件 dbpath=D:\mongodb\data
    logpath=D:\mongodb\log\mongo.log
  6. 在环境变量中配置mongodb安装路径
  7. 打开命令行行启动mongod:mongod –config D:\mongodb\mongo.config( mongod –config D:\mongodb\mongo.config –install –serviceName “MongoDB”开机启动
  8. 重新打开一个命令行输入:mongo
  9. 创建超级用户(需要先进入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” } ]
    –   }
    – )
  10. 在配置文件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”)

现在可以进行操作了

 

  • 解决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
    原文地址: https://www.cnblogs.com/tk2049jq/p/6881497.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞