zoukankan      html  css  js  c++  java
  • [转]mongodb authentication 设置权限之后,新建个管理账户和一般数据库用户,在win 7 64bit 环境下测试使用实例

    如果之前安装mongodb时没有使用 --auth,那么必须要卸载MongoDB服务,进行重新安装,设置账号权限才生效!

    主要是解决在测试使用mongo db 时候,总是出现的MongoAuthenticationException  异常和 not authorized for query,not authorized on admin to execute command 等问题。

    直接上测试步骤图拉。

    我这个是先卸载了原来的mongo服务,然后删除我们配置的data文件夹下的所有东西,同时又清空原来测试生成的log。
    主要是造就个干净的测试环境。
    然后再次重新启动服务,这个启动服务是带权限认证的,也就是说,你没有权限认证,是不可以操作数据库的。

    你要回忆一下,你报上面的bug,是不是没有弄这个,或者你的账户,是在打开权限认证之前就添加的user。

    为了测试的准确性。我建议,像我这样,直接全部干掉,整个干净的测试环境,再来一遍。反正也挺快的。

    进入mongo命令行的运行环境。在admin这个管理数据库用户的数据库上添加个数据库管理账户。再退出命令行shell。

    mongod.exe --remove --serviceName "MongoDB"
    mongod --config "D:Mongomongo.conf"  --auth --install --serviceName "MongoDB"
    net start MongoDB
    use admin
    db.createUser({user: "admin",pwd: "password",roles: [ { role: "root", db: "admin" } ]});
    exit

    所使用到命令,给你贴出来,方便你复制粘贴到cmd命令行。

    再次启动也不能说是启动,就是再次进入mongo的命令行模式,登录吧算是,并认证用户和密码

    mongo --port 27017 -u admin -p password --authenticationDatabase admin
    创建数据库lxkdb,当在这个数据库写入数据的时候,这个数据库就出现了
    use minily
    创建普通账户
    db.createUser({user: "minily",pwd: "password",roles: [{ role: "readWrite", db: "minily" }]});
    选择刚刚创建的数据库
    use minily
    然后进行数据库权限的认证,返回1就是认证OK,0就是认证失败。这个也是重点,在操作数据库之前要有那么一次的权限认证
    db.auth('minily','password')
    然后添加一张表,sava数据
    db.student.save({name: 'zhangsan', age: 25, sex: true});
    在数据库minily中,插入一条数据,这个表叫student
    show collections
    显示当前数据库有的集合,也就是表
    db.student.find()
    查student表全部

    下面是使用robomongo这个数据库工具看到的测试结果。

    这个工具的网址,算是个开源的项目吧。
    http://blog.robomongo.org/
    下载可到我的百度云盘的分享
    链接:https://pan.baidu.com/s/1Jnt4p0uB1LBRjTcvgOaaFA 密码:um3k

    上面这个使用的是mongo数据库3.4版本,下面的使用的是2.6版本。稍有不同。

    可以看到所有的数据库,一共有三个,其中两个是system级别的,admin和local,这两个是mongo装完之后,自带的。还有个就是我刚刚创建的那个lxkdb数据库啦,可以看到这个数据库里面 是有数据的。也是我刚刚插入的。

    然后再使用一般的普通的数据库账户登录,看看是什么效果。

    可以看到,普通账户登录之后,只能看到一个数据库,也就是我刚刚自己建立的lxkdb这个数据库。另外两个是看不到的,这就是权限的关系。

    最后,有人说,这个mongo数据库会自带个test的数据库,而且账号密码都是test,我就如下测试。

    可以看到,理论是不成立的。并没有这个所谓的test数据库。所以

    不要在道听途说。误人子弟啦,要自己测试一下。

    至此,整个mongo在本地win 7 64 环境下使用的实例,就全部搞完啦。

    再上个我使用的错误的图,给米娜桑看看,也许有点借鉴意义呢。

    关于在创建用户的时候,那个roles的不同类型的理解。不知道全不全。

    roles 用户角色:
    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root

    保存记录,感谢原作者花时间整理,原文:https://blog.csdn.net/qq_27093465/article/details/54599535

  • 相关阅读:
    您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
    你对测试最大的兴趣在哪里?为什么?
    LoadRunner分为哪三个模块?请简述各模块的主要功能。
    Django学习之视图层
    Django学习之路由层
    Django学习
    Django简介
    jQuery
    JavaScript--DOM,BOM
    前端基础之JavaScript
  • 原文地址:https://www.cnblogs.com/minily/p/9431644.html
Copyright © 2011-2022 走看看