在MongoDB中,服务启动默认是没有权限验证的,就安全性方面来说,这肯定是不行的,所以需要加上权限验证。

既然是要进行权限验证,那肯定是得有用户的吧,所以权限验证的第一步就是给MongoDB库添加用户。

启动MongoDB服务端,然后启动MongoDB客户端,在客户端使用命令给MongoDB库添加用户,看代码:

  1. > db.addUser("sa","123");
  2. {
  3. "user" : "sa",
  4. "readOnly" : false,
  5. "pwd" : "f7559cfe0bc0a305f82c0d83664538fd"
  6. }

小知识:在admin库里面添加用户是全局的,也就是说在admin中添加用户,在其他库里面也是适用的。

要给MongoDB的服务器端添加权限验证,需要在启动MongoDB的服务的时候添加--auth参数,代码如下:

  1. d:\mongodb\bin>mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongodb.log --logappend --serviceName MongoDB --auth --install
  2. all output going to: d:\mongodb\log\mongodb.log
  3. Creating service MongoDB.
  4. Service creation successful.
  5. Service can be started from the command line via 'net start "MongoDB"'.
  6. d:\mongodb\bin>net start "MongoDB"
  7. Mongo DB 服务正在启动 .
  8. Mongo DB 服务已经启动成功。
在这里我是以服务的方式启动MongoDB服务,第一条命令是安装服务,第二条就是启动服务了。

服务都已经启动了,那就剩下打开客户端了,这个就简单了,看代码:

  1. d:\mongodb\bin>mongo
  2. MongoDB shell version: 1.8.2
  3. connecting to: test
  4. > show dbs;
  5. Mon Oct 24 21:54:13 uncaught exception: listDatabases failed:{
  6. "assertion" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
  7. "assertionCode" : 10057,
  8. "errmsg" : "db assertion failure",
  9. "ok" : 0
  10. }
 
看到了吧,show dbs命令报异常了,再看异常的具体信息,unauthorized db:admin lock,权限验证不通过啊!

那好,下面就进行权限验证,这里唠叨一下,在进行权限验证的时候,先退出客户端,或者另起一个客户端,代码如下:

  1. d:\mongodb\bin>mongo admin -u sa -p 123
  2. MongoDB shell version: 1.8.2
  3. connecting to: admin
  4. > show dbs;
  5. admin   0.078125GB
  6. local   (empty)
  7. test    (empty)
命令格式:mongo [数据库名] -u [用户名] -p [密码]

上面的show dbs可以执行并看到结果了。

到此,权限验证的过程就算完成了。

MongoDB 权限 验证的更多相关文章

  1. Spring boot连接3.03以上的mongodb 权限验证问题

    由于3.0.3,mongodb加入了SCRAM-SHA-1校验方式,需要第三方工具配合进行验证,所有Spring boot连接MongoDB时会出现用户认证失败. 解决方法: > use adm ...

  2. MongoDB用户验证和权限管理

    官方参考页面: https://docs.mongodb.com/v3.6/tutorial/enable-authentication/ https://docs.mongodb.com/v3.6/ ...

  3. MongoDB权限管理之用户名和密码的操作

    MongoDB默认是不需要输入用户名和密码,客户就可以登录的.但是出于安全性的考虑,我们还是要为其设置用户名和密码.本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助. 本 ...

  4. springboot、springsecurity、jwt权限验证

    1.背景 基于前后端分离项目的后端模块: 2.相关技术 springboot全家桶 web模块 security模块:用于权限的验证 mongodb 模块:集成mogodb模块 jwt 用于token ...

  5. MongoDB——权限管理

    MongoDB--权限管理 MongoDB默认是没有权限验证的,但生产环境中,没有权限控制是很不安全的. 我们先不详谈太多概念,直接动手创建两个典型的账号: 超级管理员,类似sql server的sa ...

  6. 物联网架构成长之路(31)-EMQ基于HTTP权限验证

    看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...

  7. SpringBoot整合sa-token,完成网站权限验证

    sa-token是什么? sa-token是一个JavaWeb轻量级权限认证框架,其API调用非常简单,有多简单呢?以登录验证为例,你只需要: // 在登录时写入当前会话的账号id StpUtil.s ...

  8. ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...

  9. ASP.NET MVC View 和 Web API 的基本权限验证

    ASP.NET MVC 5.0已经发布一段时间了,适应了一段时间,准备把原来的MVC项目重构了一遍,先把基本权限验证这块记录一下. 环境:Windows 7 Professional SP1 + Mi ...

随机推荐

  1. Qt-获取主机网络信息之QNetworkInterface

    QNetworkInterface类提供了一个主机IP地址和网络接口的列表. QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口.每个网络接口可能包含0个或者多个IP地 ...

  2. JDBC访问SQLServer2008数据库

    来源:十二随风博客 由JDBC驱动直接访问数据库优点:100% Java,快又可跨平台缺点:访问不同的数据库需要下载专用的JDBC驱动 (1)下载对应数据库版本的jdbc驱动并安装,注意安装后的得到的 ...

  3. Html5页面返回机制解决方案

    需要处理的返回场景: 1.正常的a->b->c 2.页面上的按钮触发需要登陆 3.页面跳转需要登陆 4.页面上的可修改的部分(如选择地址,地址页面本身也是可以增删改查的) 整体的原则是原路 ...

  4. iOS之RunTime浅谈

    首先说一下什么是runtime:RunTime简称运行时.就是系统在运行的时候的一些机制,其中最主要的是消息机制.对于C语言,函数的调用 在编译的时候会决定调用哪个函数( C语言的函数调用请看这里 ) ...

  5. android适应屏幕

    生产android手机的厂商多不胜数,造就了android手机的屏幕尺寸也是不计其数.开发者为了使应用在各个品牌,各个型号的手机屏幕上保持一致的用户体验,就需要运用多种使应用的UI能适应不同屏幕尺寸的 ...

  6. poj 2175 Evacuation Plan 最小费用流判定,消圈算法

    题目链接 题意:一个城市有n座行政楼和m座避难所,现发生核战,要求将避难所中的人员全部安置到避难所中,每个人转移的费用为两座楼之间的曼哈顿距离+1,题目给了一种方案,问是否为最优方案,即是否全部的人员 ...

  7. 【web安全】第六弹:手工SQL注入详解

    前一段时间,在对SQL注入有了新的理解之后,写了这篇文章.本来准备投稿,因为内容过于基础被打回来了,想想屯着也没意思,发出来发出来~~本来有好多图的,但是博客园发图很麻烦,word文档的链接会贴在文章 ...

  8. python 内建函数 str() 和 repr() 的区别

    1.内建函数str()和repr() 或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息. 2.str()函数得到的字符串可读性好(故被print调用) 3.repr( ...

  9. 使用Yeoman搭建 AngularJS 应用 (2) —— 让我们搭建一个网页应用

    原文地址:http://yeoman.io/codelab/index.html 使用Yeoman搭建简单的应用 今天将会搭建一个简单的网页程序.你将可以添加,删除,拖拽和保存. 浏览Yeoman Y ...

  10. leetcode-110:判断平衡二叉树 Java

    Balanced Binary Tree Given a binary tree, determine if it is height-balanced. For this problem, a he ...