1.

mongodb.conf :

添加

auth=true

2.

use admin (3.0+ 使用 createUser ;<3.0版本  http://www.cnblogs.com/guizi/archive/2012/11/20/2779500.html)

db.createUser({  user: "root",  pwd: "123456",  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  }  )

  1. > db.createUser({ user: "root", pwd: "123456", roles: [ { role: "userAdminAny
  2. Database", db: "admin" } ] } )
  3. Successfully added user: {
  4. "user" : "root",
  5. "roles" : [
  6. {
  7. "role" : "userAdminAnyDatabase",
  8. "db" : "admin"
  9. }
  10. ]
  11. }
  1. not authorized on test to execute command-MongoDB的权限配置
  2.  
  3. 直接报Command '$eval' failed: not authorized on这个错误,可以确认是权限的问题
  4.  
  5. 解决方案:
  6. 在官网 http://docs.mongodb.org/manual/reference/command/eval/#dbcmd.eval 有一段描述:
  7.  
  8. If authorization is enabled, you must have access to all actions on all resources in order to run eval. Providing such access is not recommended, but if your organization requires a user to run eval, create a role that grants anyAction on anyResource. Do not assign this role to any other user.
  9.  
  10. 解决步骤:
  11.  
  12. 1)不带--auth参数启动数据库,所以不需要帐号即可连上MongoDB
  13.  
  14. 2)新建一个角色,比如叫 sysadmin,需要先切换到admin库进行如下操作:
  15.  
  16. [C#] 纯文本查看 复制代码
  17.  
  18. > use admin
  19. switched to db admin
  20. > db.createRole({role:'sysadmin',roles:[],
  21. privileges:[
  22. {resource:{anyResource:true},actions:['anyAction']}
  23. ]})
  24.  
  25. 3)然后,新建一个用户,使用这个角色,注意,这个角色的dbadmin,操作如下:
  26. [C#] 纯文本查看 复制代码
  27.  
  28. > use woplus
  29. switched to db woplus
  30. > db.createUser({
  31. user:'sa',
  32. pwd:'sufeinet.com',
  33. roles:[
  34. {role:'sysadmin',db:'admin'}
  35. ]})
  36.  
  37. 好了现在重启启动数据库带上
  38. --auth
  39. 就可以正常执行了

3.登陆

  1. > db.auth("admin","admin")
  2. Error: 18 Authentication failed.
  3. 0
  4. > user admin
  5. 2015-07-28T16:44:43.034+0800 E QUERY SyntaxError: Unexpected identifier
  6.  
  7. --这样操作成功了
  8. > use admin
  9. switched to db admin
  10. > db.auth("root","123456")
  11. 1
    --登陆失败

> db.auth("root","111")
2015-07-28T16:52:51.352+0800 I NETWORK Socket recv() errno:10053 An established
connection was aborted by the software in your host machine. 127.0.0.1:27017
2015-07-28T16:52:51.367+0800 I NETWORK SocketException: remote: 127.0.0.1:27017
error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:27017]
2015-07-28T16:52:51.367+0800 I NETWORK DBClientCursor::init call() failed
Error: error doing query: failed
0
2015-07-28T16:52:51.371+0800 I NETWORK trying reconnect to 127.0.0.1:27017 (127
.0.0.1) failed
2015-07-28T16:52:51.373+0800 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok

不知道是不是这个原因,开启 auth后 MongoVUE不能连接。

MongoVUE 是个比较好用的MongoDB客户端,不过免费版在15天过后,不能使用gridfs,Server Monitoring等功能。

关于安全性操作还需要继续研究

【MongoDB】开启认证权限的更多相关文章

  1. MongoDB学习笔记—权限管理

    1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...

  2. MongoDB开启安全认证

    MongoDB开启安全认证 注意 对MongoDB部署启用访问控制会强制执行身份验证,要求用户识别自己.当访问启用了访问控制的MongoDB部署时,用户只能执行由其角色确定的操作. 启用访问控制后,请 ...

  3. Mongodb开启远程连接并认证

    环境: Mongodb版本:3.4.6 步骤: 1.  mongo创建管理员: 在mongo shell下: use admin db.createUser( { user: "testus ...

  4. Mongodb安全认证

    Mongodb安全认证在单实例和副本集两种情况下不太一样,单实例相对简单,只要在启动时加上 --auth参数即可,但副本集则需要keyfile. 一.单实例 1.启动服务(先不要加auth参数) 2. ...

  5. ubuntu 中 mongodb 数据读写权限配置

    首先,我们先对mongodb 数据库的权限做一点说明: 1 默认情况下,mongodb 没有管理员账号 2 只有在 admin 数据库中才能添加管理员账号并开启权限 3 用户只能在所在的数据库中登录, ...

  6. Mongodb安全认证及Java调用

    Mongodb安全认证在单实例和副本集两种情况下不太一样,单实例相对简单,只要在启动时加上 --auth参数即可,但副本集则需要keyfile. 一.单实例 1.启动服务(先不要加auth参数) 2. ...

  7. mongodb3.03开启认证

    原文地址:http://21jhf.iteye.com/blog/2216103 下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如 ...

  8. Kafka认证权限配置(动态添加用户)

    之前写过一篇Kafka ACL使用实战,里面演示了如何配置SASL PLAINTEXT + ACL来为Kafka集群提供认证/权限安全保障,但有一个问题经常被问到:这种方案下是否支持动态增加/移除认证 ...

  9. mongodb的认证(authentication)与授权(authorization)

    一小白瞎整mongodb,认证部分被折磨的惨不忍睹,看厮可怜,特查了一下文档,浅显地总结一下mongodb认证(authentication)与授权(authorization)的联系. 创建的所有用 ...

随机推荐

  1. 【报错】"The constructor Notification(int, CharSequence, long) is deprecated

    Notification的构造方法 Notification(int, CharSequence, long) 在API11之后就淘汰了,之后的API需要用Notification.Builder() ...

  2. 给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&Map迭代器

    今天的主角是HashSet,Set是什么东东,当然也是一种java容器了.      现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下Has ...

  3. hdu 4632 动态规划

    思路:dp[i][j]表示区间(i,j)中回文串的个数,那么dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]:如果str[i]==str[j],那么dp[i][j ...

  4. Windows 8.1 归档 —— Step 2 对新系统的少量优化

    下面是来自 iplaysoft 的优化技巧:

  5. 知道网站PV流量,如何选何云主机配置带宽大小

  6. Acrobat 2015 win32破解版

    Acrobat 2015 win32破解版,带破解补丁dll覆盖即可 百度云盘:http://pan.baidu.com/s/1i4tFnNJ

  7. Redis 命令 - Pub/Sub

    PSUBSCRIBE pattern [pattern ...] Listen for messages published to channels matching the given patter ...

  8. ViewPager的基本使用--可左右循环切换也可自动切换

    ViewPager也算是Android自带的常用控件之一,但是有可能会无法直接调用,所以只需要将工程目录里/libs/android-support-v4.jar该jarAdd to Build Pa ...

  9. python学习day4--python基础--字典

    字典的常用操作: #字典天然去重,key唯一,如果key相同,只能打印出一个 id_db={ 220456789852963741:{ 'name':"alex", 'age':3 ...

  10. Android之屏幕测试

    MainActivity: package com.example.touchscreentest; import android.os.Bundle; import android.R.layout ...