• 添加用户验证

    • 修改验证方式
    • 创建系统管理员
    • 创建数据库管理员
    • 测试
      • mongodbconf
      • 启动
      • 测试
      • 实战流程
  • Spring配置

由于16年底公司数据库被黑之后,研究了下mongo鉴权,给数据库加上了的确安全了不少,至少不是裸奔了,今天给一新数据库加鉴权,居然忘记了,凭印象笔记的点点滴滴才搞好,索性整理一篇文章,怕自己再忘接了可咋办.

1. 添加用户验证

Mongodb 2.6 的默认用户验证方式是:MONGODB-CR
Mongodb 3.0 的默认用户验证方式是:SCRAM-SHA-1

由于项目中的MongoDB版本是3.0的,而SCRAM-SHA-1验证方式在spring和java中还有问题,所以项目中3.0的数据库依旧使用之前的验证方式。所以我们要把3.0的验证方式改成MONGODB-CR.

注意:添加鉴权的时候,不要开启auth,就是配置文件中不要把auth设置为true.否则你是没有权限添加权限的…

修改验证方式

use admin//切换到admin的DB
db.system.users.remove({})//删除用户
db.system.version.remove({})//删除版本信息
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })//直接插入一条,暴力解决

创建系统DB管理员

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

注意:admin是system权限,会拥有其他数据库的权限,但是在spring中,用admin登录其他数据库是没有权限的.

创建数据库管理员

use test//切换到测试数据库
db.createUser({user:"test_admin",pwd:"123456",roles:["readWrite","dbAdmin"]})

测试

以上操作没有报错之后,在配置文件中把auth设置为true.

mongodb.conf:

dbpath=C:\MongoDB\data #数据库路径
logpath=C:\MongoDB\logs\mongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=false #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
maxConns=20000
auth=true #开启验证
rest = false #禁止rest接口
nohttpinterface = true #禁止HTTP状态接口
#bind_ip=0.0.0.0

启动

mongod --config=C:\MongoDB\conf\mongodb.conf

注意:这里默认为本机的27017端口

测试

use test
db.user.find()//如果报错拿不到数据,显示not authorized for query on...,说明没权限
db.auth("test_admin","123456")//返回1,代表成功
db.user.find()
...//此处为大堆大堆的数据了

实战流程

这里是整个流程的,数据库端口用的是26016

2. Spring配置

本例所用jar包为:
spring 4.2.1
mongodb-driver:3.0.4.jar
spring-data-mongodb:1.8.0.jar

其实配置也很简单,就是修改下mongodb的xml文件即可(spring-mongodb.xml).

<!-- 修改前,无密码访问-->
<mongo:mongo-client host="192.168.0.114" port="27017" id="mongo">
...
</mongo:mongo-client>
<!-- 修改后,加入credentials="username:password@database"-->
<!--credentials="用户名:密码@拥有权限的数据库"-->
<mongo:mongo-client host="192.168.0.114" port="27017" credentials="test_admin:123456@test" id="mongo">
...
</mongo:mongo-client>

MongoDB 3.0 用户验证问题相关推荐

  1. mongodb java报授权,mongoDB 3.0用户创建与授权

    选择数据库 use admin 添加用户: db.createUser( { user: "admin", pwd: "12345678", roles: [ ...

  2. mongodb 系列 ~ mongo 用户验证系列

    MongoClientURI connectionString = new MongoClientURI("mongodb://root:****@dds-bp114e3f1fc441342 ...

  3. MongoDB 3.0 用户创建

    原文地址: https://www.cnblogs.com/zhoujinyi/p/4610050.html 摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很 ...

  4. Mongodb 3.0 创建用户

    MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 创建第一个用户(该用户需要有grant权限,即:账号管理的授权权限) ...

  5. MongoDB 5.0新特性概览

    简介:MongoDB 5.0标志着一个新的发布周期的到来,以更快地交付新特性给到用户.版本化API与在线重新分片相结合,使用户不必担心未来的数据库升级以及业务变化问题:本地原生时间序列数据平台也使Mo ...

  6. MongoDB 3.X 用户权限控制

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  7. mongodb创建普通用户并授权readWrite角色,并允许访问某一数据库

    MongoDB 数据库默认角色 数据库用户角色:read.readWrite 数据库管理角色:dbAdmin.dbOwner.userAdmin 集群管理角色:clusterAdmin.cluster ...

  8. mongoDB 3.0 安全权限访问控制

    转自:http://ibruce.info/2015/03/03/mongodb3-auth/?utm_source=tuicool MongoDB3.0权限,啥都不说了,谷歌百度出来的全是错的.先安 ...

  9. mongodb 创建只读用户

    关闭mongo #先找到mongo的进程 ps -ef | grep mongo kill -9 {pid} 先停止mongodb的进程 修改配置文件mongo.conf dbpath=/opt/su ...

最新文章

  1. Leetcode 345. 反转字符串中的元音字母 解题思路及C++实现
  2. Java8-Stream-终止操作-查找与匹配
  3. CPU上下文切换(系统调用、进程上下文、线程上下文、中断上下文)
  4. 利用JAVA手机登录页面_Java用户登陆界面例子 代码
  5. 异常值(outlier)
  6. Android P:BottomAppBar和MaterialButton
  7. tidyverse —— readr包
  8. SSM(Spring+SpringMVC+MyBatis):图书管理系统附有GIF动图,博主可免费答疑
  9. uni-app android权限
  10. php msn,利用php给MSN发送消息
  11. mysql复制表结构创建新表
  12. char类型和字符串
  13. 【双碳政策】分布式光伏如何进行实时运维监测管理
  14. 网页无法访问,不安全警告或证书过期问题解决
  15. 计算机在材料科学与工程中的应用课后答案,材料科学与工程导论课后习题答案...
  16. 微信小程序滑动scroll-view
  17. 我的网名为什么是ma6174????
  18. 马自达化身杠精?老子就是不用触摸屏!
  19. css word-bread
  20. 「镁客·请讲」易瞳科技梁剑泓艾韬:未来MR会把VR和AR融合在一起

热门文章

  1. 模拟WSockExpert,使用APIHOOK
  2. 2.卷积神经网络之猫狗辨识
  3. oracle EXPLAIN PLAN FOR
  4. 高通平台USB如何枚举 mass_storage,以及将nandflash/sd/emmc存储分区通过usb mass_storage function映射到PC 上面
  5. 7、查询学过“张三“老师授课的同学的信息
  6. 中国建设银行个人金融部组建PMO项目团队
  7. 宏基Acer笔记本预装win8系统换成win7系统安装教程
  8. 【Android】将图片转为xml文件
  9. (初学者)用python实现九九乘法表
  10. 安卓Dialog 设置margin属性没有用