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

摘要:
当安装刚刚完成时,MongoDB默认有一个admin数据库和admin.system。用户将以比其他数据库中设置的权限更大的权限存储用户信息。当管理员。system当用户中没有用户时,即使在mongod启动时添加了--auth参数,如果没有用户添加到admin数据库中,在将用户添加到admin.system.users之前,您仍然可以在没有身份验证的情况下执行任何操作。
在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息。 
当admin.system.users中一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin.system.users中添加了一个用户。
windows下打开DOS进入bin目录执行mongo打开shell:
D:mongodb2.4.3in>mongo
使用admin库:
> use admin 
> db.addUser("root","123456")
         "user" : "root", 
         "readOnly" : false, 
         "pwd" : "34e5772aa66b703a319641d42a47d696" 
验证用户: 
> db.auth("root","123456")  
1   //验证成功,返回1 
> show dbs //查看全部数据库
admin   0.0625GB
local   0.03125GB
mydb    0.125GB
test    (empty)
> use mydb //使用mydb数据库
switched to db mydb
> db.addUser("101.key","123456")   //默认可读写,只读为db.addUser("101.key","123456",true)
> db.system.users.find() //查看所有用户
> db.system.users.remove({user:"10.key"})//给当前数据库删除用户
>show collections  //查看所有集合
>db.serverStatus() //可以获取到mongodb的服务器统计信息,其中包括 :全局锁,索引,用户操作行为等等这些统计信息
> exit //退出
D:mongodb2.4.3in>mongostat -uroot -p123456 --port 27017 //观看实时数据变化
 
D:mongodb2.4.3in>mongo admin -uroot -p123456  //指定admin数据库,帐号登录
-------------------------------------------------------------------------------------------------
远程用户连接
语法结构:mongo –uusername –ppwd ServerIP:port/dbname 
其中port默认为27017 
>mongo -uroot -p123456 192.168.2.150/admin 
---------------------------------------------------------------------------
java 客户端链接主要代码:
 private static Mongo mg = null;
 private static Map dbMap = new HashMap();
 private DB db = null;
 public DAOMongo(){
  if (mg == null){
   try {
    mg = new Mongo("localhost", 27017);
   } catch (UnknownHostException e) {
    e.printStackTrace();
   } catch (MongoException e) {
    e.printStackTrace();
   }
  }
  if (dbMap.containsKey("mydb")){
   db = (DB)dbMap.get("mydb");
  }else{
   db = mg.getDB("mydb");
   boolean authResult =  db.authenticate("101.key", "123456".toCharArray());
   logger.info("authResult="+authResult);
   if (authResult){
    dbMap.put("mydb", db);
   }
  }
  //admin 库     root  123456
 }

免责声明:文章转载自《MongoDB 权限管理 用户名和密码的操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CAS实现SSO单点登录原理vue 图片上传功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用友T3、T6常见问题

1.青岛北苑家具:用友通10.3备份时提示“压缩失败!UFDATA。BAK” 问题解决:清理临时备份文件54599424uftmpufdata.bak后,备份成功。 原因:D盘空间太小。 2.青岛北宛家具:用友通10。3固定资产结转年度数据时提示:列名bbltransdeprt无效。 问题解决:在数据库中的fa_card表增加dbltransdeprt列...

DB2存储过程——参数详解

语法说明1、procedure-name: 存储过程的名字,在同一个数据库的同一模式下,不能存在存储过程名相同参数数目相同的存储过程,即使参数的类型不同也不行。2、(IN | OUT | INOUT parameter-name data-type,...) :传入参数     IN:输入参数OUT:输出参数INOUT:作为输入输出参数parameter...

Oracle 字符集的查看和修改

一、什么是Oracle字符集        Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参...

数据库粗浅了解

数据库系统: 数据库:管理文件的文件夹,类似为windows的目录结构 数据表:数据库中的文件表,类似于windows目前中的excl 表记录:一条数据,一行数据可以称为一个对象或者可以称为一条记录,列可以称为字段 数据库管理软件: mysql:开源,已被Oracle公司收购,mysql后期是否开源还是未知,所以出现了一个mysql的分支MariaDB, ...

Sql Server 收缩日志文件原理及always on 下的实践

一、准备知识   1、LSN   LSN用来标识特定日志在日志文件中位置(详情请见什么是LSN:日志序列号),它由两部分组成:一部分用来标识VLF(虚拟日志文件)的序列号,剩下的用来标识该日志在VLF中的具体的位置。   根据LSN不同,日志一般分为两类:首日志(最新的活动日志序号)和尾日志(保留时间最长的活动日志序号)。随着数据库的操作不断增加(如数据库...

Mysql的索引

什么是索引: 数据库中的索引与书籍中的目录类似,在一本书中,利用目录可以快速查找所需要的信息,无需阅读整本书.在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据.书中的目录是一个词语列表,其中注明了包含各个词的页码,在数据库中,由于数据存储在数据表中,因此索引是创建在数据表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储...