MongoDB默认是不需要输入用户名和密码,客户就可以登录的。但是出于安全性的考虑,我们还是要为其设置用户名和密码。本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助。

本文我们介绍MongoDB权限管理,主要介绍的是如何设置用户名和密码。接下来我们就一一介绍。

添加用户的时候必须满足以下两个条件:

1.有相关权限的情况下(后面会说)。

2.mongod没有加--auth的情况下(如果加了,你添加权限的话 会出现下面的情况)。

> use admin    
 
switched to db admin    
 
> db.addUser('sa','sa')    
 
Fri Jul 22 14:31:13 uncaught exception: error {    
 
"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",    
 
"code" : 10057    
 
}    
 
>    

所以我们添加用户时必须先在没有加--auth的时候添加个super  admin。

服务起来后,进入./mongo。

[root@:/usr/local/mongodb/bin]#./mongo    
 
MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> use admin    
 
switched to db admin    
 
> db.adduser('sa','sa')    
 
Fri Jul 22 14:34:24 TypeError: db.adduser is not a function (shell):1    
 
> db.addUser('sa','sa')    
 
{    
 
"_id" : ObjectId("4e2914a585178da4e03a16c3"),    
 
"user" : "sa",    
 
"readOnly" : false,    
 
"pwd" : "75692b1d11c072c6c79332e248c4f699"    
 
}    
 
>    

这样就说明 已经成功建立了,然后我们试一下权限。

> show collections    
 
system.indexes    
 
system.users   

在没有加--auth的情况下 可以正常访问admin喜爱默认的两个表。

> db.system.users.find()    
 
{ "_id" : ObjectId("4e2914a585178da4e03a16c3"), "user" : "sa", "readOnly" : false, "pwd" : "75692b1d11c072c6c79332e248c4f699" }>    

已经成功建立。

下面把服务加上--auth的选项,再进入./mongo。

MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> use admin    
 
switched to db admin    
 
> show collections    
 
Fri Jul 22 14:38:49 uncaught exception: error: {    
 
"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",    
 
"code" : 10057    
 
}    
 
>    

可以看出已经没有访问权限了。

我们就用自己的密钥登录下:

> db.auth('sa','sa')    
 
1   

返回1说明验证成功!

再show collections下就成功了。

.....

我们登录其它表试试:

[root@:/usr/local/mongodb/bin]#./mongo    
 
MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> use test    
 
switched to db test    
 
> show collections    
 
Fri Jul 22 14:40:47 uncaught exception: error: {    
 
"$err" : "unauthorized db:test lock type:-1 client:127.0.0.1",    
 
"code" : 10057    
 
}   

也需要验证,试试super admin登录:

[root@:/usr/local/mongodb/bin]#./mongo    
 
MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> use test    
 
switched to db test    
 
> show collections    
 
Fri Jul 22 14:40:47 uncaught exception: error: {    
 
"$err" : "unauthorized db:test lock type:-1 client:127.0.0.1",    
 
"code" : 10057    
 
}    
 
> db.auth('sa','sa')    
 
0   

返回0验证失败。

好吧,不绕圈子,其实super admin必须从admin那么登录 然后 再use其它表才可以。

> use admin    
 
> use admin  
 
switched to db admin    
 
> db.auth('sa','sa')    
 
1    
 
> use test    
 
switched to db test    
 
> show collections    
 
>    

如果想单独访问一个表,用独立的用户名,就需要在那个表里面建相应的user。

[root@:/usr/local/mongodb/bin]#./mongo    
 
MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> use admin    
 
switched to db admin    
 
> db.auth('sa','sa')    
 
1    
 
> use test    
 
switched to db test    
 
> db.addUser('test','test')    
 
{    
 
"user" : "test",    
 
"readOnly" : false,    
 
"pwd" : "a6de521abefc2fed4f5876855a3484f5"    
 
}    
 
>    

当然必须有相关权限才可以建立。

再登录看看:

[root@:/usr/local/mongodb/bin]#./mongo    
 
MongoDB shell version: 1.8.2    
 
connecting to: test    
 
> show collections    
 
Fri Jul 22 14:45:08 uncaught exception: error: {    
 
"$err" : "unauthorized db:test lock type:-1 client:127.0.0.1",    
 
"code" : 10057    
 
}    
 
> db.auth('test','test')    
 
1    
 
> show collections    
 
system.indexes    
 
system.users    
 
>

