mongoDB介绍与客户端认证权限

2023-11-11

 mongoDB简介

        Mongo 是 humongous 的中间部分,在英文里是“巨大无比”的意思。所以 MongoDB 可以翻译成“巨大无比的数据库”,更优雅的叫法是“海量数据库”。

        Mongodb是一款非关系型数据库,说到非关系型数据库,区别于关系型数据库最显著的特征就是没有SQL语句,数据没有固定的数据类型,关系数据库的所使用的SQL语句自从 IBM 发明出来以后,已经有 40 多年的历史了,但是时至今日,开发程序员一般不太喜欢这个东西,因为它的基本理念和程序员编程的想法不一致。后来所谓的 NoSQL 风,指的就是那些不用 SQL 作为查询语言的数据存储系统,而文档数据库 MongoDB 正是 NoSQL 的代表。

           看一下当下 数据库的排名就会发现,目前排在Mongodb数据库前面的无一例外是老牌的关系型数据库,而在No SQL序列中,Mongodb排名第一,且有上升的趋势,以下来自 https://www.db-engines.com 的数据

mongoDB和关系型数据库的差异

1. MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包括其他文档,数组和文档数组。MongoDB数据模型和你的对象在内存中的表现形式一样,一目了然的对象模型。

关系型数据库设计(第三范式):

2.同一个集合中可以包含不同字段(类型)的文档对象:同一个集合的字段可能不同

3.线上修改数据模式,修改时应用与数据库都无须下线

关系型数据库和文档型数据库主要概念对应

关系型数据库

文档型数据库

模型实体

集合

模型属性

字段

模型关系

表关联

内嵌数组,引用字段关联

mongodb客户端连接

客户端使用( mongo shell, 用来操作MongoDB的javascript客户端界面 ):

1. 连接服务

mongo --host <HOSTNAME> --port <PORT> 

# 如果在本机使用的都是默认参数,也可以直接忽略所有参数

2. 设置密码

use admin # 设置密码需要切换到admin库

rs0:PRIMARY> db.createUser( {user: "root", pwd: "root", roles: [{ role:"root" ,db:"admin"}] })
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}


use appdb
rs0:PRIMARY> db.createUser( {user: "appdb", pwd: "appdb", roles: [{role: "dbOwner",db:"appdb" }] })
Successfully added user: {
        "user" : "appdb",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "appdb"
                }
        ]
}
删除用户 db.dropUser("appdb")

show users # 查看所有用户信息

use admin; 切换库
> show users
{
        "_id" : "admin.appdb",
        "userId" : UUID("1a07a033-4b77-4794-936f-9edfb64a3e79"),
        "user" : "appdb",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}
> 

3. 停服务

db.shutdownServer()  # 停掉服务

以授权模式启动

mongod -f  mongodb.cfg  --auth 

[root@node01 mongodb4.4.9]# mongo -uappdb -pappdb --authenticationDatabase=appdb
MongoDB shell version v4.4.9
connecting to: mongodb://127.0.0.1:27017/?authSource=appdb&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("29a69e65-335f-48cf-8710-dc96bb5ce157") }
MongoDB server version: 4.4.9
> show dbs
appdb  0.000GB

使用admin登陆

[root@node01 ~]# docker exec -it mongodb mongo -uroot -proot --authenticationDatabase=admin 
> show dbs
admin   0.000GB
appdb   0.000GB
config  0.000GB
local   0.000GB

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongoDB介绍与客户端认证权限 的相关文章

