首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB初了解

本文所述MongoDB版本为4.0.5,笔者对MongoDB刚接触,对各个版本的MongoDB不甚了解,本文不对该版本的MongoDB做特性介绍,所涉及命令也许对其余版本不适用。

因为目前有一个试验性的项目想要使用NoSQL,而MongoDB在工作中有一定的接触,所以这个项目打算使用MongoDB,而在真正从下载到安装到使用的时候发现了不少的知识点,以此作为记录。

用户权限问题

MongoDB

这是遇到的第一个问题,我从官网上找来Mac os环境的MongoDB的安装包,照着几个网络博客创建了一个自定义的配置文件,也不知道里面配置项是什么就通过命令启动起来了跟着一步一步也算是启动起来了。

配置项如下:

这个配置项我只修改了数据文件的路径和日志路径。结果一启动在并且进入mongo命令行模式中想通过来查看有哪些数据库就抛出了一个错误:

看这意思是说需要权限,可我哪儿知道这个权限从哪儿来,搜了一下问题,结果是说MongoDB默认是可以不通过权限操作的,结果我在自定义配置中配置了,也就是说我自己配置了需要权限操作。

权限就涉及到用户的创建,而且需要创建一个超级用户,找了一下命令:

创建用户的命令的各个参数基本上通过参数名就知道是做什么的,其中roles.db参数是指定用户的数据库,数据库虽不知道它具体做什么的,但既然创建超级用户需要在这里,想必就是存储一些用户信息的。

在创建好超级用户后,此时还不能执行命令,还需要做一次权限认证,返回1表示认证成功,此时再输入会回显以下:

这都是MongoDB默认的数据库,我想自己创建一个数据库名字为,执行,如果数据库不存在则会创建,这并不是真正的创建,而是只有当有数据插入时才会真正创建,再在命令后执行,我本以为通过root这个“超级用户”就可以畅通无阻地在MongoDB中翱翔,然而我错了,又抛了错误:

这意思还是没有授权,但我明明不是已经创建了一个超级用户了吗,MySQL不就能通过一个超级用户畅通无阻吗。

事实是,MongoDB的用户权限和数据库是绑定的。也就是创建一个新的数据库,并在数据库中插入数据的正确操作应该是需要创建与之对应的用户,下面退出MongoDB命令行模式,重新进入:

输入,进入admin数据库,用户需要在数据库中认证。

输入超级用户进行认证

输入创建用户,并为它指定数据库为。

输入切换认证用户。

输入切换至数据库

输入,创建一条数据。

这才是创建一个数据库,并插入一条数据库的正确姿势,并且一定记住几点:

数据库和用户是绑定的,光创建一个超级用户并不能操作在其他新建的数据库中插入数据

在切换数据库时,先切换认证用户,不然会出现的错误。

以上是学习MongoDB所积累到的第一个知识点用户权限,通过命令行模式不足以直观地展示数据,可使用其他可视化工具对MongoDB进行操作,例如Robo 3T。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190106G017KJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券