MongoDB 账户权限配置

603 阅读2分钟

「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

1. 账户权限配置

创建超级管理用户

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

修改数据库配置文件

路径(依据实际路径):
C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg 
配置: 
security: 
	authorization: enabled

重启 mongodb 服务

windows + R

在这里插入图片描述

在这里插入图片描述

用超级管理员账户连接数据库

mongo admin -u 用户名 -p 密码 
mongo 192.168.1.200:27017/test -u user -p password

给 xxx 数据库创建一个用户, 只能访问 xxx数据库, 不能访问其他数据库

use eggcms 
db.createUser( { user: "eggadmin", pwd: "123456", roles: [ { role: "dbOwner", db: "eggcms" } ] } )

2. 账户权限配置中常用的命令

查看当前库下的用户

show users;

删除用户

db.dropUser("eggadmin")

修改用户密码

db.updateUser( "admin",{pwd:"password"});

密码认证

db.auth("admin","password");

3. 数据库角色

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin; 
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 
备份恢复角色:backup、restore; 
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase 
超级用户角色:root

4. 连接数据库的时候需要配置账户密码

const url = 'mongodb://admin:123456@localhost:27017/';

拓展:关于 MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

crud-annotated-document.png

特点:

  • MongoDB 是一个面向文档存储的数据库;
  • MongoDb 使用 update() 命令可以实现替换完成的文档(数据)或者一些指定的数据字段;
  • Mongodb 中的 Map/reduce 主要是用来对数据进行批量处理和聚合操作;
  • Map 函数调用 emit(key,value) 遍历集合中所有的记录,将 key 与 value 传给 Reduce 函数进行处理;
  • 可以通过 db.runCommand 或 mapreduce 命令来执行 MapReduce 操作;