mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件参数auth
官方文档:https://docs.mongodb.com/manual/tutorial/enable-authentication/

  • db.createUser( )函数介绍
1:创建一个root用户,角色为userAdminAnyDatabase,因此root用户对数据库具有管理权限,但是不具备操作权限
db.createUser({user:"root",pwd:"123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }]});
 
2:createUser()方法说明
user:定义用户名
pwd:设置密码
roles:指定用户的角色,可以用一个空数组给新用户设定空角色; 在roles字段,可以指定内置角色和用户定义的角色。
db:指定用户对哪个数据库具有管理员权限
 
3:角色种类说明
Built-In Roles(内置角色):
①. 数据库用户角色:read、readWrite;
②. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
③. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
④. 备份恢复角色:backup、restore;
⑤. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
⑥. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
⑦. 内部角色:__system
 
4:角色对应的意义说明
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
 
5:查看授权表
db.system.users.find();
 
6:此时退出MongoDB,且编辑配置文件/etc/mongod.conf, 添加
auth=true(针对于2.6版本)
security:(针对于3.4版本)
authorization: enabled
 
7:可以在连接数据库的时候认证,也可以在登入时候认证,这里使用登入之后认证的方式
show dbs; (会报错,因为没有管理授权)
db.auth("root", "123456") 授权之后再查看数据库就没有问题了
 
8:此时登入使用的是root用户,角色是管理角色,但是不具备对数据库的操作权限
use test;
show collections; (会报错,因为没有操作权限)
 
9:再次创建一个用户: test,让其对test具有读写操作, 且切换用户为test
db.createUser({user:"test",pwd:"test", roles: [{ role: "readWrite", db: "test" }]});
db.auth("test", "test")
 
10:再次查看test库的表,发现可以查看了
show collections;
 
11:其实,如果需要创建一个用户具有管理权限且同时具有操作权限,那么这个用户的角色必须是root
db.createUser({user:"yhy",pwd:"123456", roles: [{ role: "root", db: "admn" }]});

mongodb授权认证 介绍的更多相关文章

  1. 启用mongodb授权认证

    linux下 1.以–auth 启动mongod 2.在配置文件mongod.conf 中加入 auth = true

  2. mongodb授权登录

    mongodb版本为3.2(目前最新),演示的是linux下的mongodb授权认证 第一次登录不启动授权(mongo默认不启动) ./mongod --dbpath=/home/db/data -- ...

  3. linux下mongodb授权登录

    mongodb版本为3.2(目前最新),演示的是linux下的mongodb授权认证 第一次登录不启动授权(mongo默认不启动) ./mongod --dbpath=/home/db/data -- ...

  4. mongodb的认证(authentication)与授权(authorization)

    一小白瞎整mongodb,认证部分被折磨的惨不忍睹,看厮可怜,特查了一下文档,浅显地总结一下mongodb认证(authentication)与授权(authorization)的联系. 创建的所有用 ...

  5. 七天学会ASP.NET MVC (四)——用户授权认证问题

    小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天的学习中,我们主要了学习如何在MVC中如何实现认证授权等问题,本节主要讲了验证错误时的错误值,客户端验 ...

  6. MongoDB 权限认证

    MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),因为考虑到数据安全的原因特地花了一点时间研究了一下,网上搜出来的解 ...

  7. OAuth2.0认证介绍

    OAuth2.0鉴权 返回 目录 [隐藏] 1 腾讯微博OAuth2.0认证介绍 2 获取accesstoken的两种方式 2.1 1.Authorization code grant 2.1.1 第 ...

  8. React + Node 单页应用「二」OAuth 2.0 授权认证 & GitHub 授权实践

    关于项目 项目地址 预览地址 记录最近做的一个 demo,前端使用 React,用 React Router 实现前端路由,Koa 2 搭建 API Server, 最后通过 Nginx 做请求转发. ...

  9. 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)

    ---------------------------------------------------------------------------------------------- [版权申明 ...

随机推荐

  1. NoSQL入门第二天——Redis入门介绍

    一.基本概述 1.是什么 Redis:REmote DIctionary Server (远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议, 是一个高性能的(key/value)分布 ...

  2. 2017-2018-1 20155214 《信息安全系统设计基础》 第9周课下测试-mypwd

    2017-2018-1 20155214 <信息安全系统设计基础> 第9周课下测试-mypwd(深入版) 题目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; ...

  3. code first 创建数据库,add-migration update-database

    第一步: 第二步:

  4. async/await工作机制探究--NodeJS

    ES6中的async/await让Promise变得更加简便,通常await处理的链式Promise会包裹在函数中,返回结果仍然是一个Promise对象. 但是当await直接处理链式Promise时 ...

  5. 流行创意风格教师求职简历免费word模板

    18款流行创意风格教师求职简历免费word模板,也可用于其他专业和职业,个人免费简历模板,个人简历表免费,个人简历表格. 声明:该简历模板仅用于个人欣赏使用,请勿用于商业用途,谢谢. 下载地址:百度网 ...

  6. Ubuntu18.04安装Python3.6.8

    Ubuntu18.04预装了Python3.6.5 终于不再预装Python2.7了 但是系统预装的Python分散安装在各个目录里 以后改起来非常不方便 所以本次安装Python3.6.8 Pyth ...

  7. 在初学Flask中遇到的小问题。

    今天初步认识到了Flask这个轻量级web开发框架.对于初步认识框架的我,暂时的有了一个小小的认识, 因为初学.也没有什么代码可供参开.一下的就是一个小小的例子. # 导包from flask imp ...

  8. 使用tensorflow进行mnist数字识别【模型训练+预测+模型保存+模型恢复】

      import sys,os sys.path.append(os.pardir) import numpy as np from tensorflow.examples.tutorials.mni ...

  9. MD5加密--项目案例

    在项目中最尝使用MD5这种非对称加密的就是用户信息登录了.下面我就以一个简单的登录案例来说明MD5的用法 首先来看几张图: 用户登录页:需要选择要登录的系统,同时输入用户的用户名和密码,验证码才能进入 ...

  10. 0.前言 three.js 简介

    前言 前段时间开始接触three.js本来以为会很简单但是真正开始学习的时候才发现事情并不是我想象的那么容易,three.js的学习资料非常的少稍微好一点的资料就是收费的,给three.js的学习带来 ...