zoukankan      html  css  js  c++  java
  • 开启权限认证

    系统不管设计的多么完善,总有一些漏洞在里面
    mongodb安全概览
    1、最安全的时物理隔离:不现实
      通过任何手段都不能连接我们的主机,只有一些重要的数据,会物理隔离到机房中
    2、网络隔离:比较安全,无法碰到漏洞,即使有漏洞,也不会有机会利用它
      我们知道很多公司,他们的开发机,测试机,都在自己的内网环境中,外部的人时进不去的,这是第二层次的隔离
    3、防火墙
      配置,只允许某些ip去连接我的mongodb,也能从一定程度上防范
    4、用户名密码:现实
      从安全来讲,次于以上3个,因为用户能够通过用户名密码来连接服务器的时候,说明能够正常的通信,如果用户名密码不是特别的复杂,就有可能被用户尝试出来
     
    之前使用mongodb时,并没有使用用户名密码,但还是自动连接上了,默认情况下,mongodb并没有为自己开启权限认证,开启权限认证有两种方法
    1、auth开启
    2、keyfile开启



    auth开启
    在启动时,在配置里面 auth = true 开启权限认证,再重启mongodb
    ./bin/mongo 127.0.0.1:12345
    MongoDB shell version v4.0.0
    connecting to: mongodb://127.0.0.1:12345/test
    MongoDB server version: 4.0.0

    依然可以链接上,是因为还没有创建用户,我们再开启了认证并创建了用户之后,不使用用户名密码就连不上了

    创建用户
    1、创建语法:createUser(2.6之前为addUser)
    {
      user:"<name>",
      pwd:'<cleartext password>',
      customData:{<any information>},//对这个用户名密码对说明
      roles:[{role:'<role>',db:'<dababase>'}]//这个用户的类型
    }
    roles,角色类型有好几种,mongodb自己内建了几种类型
    read:对指定的db上做读取操作,像find
    readWrite:除了读取操作外,还有写入的操作,比如insert, update,但不能创建索引,删除索引,创建数据库等
    dbAdmin:对这个db提供了一些管理权限,除了读取之外的其他操作,比如转换数据库类型
    dbOwner:是read,readWrite,dbAdmin的集合体,他拥有这三个权限的所有权限
    userAdmin:拥有这个权限的角色,可以对其他角色进行管理
    除了这些内建角色之外,还可以自定义一些角色,比如将一些小角色进行组合,比如可以find,insert但不能 update的权限
    创建用户名密码
    > db.createUser({user:'123',pwd:'123',customData:'test'})
    登录
    ./bin/mongo 127.0.0.1:12345 -u 123 -p 123




  • 相关阅读:
    C# 控制反转
    控制反转和依赖注入
    C#中使用AOP
    jquery ajax
    python(7)- 小程序练习:循环语句for,while实现99乘法表
    007所谓性格与条件并不是成功的阻碍,懦弱才是
    006学习有可能速成吗
    005自学与有人带着哄着逼着学的不同在于自学是一种成熟的自律
    005单打独斗意味着需要更好地管理自己
    004真正的教育是自我教育,真正的学习是自学
  • 原文地址:https://www.cnblogs.com/wzndkj/p/9472277.html
Copyright © 2011-2022 走看看