码迷,mamicode.com
首页 > 数据库 > 详细

mongodb 认证方式(version:3.0.4)

时间:2015-08-31 21:30:41      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

之前一直在本机上跑,前段时间把后台架到云服务器上了,在settings里加上了username和password,希望同步的时候修改一下settings就能在本地测试。
 
因为云服务器端数据库连接需要验证,于是在本地也打算加上身份验证,而mongodb默认是没有验证的。
 
在网上搜索了一下,方法都比较旧,主要是在本地的mongodb中新增一个user:
进入mongodb下的bin
mongodb $ cd bin

不开启验证的方式启动mongodb

bin $ ./mongod -dbpath ../blog
输入mongo命令,进入test数据库
bin $ ./mongo
添加admin用户
1 use admin
2 db.createUser({
3      user:admin,
4      pwd:admin,
5      roles:[{role:userAdminAnyDatabase,db:admin}]
6 })
切换到我的数据库(blog 为我的数据库名称),在我的数据库下创建用户
1 use blog
2 db.createUser({
3      user:testuser,
4      pwd:test,
5      roles:[{role:dbOwner,db:blog}]
6 })
重启服务器,开启验证
bin $ ./mongod -dbpath ../blog --auth
使用Robomongo登陆,显示Authentication Failed,查看服务器日志:
2015-08-31T17:39:46.416+0800 I ACCESS   [conn46] Failed to authenticate testuser@blog with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
 
查看文档,发现是因为mongodb验证方式改变,加入了(SCRAM)SHA-1
在mongo里将刚创建的用户删除
use blog
db.dropUser(testuser
关闭验证重启数据库
在mongo里修改system.version文档里面的authSchema版本为3(旧版本)
1 use admin
2 db.system.version.update({_id:authSchema},{$set:{currentVersion:3}})
3 db.system.version.find()
可以看到:{ "_id" : "authSchema", "currentVersion" : 3 }
 
删除之前创建的用户,重新创建用户(这一次使用验证方式为MONGODB-CR)
1 use blog
2 db.dropUser(testuser)
3 db.createUser({
4      user:testuser,
5      pwd:test,
6      roles:[{role:dbOwner,db:blog}]
7 })

 

 这一次可以用Robomongo成功登陆~

 

 

mongodb 认证方式(version:3.0.4)

标签:

原文地址:http://www.cnblogs.com/katherineji/p/4773902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!