随机推荐

  • 欧拉角、四元数、旋转矩阵推导及相互关系

    Tags SLAM 一 旋转与旋转矩阵 1 2D旋转 2 3D旋转 二 欧拉角 三 四元数 四 相互转换 1 四元数转旋转矩阵 2 旋转矩阵转四元数 3 欧拉角转旋转矩阵 4 旋转矩阵转欧拉角 5 欧拉角转四元素 6 四元数转欧拉角 五 参
  • Python循环语句(while)(for)经典简单练习题

    求100以内所有偶数的和 sum 0 定义求和的数从0开始 for i in range 0 101 2 利用for循环语句定义i在0到100之间 由左 闭右开的原则 i可以取到0 但是取不到101 故i在0到100之间 再定义每两 个数之
  • vue3学习心得

    关注公众号可获得更多干货 一 vue3是如何变快的 1 diff 算法 Vue2中的虚拟DOM是进行全量对比 Vue3新增了静态标记 PatchFlag 说明 与上次虚拟节点对比 只对比带有静态标记的节点 并且通过flag的信息能得知当前要
  • android学习之基于百度地图的地点检索和标记

    在现在的生活之中 地图越来越重要 作为一个普通的程序员 我们不可能自己去编写一个地图 所以 这篇文章写的是关于如何利用百度的第三方框架来写自己的程序 首先我们需要成为百度开发者 然后下载相关的SDK 在百度里面搜索百度地图 然后进入百度ap
  • 头疼的IE6 js 的 语法错误。

    一提交表单就出问题了 调试也没有用 始终显示461行 的语法错误 怀疑IE6做的真弱智了 后来解决问题了 具体原因 ie6中submit click 方式提交form不成功 但是在高版本的ie中提交没有问题 让我非常的费解 后来查询资料后发
  • Ubuntu18.04+RTX2080Ti+cuda10+tensorflow1.12(解决了tensorflow.python.framework.errors问题)

    基本是按照这篇 Ubuntu18 04 RTX2080 cuda10 tensorflow安装的 链接 https blog csdn net weixin 40859436 article details 83152249 但是出现了一些
  • 从UE4到UE5:新特性的限制

    Nanite 原理 划分culster 按层级进行三角形的culling和lod selection HLOD 基于compute shader 和N卡的mesh shader同目的不同路 纯软件和硬件路线 开启 导入时勾选build na
  • nacos+宝塔 微服务线上和本地相互调用

    使用场景 比如本地有多个微服务 但部分微服务已经不需要改动了 每次调试都要起一大堆的服务 麻烦不说 还卡的要死 所以可以把一些微服务直接放到云服务器上 比如现在我有个Oauth2的认证服务器需要放到云服务器上 实现步骤 1修改配置 spri
  • Linux ubuntu18.04使用ubuntu-drivers autoinstall安装nvidia驱动后紫屏黑屏卡在主板logo无法进系统

    ubuntu 18 04 GTX 1080TI 双显卡 主要是显卡驱动的问题 解决过程 仅供参考 备份文件 重装ubuntu 18 04 再安装驱动 390 138 搞定 ubuntu drivers devices sudo add ap
  • MyISAM和InnoDB存储引擎的区别

    目录 前言 存储引擎 区别 事务 外键 表单的存储 数据查询效率 数据更新效率 如何选择 前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎 在5 5版本之前默认采用MyISAM存储引擎 从5 5开始采用InnoDB存储引
  • googletest入门

    googletest入门 1 Windows上编译生成gtest lib静态库 1 1 首先在github上下载Googletest1 8 0版本 https github com google googletest releases ta
  • CentOS7 xfs分区挂载、取消挂载新加硬盘(大于2TB)操作说明

    root xdmail s fdisk l 查看硬盘及分区表信息 磁盘 dev sdb 18000 0 GB 17999997173760 字节 35156244480 个扇区 Units 扇区 of 1 512 512 bytes 扇区大
  • 【C语言】三子棋游戏详解

    目录 一 三子棋的游戏规则 二 基本流程 三 实现步骤 3 1打印菜单 3 2 创建并初始化棋盘 3 3 打印棋盘 3 4 玩家落子 3 5 电脑落子 3 6 判断输赢 四 游戏演示 五 完整代码 一 三子棋的游戏规则 三子棋也就是经常玩的
  • 天猫精灵-土味情话

    1 你猜我想喝什么 不知道啊 我想呵护你 2 你为什么要害我呀 害你什么了 害我喜欢你呀 3
  • qt把ui文件加入到类中

    有一个ui界面 需要建立 cpp和 h文件 ui的名字是Ui Form 代码如下 h文件 pragma once include ui add1 h class Form1 public QWidget Q OBJECT public Fo
  • 以法律的名义捍卫自由软件的权益之二 —— 软件自由法律中心(SFLC)的来龙去脉...

    更多精彩推荐 请关注开源之道 Thu Apr 24 2020 7347 Words 大约需要阅读 2 分钟 作者 开源之道 在介绍完成以法律的名义捍卫自由软件的权益之一 软件自由保护组织 SFC 的来龙去脉 笔者觉得有点不足的地方 尽管基本
  • 使用docker和docker-compose搭建Vulhub漏洞测试靶场

    使用docker和docker compose搭建Vulhub漏洞测试靶场 1 安装Docker和docker compose docker安装步骤 docker compose安装步骤 2 下载vulhub 安装完成docker和dock
  • Arduino的传感器使用教程1:PM2.5、温度和大气压传感器

    来自我的个人网站 http wangbch com ARDUINO SENSOR Arduino Temperature PM2 5 Atmos Arduino测定温度 PM2 5以及大气压 Temperature Measure and
  • 猜字母

    猜字母 把abcd s共19个字母组成的序列重复拼接106次 得到长度为2014的串 接下来删除第1个字母 即开头的字母a 以及第3个 第5个等所有奇数位置的字母 得到的新串再进行删除奇数位置字母的动作 如此下去 最后只剩下一个字母 请写出
  • mongoDB介绍与客户端认证权限

    mongoDB简介 Mongo 是 humongous 的中间部分 在英文里是 巨大无比 的意思 所以 MongoDB 可以翻译成 巨大无比的数据库 更优雅的叫法是 海量数据库 Mongodb是一款非关系型数据库 说到非关系型数据库 区别于