MongoDB Built-In Roles
2023-05-15 17:48:35 0 举报
AI智能生成
MongoDB Built-In Roles
作者其他创作
大纲/内容
Internal Role
__system
__system是这类内部角色的前缀。通常情况下,内部角色不会直接分配给用户。
__system角色很少需要手动进行操作,它们主要是为了满足系统内部需求而存在。例如,当使用复制集或分片集群时,内部角色可以被用于处理服务器内部之间的通信和数据同步等任务。
对于大多数用户来说,直接使用MongoDB提供的内建角色(如readWrite、dbAdmin等)来控制用户权限就足够了。除非你有特殊需求,否则不需要关注__system开头的内部角色。
Database User Roles
read
changeStream
changeStream 是一种特殊的数据流对象,用于实时监控集合中数据的变化,并获取这些变化。
collStats
collStats 命令可以用来查询集合中的文档数量、索引数量、存储空间使用情况、平均文档大小等相关信息。
dbHash
dbHash 会计算指定数据库中每个集合的哈希值,以及各个哈希值的总和,从而得到一个数据库级别的哈希值。哈希值是一种摘要信息,可以用于判断数据是否被篡改或损坏。
dbStats
dbStats 可以用于查询数据库的数据大小、索引大小、存储空间占用情况等相关信息。
find
find 可以接受一个查询条件作为参数,并返回满足该条件的文档结果集。
killCursors
killCursors 可以用于立即停止正在执行的查询操作,以释放服务器上的资源和连接。
listIndexes
listIndexes 可以接受一个集合名作为参数,并返回该集合中所有存在的索引信息,包括索引名称、索引字段、索引类型等。
listCollections
listCollections 可以接受一个可选的过滤条件对象作为参数,并返回匹配该条件的所有集合信息,包括集合名称、集合类型、存储引擎等。
readWrite
changeStream
changeStream 是一种特殊的数据流对象,用于实时监控集合中数据的变化,并获取这些变化。
collStats
collStats 命令可以用来查询集合中的文档数量、索引数量、存储空间使用情况、平均文档大小等相关信息。
convertToCapped
convertToCapped 可以接受一个集合大小参数作为必选参数,并将指定的集合转换为固定大小的集合。固定大小集合的特点是插入新文档时会按照插入顺序覆盖旧文档,因此适用于日志、缓存等需要自动清理历史数据的场景。
createCollection
convertToCapped 可以接受一个集合大小参数作为必选参数,并将指定的集合转换为固定大小的集合。固定大小集合的特点是插入新文档时会按照插入顺序覆盖旧文档,因此适用于日志、缓存等需要自动清理历史数据的场景。
dbHash
dbHash 会计算指定数据库中每个集合的哈希值,以及各个哈希值的总和,从而得到一个数据库级别的哈希值。哈希值是一种摘要信息,可以用于判断数据是否被篡改或损坏。
dbStats
dbStats 可以用于查询数据库的数据大小、索引大小、存储空间占用情况等相关信息。
dropCollection
dropCollection 可以接受一个集合名称作为参数,并删除该数据库中的指定集合。执行该命令会立即删除集合及其中的所有文档,因此需要谨慎使用该命令。
createIndex
createIndex 是一个用于创建索引的命令。
dropIndex
dropIndex 是一个用于删除指定索引的命令。
find
find 可以接受一个查询条件作为参数,并返回满足该条件的文档结果集。
insert
insert 是一个用于向集合中插入文档的命令。
killCursors
killCursors 可以用于立即停止正在执行的查询操作,以释放服务器上的资源和连接。
listIndexes
listIndexes 可以接受一个集合名作为参数,并返回该集合中所有存在的索引信息,包括索引名称、索引字段、索引类型等。
listCollections
listCollections 可以接受一个可选的过滤条件对象作为参数,并返回匹配该条件的所有集合信息,包括集合名称、集合类型、存储引擎等。
remove
remove 是一个用于删除集合中文档的命令。
renameCollectionSameDB
renameCollection 是一个用于重命名集合的命令。
update
update 是一个用于更新集合中文档的命令。
Database Administration Roles
dbAdmin
创建和删除数据库;
查看、管理和修改数据库的配置;
备份和恢复数据库;
所有非系统集合(即数据库资源)、索引和用户等数据库对象。
dbOwner
dbAdmin
数据库管理角色,具有管理数据库的权限。
userAdmin
用于用户管理的角色,具有管理数据库用户和角色的权限。
userAdmin
创建、修改和删除数据库用户;
查看和管理其他用户的权限和角色;
了解授予 userAdmin 角色的安全隐患很重要:具有此数据库角色的用户可以为自己分配对该数据库的任何特权。在 admin 数据库上授予 userAdmin 角色具有进一步的安全隐患,因为这间接提供了对集群的超级用户访问权限。使用 admin 范围,具有 userAdmin 角色的用户可以授予集群范围的角色或权限,包括 userAdminAnyDatabase userAdminAnyDatabase。
修改和删除其他用户的密码。
Cluster Administration Roles
clusterAdmin
提供最大的集群管理访问。此角色结合了 clusterManager 、 clusterMonitor 和 hostManager 角色授予的特权。此外,该角色还提供 dropDatabase 操作。
clusterManager
clusterManager 角色主要用于管理MongoDB集群的部署和运维任务。
clusterMonitor
提供对监控工具的只读访问,例如 MongoDB Cloud Manager 和 Ops Manager 监控代理。
hostManager
提供监视和管理服务器的能力。
applicationMessage
向 MongoDB 实例发送应用程序消息;
查看和管理数据库和集合级别的审计日志。
closeAllDatabases
closeAllDatabases 是一个数据库管理角色,具有关闭所有数据库连接的权限。包括当前正在使用的连接。
connPoolSync
connPoolSync 是一个数据库管理角色,具有管理连接池同步配置的权限。
flushRouterConfig
flushRouterConfig 是一个数据库管理角色,具有刷新路由器配置缓存的权限。
fsync
fsync 是一个数据库管理角色,具有强制将数据写入磁盘的权限。
invalidateUserCache
invalidateUserCache 是一个数据库管理角色。能够使 MongoDB 中的用户凭据缓存失效,以便重新验证用户身份。
killAnyCursor
killAnyCursor 是一个数据库管理角色。能够强制终止运行中的查询游标,以便释放资源或中止长时间运行的查询。
killAnySession
killAnySession 是一个数据库管理角色,具有杀死任意会话或连接的权限。以便释放资源或中止长时间运行的操作。
killop
killop 是一个数据库管理角色,具有杀死任意操作的权限。
logRotate
logRotate 是一个数据库管理角色,具有执行日志轮换的权限。
oidReset
重置objectId
resync
已经弃用,但是可以使用。
setParameter
setParameter 是一个内置的管理角色,具有在 MongoDB 实例上设置特定参数的权限。可以使用 setParameter 命令设置 MongoDB 实例上的各种配置参数。
shutdown
shutdown 是一个内置的管理角色,可以使用 shutdown 命令来停止正在运行的 MongoDB 实例。
touch
已经弃用,但是可以使用。
unlock
可以执行 db.fsyncUnlock() 方法。将此操作应用于 cluster 资源。
Backup and Restoration Roles
backup
backup提供备份数据所需的最低权限。允许用户执行 backup 命令,该命令可创建一个数据快照并将其输出到指定的文件或目录中。
restore
restore 角色允许用户执行 restore 命令,该命令可将备份文件中的数据还原到 MongoDB 数据库中。
All-Database Roles
readAnyDatabase
readAnyDatabase 角色是一种特殊的角色,它允许用户读取 MongoDB 实例上的所有数据库。具体来说,当向用户授予 readAnyDatabase 角色时,该用户可以使用 find 和 count 命令读取 MongoDB 实例上的所有文档。但是,该角色不能用于修改、插入或删除操作,因为它不具备写入权限。
readWriteAnyDatabase
readWriteAnyDatabase 角色是一种特殊的角色,它允许用户读取和写入 MongoDB 实例上的所有数据库。具体来说,当向用户授予 readWriteAnyDatabase 角色时,该用户可以执行对 MongoDB 实例上所有文档的读取、修改、插入和删除操作。但是,由于该角色具有对所有数据库的写入权限,因此需要非常小心地向用户授予这个角色,并确保只授权给可信用户。
userAdminAnyDatabase
userAdminAnyDatabase 角色是一种特殊的角色,它允许用户管理所有数据库中的用户和角色。具体来说,当向用户授予 userAdminAnyDatabase 角色时,该用户可以执行对 MongoDB 所有数据库用户和角色的创建、修改、删除操作。但是该角色不具有读取或写入文档的权限。
dbAdminAnyDatabase
dbAdminAnyDatabase 角色是一种特殊的角色,它允许用户管理所有数据库上的数据库实例。具体来说,当向用户授予 dbAdminAnyDatabase 角色时,该用户可以执行对 MongoDB 所有数据库的创建、修改、删除操作,包括对集合、索引和数据库设置的操作。但是该角色不具有读取或写入文档的权限。
Superuser Roles
root
readWriteAnyDatabase
readWriteAnyDatabase 角色是一种特殊的角色,它允许用户读取和写入 MongoDB 实例上的所有数据库。具体来说,当向用户授予 readWriteAnyDatabase 角色时,该用户可以执行对 MongoDB 实例上所有文档的读取、修改、插入和删除操作。但是,由于该角色具有对所有数据库的写入权限,因此需要非常小心地向用户授予这个角色,并确保只授权给可信用户。
dbAdminAnyDatabase
dbAdminAnyDatabase 角色是一种特殊的角色,它允许用户管理所有数据库上的数据库实例。具体来说,当向用户授予 dbAdminAnyDatabase 角色时,该用户可以执行对 MongoDB 所有数据库的创建、修改、删除操作,包括对集合、索引和数据库设置的操作。但是该角色不具有读取或写入文档的权限。
userAdminAnyDatabase
userAdminAnyDatabase 角色是一种特殊的角色,它允许用户管理所有数据库中的用户和角色。具体来说,当向用户授予 userAdminAnyDatabase 角色时,该用户可以执行对 MongoDB 所有数据库用户和角色的创建、修改、删除操作。但是该角色不具有读取或写入文档的权限。
clusterAdmin
提供最大的集群管理访问。此角色结合了 clusterManager 、 clusterMonitor 和 hostManager 角色授予的特权。此外,该角色还提供 dropDatabase 操作。
restore
restore 角色允许用户执行 restore 命令,该命令可将备份文件中的数据还原到 MongoDB 数据库中。
backup
backup提供备份数据所需的最低权限。允许用户执行 backup 命令,该命令可创建一个数据快照并将其输出到指定的文件或目录中。
Internal Role
__system
__system是这类内部角色的前缀。通常情况下,内部角色不会直接分配给用户。
__system角色很少需要手动进行操作,它们主要是为了满足系统内部需求而存在。例如,当使用复制集或分片集群时,内部角色可以被用于处理服务器内部之间的通信和数据同步等任务。
对于大多数用户来说,直接使用MongoDB提供的内建角色(如readWrite、dbAdmin等)来控制用户权限就足够了。除非你有特殊需求,否则不需要关注__system开头的内部角色。
0 条评论
下一页