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. linux命令:mkdir

    1.介绍: mkdir用来创建目录,要求创建目录的用户在当前目录具有写的权限. 2.命令格式: mkdir [选项] 目录 3.命令参数 -m, --mode=模式,设定权限<模式> (类 ...

  2. Java 集合深入理解(8):AbstractSequentialList

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天有点无聊,来学学 AbstractSequentialList 解解闷 吧! AbstractSequentialLi ...

  3. C#使用指针表达式

    如何:获取指针变量的值 使用指针间接运算符可获取位于指针所指向的位置的变量. 表达式采用下面的形式,其中, p 是指针类型: *p; 不能对除指针类型以外的任何类型的表达式使用一元间接寻址运算符. 此 ...

  4. https 三次握手

    1,客户端输入https网址,链接到server443端口: 2,服务器手中有一把钥匙和一个锁头,把锁头传递给客户端.数字证书既是公钥,又是锁头 3,客户端拿到锁头后,生成一个随机数,用锁头把随机数锁 ...

  5. magento的robots文件编写和判断是否是一个导航分类页面

    magento是网店系统,我们突出的是我们的产品,所以,有很多路径我们不想让搜索引擎索引到,所以我们需要用robots文件进行限制 下面是麦神magento的robots.txt里面的内容,因为很多u ...

  6. notebook

    1. 2.

  7. UI学习笔记---第十六天XML JSON解析

    一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ...

  8. [转载] 动态链接库dll的 静态加载 与 动态加载

    转载自:http://blog.csdn.net/youxin2012/article/details/11538491 dll 两种链接方式  : 动态链接和静态链接(链接亦称加载)   动态链接是 ...

  9. 2015GitWebRTC编译实录7

    2015.07.20 libvoiceengine 编译通过去除了mock测试代码,mock是用来进行测试的,意义不大.另外会报一个常量错误,需要定义WEBRTC_MAC宏,只定义WEBRTC_IOS ...

  10. ASP.NET Web API与Rest web api:发布到IIS(二)(同发布.NET webservice)

    本文档大部分来源于:http://www.cnblogs.com/zqzjs/p/4705994.html 工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1 ...