zoukankan      html  css  js  c++  java
  • 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']})

           

      不足的地方请多多指教哦 

  • 相关阅读:
    HDU 1102 Constructing Roads
    HDU 1285 确定比赛名次。
    最小生成树 HDU 各种畅通工程的题,prim和kru的模板题
    HDU Jungle Roads 1301 最小生成树、
    并查集小结(转)
    HDU hdu 2094 产生冠军 拓扑排序 判定环
    模运算(转)
    拓扑排序(主要是确定环和加法) HDU 2647 Reward
    HDU 1372 Knight Moves 简单BFS
    用计算机模型浅析人与人之间沟通方式 (一)如何谈话
  • 原文地址:https://www.cnblogs.com/ckfeng/p/12795884.html
Copyright © 2011-2022 走看看