MongoDB权限管理之用户名和密码的操作的更多相关文章

  1. MongoDB——权限管理

    MongoDB--权限管理 MongoDB默认是没有权限验证的,但生产环境中,没有权限控制是很不安全的. 我们先不详谈太多概念,直接动手创建两个典型的账号: 超级管理员,类似sql server的sa ...

  2. mongodb权限管理

    说到mongodb就得先谈谈mongodb的用户组,和传统的关系型数据库不一样,mongodb并没有在创建应用时就要求创建权限管理组,所以类似于Robomongo这样的数据库可视化工具在创建conne ...

  3. Windows下MongoDB安装及创建用户名和密码

    下载MongoDB的安装文件https://www.mongodb.com/download-center#community,选择合适的版本(注:本人选择的是3.2.6) 下载完MongoDB.ms ...

  4. mongodb权限管理(转)

    Mongodb 预定义角色 Mongodb 中预定义了一些角色,把这些角色赋予给适当的用户上,用户就只能进行角色范围内的操作. 数据库用户角色 (所有数据库都有) read 用户可以读取当前数据库的数 ...

  5. 基于MongoDB权限管理+gridfs文件上传------云盘系统

    学了一会Mongo,开始毕设的编写. 毕设目前一共分为如下模块 用户管理模块 管理员管理模块 文件管理模块 分享模块 目前已经完成了权限管理部分的后端代码.上传下载已经实现Demo.先把权限弄好后在整 ...

  6. Web端权限管理新增实用功能:批量增加操作,简单方便快速!

    扩展了吉日嘎拉的Web端权限管理功能后,每次添加菜单倒没啥问题,毕竟菜单的数量有限,可是每增加一个模块.功能或者说权限控制点,就得针对各种常规操作,新增很多遍. 浪费时间,还容易出错.新增了一个字典表 ...

  7. MongoDB 权限管理 用户名和密码的操作

    在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息.  当admin.system.users中 ...

  8. Mongodb 权限管理

  9. .NET快速信息化系统开发框架 V3.2 -> WinForm“组织机构管理”界面组织机构权限管理采用新的界面,操作权限按模块进行展示

    对于某些大型的企业.信息系统,涉及的组织机构较多,模块多.操作权限也多,对用户或角色一一设置模块.操作权限等比较繁琐.我们可以直接对某一组织机构进行权限的设置,这样设置后,同一组织机构的用户就可以拥有 ...

随机推荐

  1. 数据结构 《6》----堆 ( Heap )

    Practival Problems: a. Construct a Huffman code b. Compute the sum of a large set of floating point ...

  2. iOS:开发者中心证书创建流程

    一,首先点击开发者首页(https://developer.apple.com/)里面的Member Center.二,输入开发者账号和密码,点击sign in登录.三,点击Certificates, ...

  3. iOS打包为ipa的两种方式和生成P12证书的方式

    iOS项目打包为ipa的两种方式: 准备工作:先行在Xcode里面打开preferences,填写apple id. 通过iTunes+Xcode 在Xcode里,把模拟器调整为iOS Device, ...

  4. IOS 用正则表达式解析HTML等文件,得到所有文本

    获得网页内容 NSURL *url=[NSURL URLWithString:@"http://121.199.34.52/wordpress/?json=core.get_post_con ...

  5. nginx+c+cgi开发

    http://blog.csdn.net/marising/article/details/3932938 1.Nginx 1.1.安装 Nginx 的中文维基 http://wiki.codemon ...

  6. Weblogic项目部署及数据源配置

    号线项目总结: weblogic项目配置: 把工作区放到磁盘上,建立weblogic域 在安装的weblogic服务器的开始项里选择 进入weblogic域的建立. 建立完域后用Myeclipse打开 ...

  7. JS基础知识(数据类型)

      1,关于typeof   因为是弱类型语言,而程序代码中又不得不定义出变量的类型所提供出来的方法. 返回的结果如下图:   如下例子: var test = "123"; va ...

  8. CSS3 transform的skew属性值图文详解

    我刚刚接触transform的skew属性值时一头雾水,根本不知道种东西到底是咋变的.上网查,各个网站上也只说这个使用来做扭曲变换的,具体是咋变的就是不说....无奈我只好自己研究了,现把研究结果共享 ...

  9. Codeforces Flipping game 动态规划基础

    题目链接:http://codeforces.com/problemset/problem/327/A 这道题目有O(N^3)的做法,这里转化为动态规划求解,复杂度是O(N) #include < ...

  10. JS初学之-代码精简思路

    1.差不多的代码,观察其不一样的地方,使用变量存起来,方便替代. 2.将其存入函数之中方便调用.