MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),因为考虑到数据安全的原因特地花了一点时间研究了一下,网上搜出来的解决方法大都是3.0以下的版本的,所以不适合3.0+以上的版本。我现在用的版本是MongoDB3.2.7,在windows10系统上进行的验证,估计在win7/win8上应该类似。

  和其它数据库一样,权限的管理都差不多一样。mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件参数auth

  1、首先,不使用--auth参数启动MongoDB

  

systemLog:destination: filepath: C:\data\dblog\mongod.loglogAppend: true
storage:journal:enabled: truedbPath: C:\data\db
net:port: 27017#security:#authorization: enabled

  mongod -f C:\data\mongodb.conf

  

 2、启动mongo, 启用admin数据库

  

 3、建立一个超级用户admin,命令如下:  

  db.createUser( 
  
    user: "admin"
    pwd: "admin123"
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
  )

  

  4、查看用户集合

  db.system.users.find()

  

  5、现在启用auth

  在重启mongod之前,修改配置文件mongo.config,在最下面加入这么一行

  auth = on

  重启mongod

  mongod -f C:\data\mongodb.conf

  

  然后重启mongo,启用admin数据库,

  显示所有数据库 : show dbs, 发现已经没有权限了

  

  启用 auth

  db.auth('admin', 'admin123')  返回1表示成功

  

  再次执行show dbs

  

  6、 启用ta数据库,查看该数据库集合

  

  很遗憾没有权限,admin虽然是超级管理员,但是对具体的数据库,还是需要有对应的用户,用户是和数据库走的,因此还需要建立ta数据库的用户

  建立针对ta数据库的用户

  db.createUser({user:'test1',pwd:'test1',roles:[{role:'readWrite',db:'ta'}]})

  需要注意的是在建立ta数据库用户的时候一定要先启用ta数据库,否则会出现问题

  use ta

  

  

  执行 db.auth('test1','test1')

  然后再对ta数据库进行相应的操作。

  

MongoDB 权限认证相关推荐

  1. MONGODB 权限认证

    使用mongoDB 是从2.4 版本开始的,但那时的权限管理相对比较简单.也就没有去弄这个. 现在再回头看几个版本的权限管理,看到各个版本间都在变化. 并且集群与单机也有很大的不同, 下面是以2.6版 ...

  2. 开启docker中MongoDB的认证授权

    开启docker中MongoDB的认证授权 思路 开启MongoDB服务后,默认是没有权限验证的.直接通过IP加端口就可以远程访问数据库,并对数据库进行任意操作.下面介绍一下如何开启docker中Mo ...

  3. MongoDB权限控制

    文章目录 权限控制API 针对所有数据库的角色 针对单个数据库的角色 副本与集群的权限控制 小结 权限控制API 到目前为止,数据库都处于"裸奔"的状态,任何用户都可以连接到任何数 ...

  4. MongoDB安全认证

    1.安全认证概述 MongoDB 默认是没有账号的,可以直接连接,无须身份验证.实际项目中肯定是要权限验证的,否则后果不堪设想.从2016年开始 发生了多起MongoDB黑客赎金事件,大部分Mongo ...

  5. 还在用Spring Security?推荐你一款使用简单、功能强大的权限认证框架

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/qq_40058629/article/ details/116692302 我们先看一下官网介绍 ...

  6. 这可能是史上功能最全的Java权限认证框架!

    点击关注公众号,Java干货及时送达 今天给大家推荐的这个开源项目超级棒,可能是史上功能最全的 Java 权限认证框架! 这个开源项目就是:sa-token . Sa-Token是什么? sa-tok ...

  7. mongodb权限管理02

    mongodb权限管理02 接下来,mongodb 的配置文件中如何实现密码的登录呢? 我们之前是直接用的这个命令 [root@prd3-mysql-0-36 ~]# mongod -f /ivarg ...

  8. SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存

    一.在pom中引入依赖jar包 1 <properties> 2 <shiro.version>1.3.2</shiro.version> 3 </prope ...

  9. MVC项目开发中那些用到的知识点(登录权限认证)

    话说从开始接触MVC到现在也有一段时间了,记得好像是从2012年8月初开始做项目的.就记录一下自己所用到的且认为重要的知识点吧. 首先做的便是一个登录,那么就用到了登录权限认证: public cla ...

最新文章

  1. 深圳速度!这所筹建中的大学,迎来首任“掌门人”!
  2. struts.xml配置文件中result的语法
  3. java 重构 if else_java中繁杂的if/else怎么重构
  4. 【REST】基于RESTful服务端的客户端实现(HttpClient、RestTemplate、HttpURLConnection)
  5. 三合一剪弦器怎么用_三合一冲锋衣推荐选购攻略:
  6. SPOJ1812 LCS2
  7. linux制作一键恢复,Linux/Centos Mondo 一键部署、镜像恢复,快速部署
  8. linux挂接u盘视频,LINUX挂接U盘
  9. 疑似Redmi K40新机获得3C认证:搭载联发科天玑1000+ 支持33W快充
  10. Windows10 任务栏图标如何居中
  11. chrome vue.js插件文档_前端开发者必备的40个VSCode插件!
  12. [转载] Python repr() 函数
  13. 交互式电子杂志_电子杂志形式与交互问题分析
  14. matlab 指数函数拟合,[转载]MATLAB数据拟合例子(一次函数、指数函数、双曲线)...
  15. AES-encryptor
  16. unity中的游戏推出代码
  17. android查看经纬度,安卓获取经纬度位置
  18. 基于MATLAB的人眼开度疲劳检测识别
  19. ImageView显示图片控件介绍
  20. LNMP论坛搭建,图案步骤,简单清晰明瞭

热门文章

  1. webflow如何使用_我如何使用Webflow构建辅助项目以帮助设计人员进行连接
  2. 学习 vuex 源码整体架构,打造属于自己的状态管理库
  3. Silverlight 解谜游戏 之四 粒子特效
  4. 思科设备snmp配置。
  5. ASIHTTPRequest源码简单分析
  6. $(#id).val()取值textarea是
  7. Activity加载View调用顺序
  8. 双绞线直连法如何才能使两台电脑实现共享
  9. Java Decompiler(Java反编译工具)
  10. Java基础 五 方法