• MongoDB用户角色配置


    记录一下,MongoDB的角色创建及配置,以便以后使用

    1.1、基本知识介绍

    MongoDB基本的角色

    1.数据库用户角色:read、readWrite;
    2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4.备份恢复角色:backup、restore;
    5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6.超级用户角色:root 
    //这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

       其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限

    1.2、操作步骤

    1.2.1、连接到MongoDB服务器

    ./mongo

    1.2.2、创建root/admin用户

    use admin
    db.createUser({user:"root",pwd:"password",roles:["root"]})
    
    db.createUser(  
      {  
        user: "admin",  
        pwd: "password",  
        roles: [{role: "userAdminAnyDatabase", db: "admin"}]  
      }  
    )

    1.2.3、修改mongod.conf文件

    security:
      authorization: enabled//启用授权

    1.2.4、重启MongoDB服务器

    service mongod restart

    1.2.5、创建数据库读写权限用户

    use admin
    db.auth("admin","password");
    use ballmatch
    db.createUser({
        user: "football",
        pwd: "password",
        roles: [{role: "readWrite",db: "ballmatch"}]
    })

    1.2.6、Java程序连接MongoDB

    //方式一
            MongoCredential credential = MongoCredential.createCredential("username", "dbName", "password".toCharArray());
            ServerAddress serverAddress = new ServerAddress("192.168.10.242", 27017);
            MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential));
            DB db = mongoClient.getDB("dbName");
            returndb;
    
            //方式二
            String sURI = String.format("mongodb://%s:%s@%s:%d/%s", "username", "password", "192.168.10.242", 27017, "dbName"); 
            MongoClientURI uri = new MongoClientURI(sURI); 
            MongoClient mongoClient = new MongoClient(uri); 
            DB db = mongoClient.getDB("dbName");

    2、命令参考

    3.1、修改用户密码

    db.updateUser( "admin",{pwd:"password"});

    3.2、密码认证

    db.auth("admin","password");

    3.3MongoDB连接信息查询

    db.serverStatus().connections;

    MongoDB实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。net.maxIncomingConnections默认(65536

    3.4、关闭MongoDB服务

    use admin;
    
    db.shutdownServer();

    3.5、删除用户

    删除用户(需要root权限,会将所有数据库中的football用户删除)

    db.system.users.remove({user:"football"});

    删除用户(权限要求没有那么高,只删除本数据中的football用户)

    db.dropUser("football");

    Java程序连接MongoDB服务器

  • 相关阅读:
    Apache CXF入门
    C++中关于类型转换的问题讨论
    makefile实例(3)-多个文件实例优化
    makefile实例(2)-多个文件实例
    makefile实例(1)-helloworld
    【原创】Linux下编译链接中常见问题总结
    tcpdump命令
    共享内存基础
    关于TCP/UDP缓存
    TCP/UDP常见问题小结
  • 原文地址:https://www.cnblogs.com/out-of-memory/p/6810411.html
Copyright © 2020-2023  润新知