文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MongoDB的安全验证

2015-04-04 01:58

关注

MongoDB的安全验证

1. MongoDB创建用户角色及开启验证

先启动单例的mongodb

[root@service ~]# mongod -f mongodb.conf

以配置的方式启动

 

 

配置文件如下

systemLog:

  #MongoDB发送所有日志输出的目标指定为文件

  destination: file

  #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径

  path: "/home/log/mongod.log"

  #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。

  logAppend: true

storage:

  #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。

  dbPath: "/home/data"

  journal:

    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。

    enabled: true

processManagement:

  #启用在后台运行mongos或mongod进程的守护进程模式。

  fork: true

  #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID

  pidFilePath: "/home/log/mongod.pid"

net:

  #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip

  #bindIpAll: true

  #服务实例绑定的IP  注意ip必须存在否启动不了mongoDB

  bindIp: localhost,192.168.85.154

  #bindIp

  #绑定的端口

  port: 27017

 

 

MongoDB的用户在admin数据库中的user集合中,初始化时,没有这个user集合

切换到admin库

> use admin

 

创建系统超级用户 myroot,设置密码123456,设置角色root  【负责管理用户】

添加用户执行在开启权限之前(添加权认证授配置),不然进去客户端无法验证,添加不了用户

下面是指定数据库

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

 

(这个是没有设置数据库权限的)

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

 

创建专门用来管理admin库的账号myadmin,只用来作为用户权限的管理

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

 

修改配置开启验证(在配置文件添加授权认证 配置

授权认证(注意格式,类似于springboot的yml配置的格式)

security:
   #开启授权认证
   authorization: enabled

 

验证命令:(用来设置验证,也可以用来执行验证)

需要切换到admin数据库进行验证

这里的用户名和密码是进行权限验证读写数据库数据的

>db.auth("用户名","密码")

 

客户端重新连接时,需要验证用户名和密码,否则查看不到数据库和集合

【注意:验证失败时,需要切换数据库,比如切换到admin】

 

查看用户

 

进入客户端需要切换到admin数据库进行权限验证才能读写数据

 

删除用户( myroot:用户名 )

> db.dropUser("myroot")

 

2. Spring Data连接

使用用户名和密码连接到 MongoDB 服务器,你必须使用"username:password@hostname/dbname" 格式,"username"为用户名,"password" 为密码。 目标:使用用户czx使用密码 123456 连接到MongoDB 服务上。

 

配置文件如下

application.yml:
spring:
  #数据源配置
  data:
    mongodb:
      # 主机地址
      host: 180.76.159.126
      # 数据库
      database: articledb
      # 默认端口是27017
      port: 27017
      #帐号
      username: ckf_user
      #密码
      password: 123456

 

 

yml配置,单例配置 本地把ip改成hocalhost

spring:
  data:
    mongodb:
      uri: mongodb://ckf_user:123456@192.168.85.154:27017/attend_db

 

 

先切换admin数据库登录获取权限 再切换到需要权限的数据库(项目的数据库)执行添加用户,设置用户名和密码(read:读)下面的用户名对应着yml配置的用户名

添加用户如下(给数据库获取)

>db.createUser({user:"ckf_user",pwd:"123456",roles:[{role:"readWrite",db:"test"},{role:"readWrite",db:"attend_db"},"read"]})

 

       

  不足的地方请多多指教哦 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