zoukankan      html  css  js  c++  java
  • MongoDB的安全校验

      一、MongoDB安全校验的重要性

        每个MongoDB实例中的数据库都可以有许多用户。如果没有开启安全校验,限制用户权限,则每个进到数据库的用户都能任意的对数据库数据进行读,写甚至是读写操作。这样的场景在实际的应用中是非常危险的,容易导致数据丢失,误删等事故,所以数据库服务开启安全校验,十分有必要。

      二、MongoDB如何开启安全校验

        一旦MongoDB开启了安全检查,则必须是数据库认证用户才有权力对数据进行读,写或读写操作。在进行安全检查之前,一定要至少有一个管理员账号,这是为什么呢?因为只有管理员可以读写任何的数据库,执行特定的管理命令,如为某个数据库添加特定用户,限制读写权限等。

        如下图,为admin数据库添加了超级管理员root,密码为1234,方便在数据库开启安全检查后,使用该用户登录后能够进行数据库的管理,添加用户的语法为

        db.addUser("用户名","密码",是否只读true|false)

        然后为kaiye数据库添加了两个用户,语法分别为

        db.addUser("haha","123"):haha用户对kaiye数据库具有读写权限

        db.addUser("hehe","123",true):hehe用户对kaiye数据库只有读权限

        重启服务端,并在开启服务端命令后面添加 --auth,就启动了MongoDB的安全校验了。

        mongod --dbpath=C:\mymongodb --port 27017 --auth

        

        在服务端开启安全校验后,分别登录haha和hehe用户,进行数据的读写操作,在show collections时,会报无权限的异常。

        

        此时需要使用数据库的用户进行认证登录,语法:db.auth("用户名","密码"),登录刚才添加的hehe用户(添加了只读权限)后,发现只能对数据进行检索查询,却不能进行数据的插入操作,这是因为刚才在为kaiye数据库添加hehe用户时,将addUser()函数的第三个值设置成了true,也就是该用户只有只读权限,所以无法进行写操作。

        

        切换用户,即登录同时具有读写权限的haha用户,会发现既能进行find操作,也能进行insert操作。

        

        

        

  • 相关阅读:
    Mysql执行顺序
    读取资源文件ResourceUtils
    军规(一)
    Spring声明式事务@Transactional 详解,事务隔离级别和传播行为
    linux crontab
    es _cat API
    elastic search 常用查询
    elastic search 重要的系统配置
    cerebro 配置
    Ubuntu18.04 搭建zookeeper单机版集群
  • 原文地址:https://www.cnblogs.com/jiyukai/p/6981199.html
Copyright © 2011-2022 走看看