`
21jhf
  • 浏览: 128988 次
  • 来自: ...
社区版块
存档分类
最新评论

mongodb3.03开启认证

阅读更多
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logpath db\logs\mongodb.log --logappend --auth
最后的参数就是开启和关闭认证,如果是conf配置文件,应该是auth=true或false
1,首先关闭认证,也就是不带--auth参数,启动mongodb
2,使用命令行进入mongodb目录,输入mongo命令,默认进入test数据库
3,use userdb  切换到自己的数据库,输入db,显示userdb
4,创建用户,角色为dbOwner,数据库为userdb,命令行应该是db.createUser({user:'myuser',pwd:'123456',roles:[{role:'dbOwner',db:'userdb'}]})
5,切换到admin数据库,use admin,db ,显示admin,db.shutdownServer()关闭服务器,填上认证参数,启动mongodb;以前的版本此时使用mongovue就可以使用myuser登录到userdb数据库上了,但是3.0.3版本不行,打开mongodb.log文件发现如下错误

authenticate db: userdb { authenticate: 1, nonce: "xxx", user: "myuser", key: "xxx" }
2015-06-02T09:57:18.877+0800 I ACCESS   [conn2] Failed to authenticate myuser@userdb with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document


此1-5步骤针对是3.0.3以前版本已经ok,如果是3.0.3,mongodb加入了SCRAM-SHA-1校验方式,需要第三方工具配合进行验证,下面给出具体解决办法:
首先关闭认证,修改system.version文档里面的authSchema版本为3,初始安装时候应该是5,命令行如下:
> use admin
switched to db admin
>  var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3
3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

不过如果你现在开启认证,仍然会提示AuthenticationFailed MONGODB-CR credentials missing in the user document
原因是原来创建的用户已经使用了SCRAM-SHA-1认证方式
> use admin
switched to db admin
> db.system.users.find()
[...]
{ "_id" : "userdb.myuser", "user" : "myuser", "db" : "userdb", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "XXXXXXXXXXXXXXXXXXXXXXXX", "storedKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "serverKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }

解决方式就是删除刚刚创建的用户,重新重建即可:
> use userdb
switched to db userdb
> db.dropUser("myuser")
true
>db.createUser({user:'myuser',pwd:'123456',roles:[{role:'dbOwner',db:'userdb'}]})
然后关闭服务器,开启认证,重启服务器,用mongovue连接,一切OK


此贴为原创,转载请注明出处,谢谢
3
0
分享到:
评论
4 楼 ctcxcn 2016-05-27  
有用,我之前也是一直遇到这个问题,查了很多资料都没有解决;最后看到日志输出然后在必应里搜出国外网站的解决办法,跟你说的一致:
use admin
db.system.users.remove({})    <== removing all users
db.system.version.remove({}) <== removing current version
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })

然后重新添加用户。
3 楼 xiang520jl 2015-12-03  
我按楼主的方式做了  但是 为什么当我连接的时候 不输入用户名、密码 也是可以连接的呢?
如果输入的用户名、密码不对 就连接不上。
我用的也是mongodb 3.0.3
2 楼 jacklin2015 2015-07-20  
1 楼 xb12369 2015-07-18  
终于找到你了


太好了



我的mongodb就是3.0.3

相关推荐

    mongodb source v3.03

    MongoDB v3.03源代码。只因为MongoDB的网站访问速度太慢,好不容易才下载一次,特别给网络不畅的同学分享一下:)

    MongoDB集群部署&开启身份认证部署包

    简单打包分布式部署MongoDB集群,开启身份认证发布工具包示例。 使用参考博客地址 https://blog.csdn.net/csdn710924032/article/details/80713877 内附度盘

    mongodb数据库认证机制更改

    mongodb集群的认证机制的修改,经过一步一步尝试总结的方法,希望大家看看!

    aws MongoDB 开启TLS认证脚本

    aws MongoDB 开启TLS认证脚本,需进行修改,keytool import导入至java自带的密钥库。oracle jdk:$JAVA_HOME/jre/lib/security/cacerts openjdk:$JAVA_HOME/lib/security/cacerts

    MongoDB安全认证_windows教程

    windows平台上详细介绍MongoDB安全认证的过程,适用于新手

    MongoDB程序员认证: MongoDB Certified Developer Study Guide

    MongoDB程序员认证: MongoDB Certified Developer Study Guide - Study Guide - Exam Preparation - Practise Questions

    Linux下安装MongoDB复制集+用户认证,与Spring集成操作

    网上找的资料都不齐全,于是自己根据网上查找的资料整合起来,在Linux下安装mongodb复制集+用户认证,Spring集成mongodb测试,整理操作文档,并附上源码。

    mongodb副本集加分片集群安全认证使用账号密码登录

    mongodb副本集加分片集群安全认证使用账号密码登录

    Mongodb 3.2.9开启用户权限认证问题的步骤详解

    主要给大家介绍了关于Mongodb 3.2.9开启用户权限认证问题的详细步骤,通过开启权限认证,会对大家的Mongodb更加保护的安全些,文中将步骤介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

    docker部署mongodb并开启远程连接

    docker run --name mongodb -v ~/docker/mongo:/data/db -p 27017:27017 -d mongo 执行上述命令之后, 一个挂载了 mongo镜像的容器就开始运行了 其中 --name 设置了容器的名字 -v 设置了路径的映射, 将本地路径映射...

    MongoDB开启权限认证的方法步骤详解

    MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),最近深入学习了下,所以下面这篇文章主要给大家介绍了关于MongoDB开启权限认证的相关资料,...

    mongodb开启SSL传输加密

    包含mongodb开启SSL传输加密所需要的库,文档中详细说明了如何使用和配置,以及如何开启mongo用户加密。

    MongoDB安全认证.pdf

    MongoDB安全认证.pdf 学习资料 复习资料 教学资源

    MongoDB基础入门到高级进阶

    MongoDB的安全认证 4、主讲内容 基础入门部分 章节一:MongoDB相关概念 章节二:单机部署 章节三:基本常用命令 章节四:SpringDataMongoDB操作 高级进阶部分 章节一:索引 章节二:特殊集合 章节三:副本集 章节四...

    python连接mongodb密码认证实例

    今天小编就为大家分享一篇python连接mongodb密码认证实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    MongoDB查询练习题及答案

    NoSQL数据库之MongoDB查询

    Linux安装mongodb客户端

    sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    MongoDB笔记.docx

    一、MongoDB简介 3 二、MongoDB结构 3 二、MongoDB 数据库关系型(这里并不是值关系型数据库的关系) 3 1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test...

    如何安装MongoDB 如何使用MongoDB

    本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...

Global site tag (gtag.js) - Google Analytics