[转]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:\Mongo\mongo.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 -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: , 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
[转]mongodb authentication 设置权限之后,新建个管理账户和一般数据库用户,在win 7 64bit 环境下测试使用实例的更多相关文章
- MongoDB如何设置权限(类似关系型数据库的用户名和密码)
MongoDB 缺省是没有设置鉴权的,业界大部分使用 MongoDB 的项目也没有设置访问权限.这就意味着只要知道 MongoDB 服务器的端口,任何能访问到这台服务器的人都可以查询和操作 Mongo ...
- mysql 创建用户、设置权限
MySQL创建用户与授权 一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用 ...
- Shiro权限管理框架(二):Shiro结合Redis实现分布式环境下的Session共享
首发地址:https://www.guitu18.com/post/2019/07/28/44.html 本篇是Shiro系列第二篇,使用Shiro基于Redis实现分布式环境下的Session共享. ...
- Nginx环境下设置zblog伪静态方法
Apache的环境非常简单.可以点击创建 .htaccess就可以了 Nginx环境下设置伪静态,并没有那个一键创建的按钮.只看到了这样的一个提示. 别的环境未测试.宝塔面板中 反正我是没找到. 宝塔 ...
- macos下mongoDB 3.4.5 添加用户、设置权限
macos下mongoDB 3.4.5 添加用户.设置权限 在项目中需要根据项目运行环境访问,以不同的身份访问各自的db,所以研究了一下MongoDB的 需求: 给MongoDB添加两个用户分别用 ...
- mongodb安装与权限配置
mongodb下载地址:官方下载IDE工具:Robo 3T:官方下载 windows系统要求64位,最低2g内存,推荐8g内存及以上 安装过程没有需要配置的地方,直接下一步到结束,如果想要方便可以在环 ...
- MongoDB学习笔记—权限管理
1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...
- ODOO权限管理,在两个方面设置权限
转载参考https://zhuanlan.zhihu.com/p/29130388 在odoo中新建两个用户user1,user2 新建用户 建完了用户,记得编辑用户,设置密码. 然后以user1用户 ...
- 安装mongodb以及设置为windows服务 详细步骤
我的win7 32的,注意版本要正确! 一.下载mongodb压缩包:mongodb-win32-i386-2.6.9.zip() 二.在D盘新建文件夹mongodb,将压缩我的解压文件放进去(有一个 ...
随机推荐
- TRUNCATE、Drop、Delete 的用法
//Truncate是一个能够快速清空资料表内所有资料的SQL语法.并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用. truncate table1; drop table1; dele ...
- MacBook Air装Windows7双系统后的一些(未尝试)想法
转载请标注原地址:https://www.cnblogs.com/lixiaojing/p/11458477.html 运行环境: macOS在Mojave下的Boot Camp Assistant只 ...
- 解读 | 你真正理解什么是Cloud Native吗?
你能做到每周.每天甚至每个钟头向客户发布新特性吗?新加入的开发者能够在他们工作的第一天甚至面试阶段就能部署代码吗?部署新员工的代码后,你能因为确信应用程序运行正常而安然入睡吗?建立快速发布机制,包括支 ...
- mqtt 与 MQ 的区别
mqtt 与 MQ 的区别: mqtt:一种通信协议,类似人类交谈中的汉语.英语.俄语中的一种语言规范MQ:一种通信通道,也叫消息队列,类似人类交谈中的用电话.email.微信的一种通信方式json: ...
- Websocket实现Java后台主动推送消息到前台
写在前面 需求: 项目测试, 缺少用户登录失败给admin推送消息, 想到这个方式, 当用户登录失败时, admin用户会在页面看到咣咣乱弹的alert. 正文 pom.xml <!-- web ...
- typescript - 5.接口
接口的作用: 在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不 ...
- odoo开发笔记 -- 异常处理in resolve_deps field = model
场景描述: 更新代码,重启服务服务后,odoo后台报错,提示关键字:in resolve_deps field = model._fields[fname] KeyError: 'entry_id' ...
- 2-3 【初识组件】顶部 TabBar
VsCode中使用Emmet神器快速编写HTML代码 1 根组件下面包含了很多的子组件 组件就是控制屏幕的某一个部分,某一个区域 组件是可以相互包含的 组件是定义在类里面的,类里面有属性和方法 注解会 ...
- 取未清PO逻辑
注意这里的 GR qty [ WEMNG] 和 Open Quantity [OBMNG] *&---------------------------------------------- ...
- 使用Termux,在手机上做nodejs编程,运行nodejs程序。
如果你是一名nodejs开发者,是否想过以下问题:在手机上运行nodejs程序?用手机当nodejs服务器?在手机上做nodejs编程?YES!使用Termux,以上都可以做到! 下面展示如何实现这个 ...