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']})

           

      不足的地方请多多指教哦 

  • 相关阅读:
    多步操作产生错误,请检查每一步的状态值
    MediaPlayer 播放百度歌曲
    MusicPlayer
    wpf slider 控件模板
    c# 静态构造函数
    好吧,学了久c#,params都不知道怎么用,记录下
    C# 使用各种API
    WPF转义字符
    WPF 执行完一段动画后再关闭窗口
    WPF xml的绑定
  • 原文地址:https://www.cnblogs.com/ckfeng/p/12795884.html
Copyright © 2011-2022 走看看