mongodb设置数据库用户,权限,java mongodb driver3.0驱动用户验证

一.设置mongodb超级管理员,数据库管理者
1.设置mongodb超级管理员:

> use admin
switched to db admin
> db.createUser({user:'super',pwd:'super',roles:['root']})
Successfully added user: { "user" : "super", "roles" : [ "root" ] }

2.为数据库添加管理员:为wechat数据库添加root管理员

> use wechat
switched to db wechat
> db.createUser({user:'root',pwd:'tiger',roles:[{role:'readWrite',db:'wechat'}]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "wechat"
                }
        ]
}

二.启动mongodb验证
–dbpath:数据库位置
–logpath:日志位置

cd D:\win8pro\developSoftware\Mongodb\bin
mongod --dbpath "D:\win8pro\developSoftware\Mongodb\db" --logpath "D:\win8pro\developSoftware\Mongodb\log\mongodb.log" --auth

验证用户:

先试用数据库再验证:
D:\win8pro\developSoftware\Mongodb\bin>mongo
MongoDB shell version: 3.0.6
connecting to: test
> use wechat
switched to db wechat
> db.auth('root','tiger')
1
> show collections
system.indexes
t_users

或者登录时直接验证:
D:\win8pro\developSoftware\Mongodb\bin>mongo localhost:27017/wechat -u root -p tiger
MongoDB shell version: 3.0.6
connecting to: localhost:27017/wechat
>

本地验证成功后就可以在java登陆验证了
三.java mongodb driver3.1.0数据库连接验证及简单数据插入,查询
直接上代码:

package com.tecsun.wechat.test;

import java.util.Arrays;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;

/**
 * 功能说明:java链接操作mongodb
 * 
 * @author xx 2015年10月16日
 *         思路:1.建立连接并验证 2.获取一个集合列表 3.获取选择第一
 * 个集合 4.插入集合 5.查询集合
 */
public class MongodbTest
{

    /**
     * 连接mongodb数据库服务,验证用户名密码
     * 
     * @return
     * @author xx 2015年10月16日
     */
    private MongoDatabase connectMongoDB(String name, String databaseName, char[] pswd)
    {
        //创建个 credential对象
        MongoCredential credential = MongoCredential.createCredential(name, databaseName, pswd);
        //把对象传入mongoClient的构造方法中,说明:用户名密码端口啥的都正确会得到mongoClient,否则程序会报错
        //mongodb还有很多种验证方式 详见:http://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/authenticating/ 
        MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017), Arrays.asList(credential));
        MongoDatabase db = mongoClient.getDatabase("wechat");
        return db;
    }

    /**
     * 获取一个文档
     * 
     * @param db
     * @author xx 2015年10月16日
     */
    private MongoCollection<Document> getDBCollection(MongoDatabase db, String setName)
    {
        MongoIterable<String> cols = db.listCollectionNames();
        for (String c : cols)
        {
            System.out.println("collectionName: " + c);
        }
        MongoCollection<Document> col = db.getCollection(setName);
        if (col != null)
            return col;
        else
            return null;
    }

    /**
     * 插入一条数据
     * 
     * @param col
     * @param username
     * @param password
     * @author xx 2015年10月16日
     */
    private void insertCollection(MongoCollection<Document> col, String username, String password)
    {
        // new一个BasicDBObject 对象
        // BasicDBObject obj =new BasicDBObject("username", username);
        // obj.append("password", password);
        Document doc =new Document();
        doc.put("usename", username);
        doc.put("password", password);
        col.insertOne(doc);
        ;
    }

    /**
     * 查找一个doc
     * 
     * @param colName
     * @author xx 2015年10月16日
     */
    private void findColByColName(MongoCollection<Document> doc)
    {
        FindIterable<Document> mydoc = doc.find();
        for (Document d : mydoc)
        {
            System.out.println(d.toJson());
            System.out.println(d.toString());
        }
    }

    public static void main(String[] args)
    {
        MongodbTest mo = new MongodbTest();
        MongoDatabase db = mo.connectMongoDB("root", "wechat", "tiger".toCharArray());
        if(db!=null){
            MongoCollection<Document> doc = mo.getDBCollection(db, "t_users");
            if(doc!=null){
                mo.insertCollection(doc, "chener", "123");
                mo.findColByColName(doc);
            }
        }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值