• MongoDB 权限认证


      MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),因为考虑到数据安全的原因特地花了一点时间研究了一下,网上搜出来的解决方法大都是3.0以下的版本的,所以不适合3.0+以上的版本。我现在用的版本是MongoDB3.2.7,在windows10系统上进行的验证,估计在win7/win8上应该类似。

      和其它数据库一样,权限的管理都差不多一样。mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件参数auth

      1、首先,不使用--auth参数启动MongoDB

      

    systemLog:
        destination: file
        path: C:datadblogmongod.log
        logAppend: true
    storage:
        journal:
            enabled: true
        dbPath: C:datadb
    net:
        port: 27017
    
    #security:
        #authorization: enabled

      mongod -f C:datamongodb.conf

      

      2、启动mongo, 启用admin数据库

      

     3、建立一个超级用户admin,命令如下:  

      db.createUser( 
      
        user: "admin"
        pwd: "admin123"
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
      )

      

      4、查看用户集合

      db.system.users.find()

      

      5、现在启用auth

      在重启mongod之前,修改配置文件mongo.config,在最下面加入这么一行

      auth = on

       重启mongod

      mongod -f C:datamongodb.conf 

      

      然后重启mongo,启用admin数据库,

      显示所有数据库 : show dbs, 发现已经没有权限了

      

      启用 auth

      db.auth('admin', 'admin123')  返回1表示成功

      

      再次执行show dbs

      

      6、 启用ta数据库,查看该数据库集合

      

      很遗憾没有权限,admin虽然是超级管理员,但是对具体的数据库,还是需要有对应的用户,用户是和数据库走的,因此还需要建立ta数据库的用户

      建立针对ta数据库的用户

      db.createUser({user:'test1',pwd:'test1',roles:[{role:'readWrite',db:'ta'}]})

      需要注意的是在建立ta数据库用户的时候一定要先启用ta数据库,否则会出现问题

      use ta

      

       

      执行 db.auth('test1','test1')

      然后再对ta数据库进行相应的操作。

      

  • 相关阅读:
    vs2008 服务器控件库
    dropdoenlist 设置默认值
    .NET用HttpFileCollection实现多文件上传
    dropdownlist 绑定
    简单的webservice调用(天气预报)
    统计在线人数
    多文件上传
    dropdownlist1 绑定 value值
    WMI 脚本入门:第一部分 (MSDN)
    WMI 脚本入门:第三部分 (MSDN)
  • 原文地址:https://www.cnblogs.com/shaosks/p/5775757.html
Copyright © 2020-2023  润新知