默认mongoDB 并没有用户限制,任何人都可以连接数据库
默认有 admin 、 config 、local、 test 四个数据库,show dbs 命令开始会显示前三个数据库,因为test 没有数据。
1、内置角色
1.1 当前数据库的角色
角色 | 能够执行的操作 |
---|---|
read | 能读取所有非系统集合和system.js集合的数据 |
readWrite | 能读取所有非系统集合和system.js集合的数据 或 写入 |
dbAdmin | 提供执行管理任务的能力,例如与架构相关的任务、索引和收集统计信息。但没有用户和角色管理权限。 |
userAdmin | 提供在当前数据库上创建和修改角色和用户的功能。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接地向超级用户提供对数据库、集群及admin数据库(如果有scoped)的访问。 |
dbOwner | 可以执行任何操作,readWrite、dbAdmin和userAdmin 权限的总和 |
1.2 群集管理角色
admin数据库包括所有以下角色,用于管理整个系统,而不仅仅是单个数据库。这些角色包括但不限于副本集和分片集群管理功能。
角色 | 能够执行的操作 |
---|---|
clusterManager | 提供群集上的管理和监视操作。具有此角色的用户可以访问 config 数据库和 local 数据库,它们分别用于分片和复制。 |
clusterMonitor | 提供对监控工具(如MongoDB Cloud Manager和Ops Manager监控代理)的只读访问。 |
hostManager | 提供监视和管理服务器的功能。 |
clusterAdmin | 提供最大的群集管理访问。此角色结合了clusterManager、clusterMonitor和hostManager角色授予的权限。还提供dropDatabase操作。 |
1.3 备份和恢复角色
admin数据库包括所有以下角色
角色 | 能够执行的操作 |
---|---|
backup | 提供备份数据所需的最低权限。此角色提供足够的权限来使用MongoDB Cloud Manage、Ops Manager 备份代理或使用mongodump备份整个mongod实例。 |
restore | 提供从备份中还原数据所需的权限(如果数据不包括system.profile数据) 并在运行mongorestore时,可不使用--oplogReplay选项。 |
1.4 所有数据库的角色
以下角色在admin 数据库上可用,并提供适用于除local 和config之外的所有数据库的权限:
角色 | 能够执行的操作 |
---|---|
readAnyDatabase | 提供与在除 local 和 config之外的所有数据库上 read 相同的只读权限。该角色还提供对整个集群的listDatabases操作。 |
readWriteAnyDatabase | 提供与在除 local 和 config之外的所有数据库上 readWrite 相同的读写权限。该角色还提供对整个集群的listDatabases操作。 |
dbAdminAnyDatabase | 提供与在除 local 和 config之外的所有数据库上 dbAdmin 相同的权限。该角色还提供对整个集群的listDatabases操作。 |
userAdminAnyDatabase | 提供与在除 local 和 config之外的所有数据库上 userAdmin 相同权限。 |
1.4 超级用户角色
以下角色可以为任何用户分配任何数据库上的任何权限,这意味着具有这些角色之一的用户可以为自己分配任何数据库上的任何权限:
admin 数据库的 dbOwner 角色
admin 数据库的 userAdmin 角色
userAdminAnyDatabase 角色
root 角色:超级权限
详情官网:https://docs.mongodb.com/manual/reference/built-in-roles/