MongoDB安全认证之单机安全认证实现

  通过上篇MongoDB安全认证之用户、角色相关操作 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)对MongoDB的用户角色有了初步的了解,本文就其在单机安全认证中的应用进行实践。

  业务场景:

    对test数据库进行用户权限限制:用户 Luther拥有读写权限,用户Shirley 拥有只读权限测试这两个账户的权限。同时以超级管理员登录测试权限。
  当前系统中对MongoDB的访问没有任何限制:

          

  实现业务流程如下:参考Use SCRAM to Authenticate Clients — MongoDB Manual

  1、创建三个用户——超级用户一个,两个数据库用户

    超级用户lifish:

        

    数据库读写用户Luther:

      

    数据库只读用户Shirley:

      

    注意:建立哪个数据库的用户似乎就得进入哪个数据库,否则db.auth无效(至少验证的时候如此)。比如在test下创建Luther用户就得use test,而不能使用admin;虽然admin下也可以创建成功但是db.auth提示不成功。

  2、从客户端关闭 MongoDB 服务端

      

   3、MongoDB 安全认证⽅式启动

    mongod --dbpath=数据库路径 --port=端⼝ --auth 或者 在配置⽂件进行配置,如下:

      

    关于配置文件与命令行参数之间的映射关系可参考Configuration File Settings and Command-Line Options Mapping — MongoDB Manual

    启动后无用户登录,无法查看任何信息,如下:

      

  4、Luther可读可写用户登录

         

      

  5、Shirley只读用户登录

      

       

      没有写的权限,如下图示:

      

    但是具有查询的权限:

      

  6、lifish超级用户登录

      

      

       

     超级用户对非admin数据集具有可读可写等权限。

      

 

   

      

 

 

   


  

posted on 2022-03-24 16:02  池塘里洗澡的鸭子  阅读(88)  评论(0编辑  收藏  举报