权限操作定义了数据库用户或自定义角色可以在 Stream Processing 工作区中的流处理器上执行的操作。仅将用户需要的权限操作分配给该用户或自定义角色。
所有权限操作均适用于整个 Stream Processing 工作区。您无法将其作用范围限定为 Stream Processing 工作区内的单个命名处理器。所有操作仅在 Atlas Stream Processing 实例上有效。
具有 atlasAdmin 或 readWriteAnyDatabase 角色的用户可以执行所有 Stream Processing 操作。具有 readAnyDatabase 角色的用户可以执行只读子集。有关详情,请参阅 内置角色总结。
如果用户缺少对某个操作的所需权限,命令将返回 MongoServerError[Unauthorized]: not authorized: missing privilege for action <privilege-action> on resource <resource>。
要创建具有特定 Atlas Stream Processing 权限操作的自定义角色,请参阅 添加自定义角色。
内置角色概要
下表显示包含 Atlas Stream Processing 权限操作的内置角色。
内置角色 | 包含的权限操作 |
|---|---|
所有 Atlas Stream Processing 权限操作 | |
| |
所有 Atlas Stream Processing 权限操作 |
Atlas Stream Processing 操作
createStreamProcessor授权
sp.createStreamProcessor()方法,该方法定义具有其管道和选项的新命名流处理器。分配此操作以允许用户在启动命名流处理器之前创建命名流处理器。
注意
Atlas Stream Processing 在创建时验证层级格式。Atlas Stream Processing 在启动处理器时实施最大层级大小,而不是在创建处理器时实施。
dropStreamProcessor授权
sp.processor.drop()方法,该方法将永久删除命名的流处理器。将此操作分配给用户,以允许其删除 Stream Processing 处理器。具有此操作的用户可以删除 Stream Processing 工作区中的任何处理器。没有任何机制可以将此操作限制为特定的命名处理器。
getStreamProcessor授权
getStreamProcessor命令,该命令用于检索命名流处理器的状态和配置。结果包括名称、状态、管道、错误消息和最后状态变更时间。分配此操作以允许用户检查特定流处理器的状态。
listStreamConnections授权
sp.listConnections()方法,该方法列出 Stream Processing 工作区连接注册表中的所有连接。根据连接类型,结果可能包括连接名称、类型、集群名称、项目 ID、区域、启动服务器和存储帐户字段。分配此操作以允许用户查看Stream Processing工作区中可用于流处理器的数据源和汇集器。
listStreamProcessors授权
sp.listStreamProcessors()方法,该方法列出 Stream Processing 工作区中的所有流处理器。结果可以包括名称、ID、最后修改时间、状态、层级、错误消息、工作进程计数、管道、死信队列(DLQ)和最后状态变更时间。您可以传递过滤器来缩小结果。分配此操作以允许用户在 Stream Processing 工作区中发现所有 Stream Processing 处理器。驱动程序和工具也需要此操作来填充处理器列表。该命令返回 Stream Processing 工作区中的所有处理器。没有机制将可见性限制为特定的命名处理器。
modifyStreamProcessor授权
sp.processor.modify()方法,该方法修改现有的流处理器。分配此操作允许用户更新流处理器的配置,而无需删除和重新创建。
processStreamProcessor授权
processStreamProcessor命令,该命令以一次性模式运行流处理管道,而不创建命名处理器。将此操作分配给用户,以允许用户以一次性模式运行管道。
注意
要运行
sp.process()mongosh 方法,还需要分配sampleStreamProcessor权限操作。sp.process()在内部使用示例机制,并且需要两种权限。
sampleStreamProcessor授权
sp.processor.sample()方法和根本的startSampleStreamProcessor和getMoreSampleStreamProcessor命令。使用startSampleStreamProcessor在命名的运行流处理器上开始采样会话。使用getMoreSampleStreamProcessor检索下一批结果。当batchSize为 0 或省略时,默认批处理大小为 5。将此操作分配给用户,以便允许用户预览运行中的流处理器的实时输出或对示例结果进行分页。采样会话附加到处理器的实时输出。处理器仅在运行时产生结果。
startStreamProcessor授权
sp.processor.start()方法,该方法启动或恢复命名的流处理器。分配此操作允许用户启动或恢复命名的流处理器。
stopStreamProcessor授权
sp.processor.stop()方法,该方法可以停止运行的命名流处理器。分配此操作,以允许用户暂停或停止运行的流处理器。
streamProcessorStats授权
sp.processor.stats()方法,该方法使用getStreamProcessorStats命令来检索 Stream Processor 的操作指标。当没有可用指标时,Atlas Stream Processing 会省略 stats 文档。传递verbose: true以获取更多详细信息。详细模式无需单独的权限。分配此操作以允许用户监控流处理器的吞吐量、错误率或操作指标。