3.MongoDB进阶

3.1.权限验证

以下内容适用于Mac系统用户,window系统用户请看后面文档

3.1.1.创建超级管理员用户

默认情况下连接mongodb是不需要用户名和密码的,这样不安全,我们需要进行安全配置,让连接数据库的时候经过认证才能连接

具体配置步骤如下:

1.修改mongodb配置文件,开启安全验证

如果是brew安装的mongodb,mac系统下地址mongodb默认配置文件 /usr/local/etc/mongod.conf,你需要将你的配置文件写成这样:

systemLog:
#日志为文件
destination: file
#日志存放路径
path: /data/mongodb/log/mongo.log
logAppend: true
# 数据库存放路径
storage:
dbPath: /data/mongodb/db/
net:
bindIp: 127.0.0.1
#进程
processManagement:
# 守护进程方式
fork: true
# 开启权限验证
security:
authorization: enabled

上面配置文件中,日志存放路径和数据库存放路径需要存在,也就是说你需要先去把这些文件夹创建好,并且给上读写权限

2.重启mongodb服务

sudo mongod --config /usr/local/etc/mongod.conf

重启服务的时候是需要带上配置文件的,这样才能让你的配置生效,需要注意的是,在配置文件中,我们设置了守护进程的方式(fork: true),这种方式允许服务在后台运行

3.创建超级管理员用户名

首先,运行连接mongodb

mongo

接着,选中数据库

use admin

开始创建用户名

db.createUser({
user:'admin',
pwd:'123456', roles:[{role:'root',db:'admin'}]
})

验证用户名和密码

db.auth("admin", "123456")

上面命令如果返回1 表示验证成功, 0 表示验证失败

如果验证成功,即可正常使用了

show dbs

除了上面通过db.auth来验证超级管理员权限以外,还可以在连接的时候,直接给用户名和密码

mongo admin -u admin -p 123456

3.1.2.创建普通用户

普通用户就是某个数据库的用户,这个用户只有某个数据库的权限

要创建普通用户,你必须具有超级管理员的权限,因此,得先以超级管理员登录进去

mongo admin -u admin -p 123456

接下来,选中你要设置权限的数据库

 use nodeing_cms

创建普通用户

db.createUser({user: "nodeing_cms_user", pwd: "nodeing123", roles: [{ role: "dbOwner", db: "nodeing_cms" }]})

3.1.3.windows用户权限验证设置

1.连接mongodb数据库

mongo

2.设置管理员密码

db.createUSer({
user: "admin",
pwd: "123456",
roles: [{role: "root", db: "admin"}]
})

3.修改配置文件,开启权限验证

配置文件位置:在你安装目录下面找,例如我的安装目录在c盘,具体位置如下: C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg

security:
authorization: enabled

4.重启服务

5.连接服务器

mongo admin -u admin -p 123456

螺钉课堂视频课程地址:http://edu.nodeing.com

MongoDB快速入门教程(3.1)的更多相关文章

  1. MongoDb 快速入门教程

    文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...

  2. MongoDB快速入门教程 (3.2)

    3.2.索引 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,建立索引,通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条 ...

  3. MongoDB快速入门教程 (4.4)

    4.5.Mongoose索引和方法 4.5.1.设置索引 let UserSchema = mongoose.Schema({ sn: { type: Number, // 设置唯一索引 unique ...

  4. MongoDB快速入门教程 (4.3)

    4.3.Mongoose模块化 4.3.1.为什么要进行模块化拆分? 模块化拆分的目的是为了代码的复用,让整个项目的结构更加清晰,举个例子:当数据库中的集合变多的时候,例如有课程.订单.分类.教师等多 ...

  5. MongoDB快速入门教程 (4.2)

    4.2.Mongoose实现增删查改 中文文档地址: https://cn.mongoosedoc.top/docs/guide.html 4.2.1.Mongoose是什么? Mongoose是Mo ...

  6. MongoDB快速入门教程 (4.1)

    4.Mongoose使用 4.1.nodejs操作mongodb 文档地址:http://mongodb.github.io/node-mongodb-native/3.2/tutorials/cru ...

  7. MongoDB快速入门教程 (3.3)

    3.4.聚合 3.4.1.什么是聚合? MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 例如上图 ...

  8. MongoDB快速入门教程 (2)

    2.MongoDB的基本的CRUD操作 2.1.创建文档 在具体操作之前,想要知道有多少数据库,可以执行下面命令 show dbs 在mongodb中,数据库中包含的叫做集合(表),集合中存储的内容叫 ...

  9. MongoDB快速入门教程 (1)

    1.MongoDB初识 1.1.MongoDB是什么? MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于 ...

随机推荐

  1. jchdl - GSL实例 - Register

    https://mp.weixin.qq.com/s/uD5JVlAjTHQus2pnzPrdLg   多个D触发器可以组成一组寄存器. ​​ 摘自康华光<电子技术基础 · 数字部分>(第 ...

  2. Redis 的原理与应用场景及数据库关系

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一. Redis 是什么? Redis是一个开源的使用ANSIC语言编写.支持网络.单进程单线程.可基于 ...

  3. Java实现 蓝桥杯VIP 算法训练 薪水计算

    算法训练 薪水计算 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 编写一个程序,计算员工的周薪.薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么 ...

  4. Java实现 LeetCode 44 通配符匹配

    44. 通配符匹配 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 '?' 和 '*' 的通配符匹配. '?' 可以匹配任何单个字符. '*' 可以匹配任意字符串(包括空字符串). 两个字 ...

  5. Java实现 黑洞数

    任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则 ...

  6. mysql基础-数据库表简单查询-记录(五)

    0x01 MySQL的查询操作 单表查询:简单查询                 多表查询:连续查询                联合查询 选择和投影 投影:挑选要符合的字段     select ...

  7. k8s学习-pod生命周期

    4.2.pod生命周期 创建一个pod的时候过程如下: 1.容器环境初始化: 2.pause执行网络.容器卷等初始化工作: 3.所有的InitC按顺序执行,每个InitC执行完后才能执行下一个,且必须 ...

  8. AWS—Xshell工具远程登录EC2虚拟机

    一.创建AWS账户(已有AWS账号的请跳过) 访问 https://amazonaws-china.com/cn/,点击创建AWS账户,根据提示填写个人相关信息,创建AWS账户. 二.创建EC2虚拟机 ...

  9. cnpm的安装(超级详细版)

    1. 安装node 打开黑窗口   安装node 网上教程很多,我就不加上了 2.node -v  查看node是否已安装 3.安装淘宝镜像 npm install -g cnpm -registry ...

  10. Javascript 16进制转有符号的10进制整数

    在赶项目中开发一个单片机对应的数据接口,需要将一个两字节的十六进制转化为-256~255的10进制数.百度了好久都没有对应且简明的教程,干脆就自己写一篇.   我们都知道JavaScript整数类型有 ...