searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Mongo内建角色和用户管理

2023-07-27 09:16:10
11
0

每个内建角色定义了权限:

  • 数据库级别的权限:       对所有non-system collections有效
  • collections级别的权限:  对system collections 有效

 

内建角色:

  1. 每个数据库都有的内建角色(非admin的角色, 范围限定在所在数据库的权限)
    1. database user roles
      • read :    对所有non-system collections 和 system.js collection的读权限
      • readWrite  对所有non-system collections 和 system.js collection的读写权限
    2. database administration roles
      • dbAdmin: 对schame相关操作的权限,如建索引, 查看profile等
      • dbOwner: 包含readWrite、dbAdmin、UserAdmin角色
      • userAdmin: 在所在数据库等创建和修改角色和用户的权限

2.  admin数据库包含cluster administration roles

    1. clusterAdmin:  包含clusterManger、clusterMonitor、hostManager角色,外加dropDatabase权限
    2. clusterManger: 对集群的管理和监管权限,可以访问config和local database,对non-system collections 有读写权限, 对system collections只有读权限
    3. clusterMonitor:对集群的管理和监管的读权限
    4. hostManager:管理和监控server的权限

3. admin数据库包含Backup 和 Restoration roles

    1. backup:back up data的相关权限
    2. restore:restore相关的权限

4. admin数据库包含的对所有数据库(local和config除外)的权限

    1. readAnyDatabase:拥有除local和config外的所有databasse的read权限
    2. readWriteAnyDatabase:拥有除local和config外的所有databasse的readWrite权限
    3. userAdminAnyDatabase:拥有除local和config外的所有databasse的userAdmin权限
    4. dbAdminAnyDatabase:拥有除local和config外的所有databasse的dbAdmin权限

5. superuser roles

    1. 可以任意创建角色和用户的权限:
      • dbOwner(admin):
      • userAdmin(admin):
      • userAdminAnyDatabase:
    2. root用户又有如下角色权限:
      • readWriteAnyDatabase
      • dbAdminAnyDatabase
      • userAdminAnyDatabase
      • clusterAdmin
      • restore
      • backup

mongo用户管理的特点

  1. 用户在不同的数据库创建 就用不同的数据库进行验证,即authentication database
  2. 不同数据库创建的用户,即使同名,也是不同的用户 即<authentication database>.<userName>才组成用户的唯一名字
  3. 连接服务器的时候,除了提供用户名,还需要提供验证数据库,如果省略了验证数据库, 默认是使用admin
  4. 用户的权限跟在哪个数据库创建无关,只与授予的用户权限和角色有关
0条评论
作者已关闭评论
Benson
6文章数
0粉丝数
Benson
6 文章 | 0 粉丝
原创

Mongo内建角色和用户管理

2023-07-27 09:16:10
11
0

每个内建角色定义了权限:

  • 数据库级别的权限:       对所有non-system collections有效
  • collections级别的权限:  对system collections 有效

 

内建角色:

  1. 每个数据库都有的内建角色(非admin的角色, 范围限定在所在数据库的权限)
    1. database user roles
      • read :    对所有non-system collections 和 system.js collection的读权限
      • readWrite  对所有non-system collections 和 system.js collection的读写权限
    2. database administration roles
      • dbAdmin: 对schame相关操作的权限,如建索引, 查看profile等
      • dbOwner: 包含readWrite、dbAdmin、UserAdmin角色
      • userAdmin: 在所在数据库等创建和修改角色和用户的权限

2.  admin数据库包含cluster administration roles

    1. clusterAdmin:  包含clusterManger、clusterMonitor、hostManager角色,外加dropDatabase权限
    2. clusterManger: 对集群的管理和监管权限,可以访问config和local database,对non-system collections 有读写权限, 对system collections只有读权限
    3. clusterMonitor:对集群的管理和监管的读权限
    4. hostManager:管理和监控server的权限

3. admin数据库包含Backup 和 Restoration roles

    1. backup:back up data的相关权限
    2. restore:restore相关的权限

4. admin数据库包含的对所有数据库(local和config除外)的权限

    1. readAnyDatabase:拥有除local和config外的所有databasse的read权限
    2. readWriteAnyDatabase:拥有除local和config外的所有databasse的readWrite权限
    3. userAdminAnyDatabase:拥有除local和config外的所有databasse的userAdmin权限
    4. dbAdminAnyDatabase:拥有除local和config外的所有databasse的dbAdmin权限

5. superuser roles

    1. 可以任意创建角色和用户的权限:
      • dbOwner(admin):
      • userAdmin(admin):
      • userAdminAnyDatabase:
    2. root用户又有如下角色权限:
      • readWriteAnyDatabase
      • dbAdminAnyDatabase
      • userAdminAnyDatabase
      • clusterAdmin
      • restore
      • backup

mongo用户管理的特点

  1. 用户在不同的数据库创建 就用不同的数据库进行验证,即authentication database
  2. 不同数据库创建的用户,即使同名,也是不同的用户 即<authentication database>.<userName>才组成用户的唯一名字
  3. 连接服务器的时候,除了提供用户名,还需要提供验证数据库,如果省略了验证数据库, 默认是使用admin
  4. 用户的权限跟在哪个数据库创建无关,只与授予的用户权限和角色有关
文章来自个人专栏
知识笔记
6 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0