MongoDB 安装与权限配置

解压版安装MongoDB

使用解压版绿色软件,为更好选择,只需简单配置即可使用。下载地址
在这里插入图片描述

初始化说明

MongoDB 数据库默认是不开启账号权限验证的,但是默认绑定的IP为 127.0.0.1。也就是说,默认不要账号密码就能登录,但是你只能在绑定的IP上登录也就是本机。

  1. 启动 MongoDB 实例之前先要创建好存储数据的文件夹,也就是你数据库存储数据的地方,一个 MongoDB 实例对应一个文件夹。
  2. 你也可以选择创建 log 文件用于存放 MongoDB 实例运行时产生的日志
  3. 本例在 D:\mongo 下创建了 data 目录与 log 目录

MongoDB 的使用

  1. 启动 MongoDB 实例 ,在 MongoDB 解压后的 bin 目录下运行如下命令,就可以启动一个 MongoDB 实例,如果不指定端口号,默认监听的是 27017 端口号,如果不指定 log 目录,则将日志打印在面板上。
mongod.exe --dbpath D:\mongo\db --logpath D:\mongo\log\mongo.log

在这里插入图片描述

  1. 使用客户端连接 MongoDB。另开一个 cmd 在 bin 目录下运行一下命令
mongo.exe

客户端日志显示一些监控信息,比如说这个 server 是绑定在本机的, 此时客户端就可以开始使用 命令去操作数据库,完全不需要任何账号验证。
在这里插入图片描述
服务端日志显示
在这里插入图片描述

到此可以说安装使用教程已经结束

MongoDB 权限认证

上述的操作可以正常使用 MongoDB 了。 但是如果没有账号权限的控制,会让 db 处于高风险状态,本节讲一讲 如何开启权限的校验。

  • MySQL 数据库的账号体系特点是,一个账号可同时拥有管理数据库和操作数据库的权限,可以在创建账号的时候指定其权限。而 MongoDB 的权限管理是依靠 MongoDB 内置的角色来完成的,为用户授予一个或者多个角色就可以确定用户对数据库资源的操作的访问权限。

内置角色介绍

角色是指在资源上执行指定操作的集合。每个权限都可以在角色中明确指定,也可以从其他角色继承,或者两者都有。每个数据库都存在内置数据库用户角色和数据库管理角色角色。admin 数据库包含其他角色。

  • 数据库用户角色
  • 数据库管理角色
  • 集群管理角色
  • 备份和恢复角色
  • 全部数据库角色
  • 超级用户角色
  • 内部角色

数据库用户角色

每个数据库都包含以下角色

  • read;对所有非系统集合读取数据的权限。下列系统集合除外:system.indexes, system.js,和system.namespaces。
  • readWrite;提供read角色的所有权限以及修改所有非系统集合和system.js集合的数据的能力。

数据库管理角色

每个数据库都包含以下数据库管理角色

  • dbAdmin;提供执行管理任务(如与架构相关的任务,索引和收集统计信息)的功能。此角色不授予用户和角色管理权限。
  • dbOwner;数据库所有者可以对数据库执行任何管理操作。这个角色组合由授予的权限readWrite, dbAdmin和userAdmin角色。
  • userAdmin;提供在当前数据库上创建和修改角色和用户的功能。由于该userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接地提供 对数据库的超级用户访问权限,或者,如果范围限定为admin 数据库,则提供对群集的访问权限。

集群管理角色

仅 admin 数据库包含以下集群管理角色,用于管理整个系统而不仅仅是单个数据库。这些角色包括但不限于副本集和分片集群管理功能。

  • clusterAdmin;提供最佳的集群管理访问。这个角色组合由授予的权限clusterManager, clusterMonitor和hostManager角色。此外,角色提供了dropDatabase操作。
  • clusterManager;提供群集上的管理和监视操作。具有此角色的用户可以分别访问 分片和复制中使用的数据库config和local数据库。
  • clusterMonitor;提供对监视工具的只读访问权限,例如MongoDB Cloud Manager 和Ops Manager监视代理程序。
  • hostManager;提供监视和管理服务器的功能。

备份和恢复角色

