10.2启动角色权限控制功能基于角色与权限控制原理

10.2启动角色权限控制功能基于角色与权限控制原理

  • 默认情况下,mongod实例启动后,权限认证功能没有打开,即使配置文件里面显示指定了auth=true,因为数据库中没有任何权限信息;

  • 但是MongoDB激活权限功能后,所有客户端连接操作都必须进行权限认证;

  • MongoDB采用基于角色的权限控制,一个角色是一组权限的集合,一个权限决定了用户对某个数据库可以有哪些操作,用户可能有一个或多个角色;

  • 身份认证开始前,需要创建一个具有管理员角色用户,满足如下条件:

    • 条件一:用户的身份验证数据库为系统数据库admin;
    • 条件二:用户要有userAdmin角色或userAdminAnyDatabase角色;
  • 步骤:

    1. 首先配置服务端
    2. 配置客户端(.\mongo.exe –port 27017)
    3. use admin
      db.createUser({
       user:"myAdmin",
       pwd:"123456",
       roles:[{role:"userAdminAnyDatabase",db:"admin"},"readWriteAnyDatabase"]
      })
      
    4. 终止当前程序
    5. 身份验证,用户登录 mongo --port 27017 -u "myAdmin" -p --authenticationDatabase "admin"

      -p提示输入密码,注意密码在输入时不显示

  • 测试

测试结果

测试结果

测试样例

测试样例