zoukankan      html  css  js  c++  java
  • MongoDB 权限管理 用户名和密码的操作

    在刚安装完毕的时候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
     }
  • 相关阅读:
    网络编程 并发-进程
    几个内置方法
    面向对象---两个内置函数和一些内置方法
    面向对象再进阶
    android设置图文提醒功能
    android 之实现手机震动功能
    android之实现选择对话框
    android 实现模拟加载中的程序
    android 简单对话框实现
    android 实现页面跳转及数据的传递和返回
  • 原文地址:https://www.cnblogs.com/101key/p/3257415.html
Copyright © 2011-2022 走看看