仅 admin 数据库中包含以下用于备份和还原数据的角色

  • backup;提供备份数据所需的最小权限。此角色提供了足够的权限来使用MongoDB Cloud Manager备份代理, Ops Manager备份代理或用于备份 mongodump整个mongod实例。
  • restore;提供从不包含system.profile 集合数据的备份还原数据所需的权限。在mongorestore没有–oplogReplay选项的情况下恢复数据时,此角色就足够 了。

全部数据库角色

仅 admin 数据库中存在 并提供适用于所有数据库,除了特权local和 config

  • readAnyDatabase;提供与read除local和之外的所有数据库相同的只读权限config。该角色还在listDatabases整个群集上提供 操作。在版本3.4中更改:在3.4之前,readAnyDatabase包括local和 config数据库。要为数据库提供read权限,请在 local数据库中使用admin数据库中的 read角色创建用户local。
  • readWriteAnyDatabase;提供与readWrite除local和之外的所有数据库相同的读写权限config。该角色还在listDatabases整个群集上提供操作。在版本3.4中更改:在3.4之前,readWriteAnyDatabase包括local 和config数据库。要为数据库提供readWrite权限,请在local数据库中使用admin数据库中的readWrite角色创建用户local。
  • userAdminAnyDatabase;提供与userAdmin除local和 之外的所有数据库相同的用户管理操作访问权限 config。由于userAdminAnyDatabase角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。在版本3.4中更改:在3.4之前,userAdminAnyDatabase包括 local和config数据库。
  • dbAdminAnyDatabase;提供与dbAdmin除local和之外的所有数据库相同的权限config。该角色还在listDatabases整个群集上提供操作。在版本3.4中更改:在3.4之前,dbAdminAnyDatabase包括local 和config数据库。要为数据库提供dbAdmin权限,请在local数据库中使用admin数据库中的dbAdmin角色创建用户local。

超级用户角色

以下角色为所有资源提供完全权限

  • root;组合以下所有的权限对所有资源的访问,ReadWriteAnyDatabase、DBAdminAnyDatabase、UserAdminAnyDatabase、ClusterAdmin、Restore和Backup。

内部角色

  • __system;提供对数据库中的任何对象执行任何操作的权限。除特殊情况外,请勿将此角色分配给表示应用程序或人员管理员的用户对象。

MongoDB 开启权限认证登录

创建权限用户

  1. 在未开启权限认证的模式下启动 mongodb 实例,进行以下操作
> mongo.exe
> use admin
db.createUser({user:"root",pwd:"root",roles:[{role:"userAdminAnyDatabase",db:"admin"},"readWriteAnyDatabase"]})
  1. 狂点 crtrl + C 退出客户端,重启服务端

  2. 启动命令如下 开启权限校验登录

mongod.exe --dbpath= D:\mongo\db --auth
  1. 使用 可视化工具 (Studio 3T for MongoDB ,Robo 3T) 或者客户端程序驱动 api 进行连接使用

window下安装 MongoDB 服务开机自动启动

  1. 在 MongoDB 解压后的 bin 目录下新建文件 mongod.cfg
  2. 在 mongod.cfg 中添加一下配置,切记文件中不要有多余符号 配置中指定系统日志存放的位置,数据库存放位置,绑定的ip与端口号,最后开启权限认证
systemLog:
    destination: file
    path: E:\data\MongoDB\log\mongo.log
    logAppend: true
storage:
    journal:
        enabled: true
    dbPath: E:\data\MongoDB\data
net:
    bindIp: 127.0.0.1
    port: 27017
security:
    authorization: enabled
  1. 在 bin 目录下运行如下命令,服务就安装成功。如需卸载在该目录下运行命令 mongod.exe --remove
mongod.exe --config E:\work\MongoDB\bin\mongod.cfg --install
  1. 配置 windows 开机自启动
    右键计算机 => 管理 => 选择服务与应用程序,我们可以找到刚刚我们安装的 MongoDB 服务
    在这里插入图片描述
    右键 MongoDB 服务 => 属性,可以看到该服务的启动脚本,如果需要开机自启动 MongoDB 服务则将其启动类型改为自动
    在这里插入图片描述

总结

本文介绍了 MongoDB 的安装与使用,对 MongoDB 的默认配置进行了讲解,随后对 MongoDB 的权限管理进行详细的概述,以及 MongoDB 如何启动权限认证功能,最后讲解了如何在 windows 上配置 MongoDB 服务开机自启动。

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页