跳到主要内容

集群资源权限与权限组

权限指的是对 Zilliz Cloud 资源(如集群、Database 和 Collection)进行特定操作的权限。权限被分配给角色,然后将角色授权给用户,用户就可以在资源上根据权限执行的操作。例如,权限可以是允许将数据插入名为 collection_01 的集合的权限。

权限组是多个单一权限的组合。您可以创建一个包含常用权限的权限组,以简化角色授予过程。为了方便您使用,Zilliz Cloud 在 Collection、Database 和集群级别提供了共 9 个内置权限组。

下图展示了权限和权限组的授权过程间差异。

T21Pwj7Q6hlWaNbvt2SctI3rnYf

本文详细介绍了 Zilliz Cloud 中可用的内置权限组和权限。

权限组

内置权限组

您可以在创建角色时选择为角色分配内置权限组。Zilliz Cloud 在集群、Database、Collection 层级共提供 9 个不同的内置权限组。

📘说明

上述三个层级的内置权限组之间没有级联关系。设置实例层级的权限组并不会自动设置该实例下所有 Database 和 Collection 的权限,Database 和 Collection 层级的权限需要单独手动设置。

Collection 层级权限组

  • CollectionReadOnly(COLL_RO):包含读取 Collection 数据的权限

  • CollectionReadWrite(COLL_RW):包含读写 Collection 数据的权限

  • CollectionAdmin(COLL_ADMIN):包含 Collection 读写和管理等所有 Collection 层级操作的权限

下表详细罗列了 Collection 层级的三个内置权限组所包含的具体权限:

权限CollectionReadOnlyCollectionReadWriteCollectionAdmin
Query
Search
IndexDetail
GetFlushState
GetLoadState
GetLoadingProgress
HasPartition
ShowPartitions
ListAliases
DescribeCollection
DescribeAlias
GetStatistics
CreateIndex
DropIndex
CreatePartition
DropPartition
Load
Release
Insert
Delete
Upsert
Import
Flush
Compaction
LoadBalance
CreateAlias
DropAlias
AddCollectionField

Database 层级权限组

  • DatabaseReadOnly(DB_RO):包含读取 Database 数据的权限

  • DatabaseReadWrite(DB_RW):包含读写 Database 数据的权限

  • DatabaseAdmin(DB_Admin):包含 Database 读写和管理等所有 Database 层级操作的权限

下表详细罗列了 Database 层级的三个内置权限组所包含的具体权限:

权限DatabaseReadOnlyDatabaseReadWriteDatabaseAdmin
ShowCollections
DescribeDatabase
CreateCollection
DropCollection
AlterDatabase

集群层级权限组

  • ClusterReadOnly(Cluster_RO):包含读取实例数据的权限

  • ClusterReadWrite(Cluster_RW):包含读写实例数据的权限

  • ClusterAdmin(Cluster_Admin):包含实例读写和管理等所有实例层级操作的权限

下表详细罗列了集群层级的三个内置权限组所包含的具体权限:

权限ClusterReadOnlyClusterReadWriteClusterAdmin
ListDatabases
RenameCollection
CreateOwnership
UpdateUser
DropOwnership
SelectOwnership
ManageOwnership
SelectUser
BackupRBAC
RestoreRBAC
CreateResourceGroup
DropResourceGroup
UpdateResourceGroups
DescribeResourceGroup
ListResourceGroups
TransferNode
TransferReplica
CreateDatabase
DropDatabase
FlushAll
CreatePrivilegeGroup
DropPrivilegeGroup
ListPrivilegeGroups
OperatePrivilegeGroup

自定义权限组

内测版

如果内置权限组无法满足您的需求,您可以使用 SDK 创建自定义权限组,并将所需权限添加到这些权限组中。

📘说明

该特性为内测版特性。如需创建和管理自定义权限组,请提交工单,我们将为您启用此功能。

创建自定义权限组

以下示例展示了如何创建一个名为 privilege_group_1 的权限组。

python
from pymilvus import MilvusClient
client.create_privilege_group(group_name='privilege_group_1'

自定义权限组创建完成后,您可以向该权限组添加权限。

向自定义权限组添加权限

以下示例展示了如何将权限 PrivilegeBackupRBACPrivilegeRestoreRBAC 添加到刚创建的权限组 privilege_group_1 中。有关 Zilliz Cloud 中可用的所有权限的详细信息,请参考所有权限

python
from pymilvus import MilvusClient
client.add_privileges_to_group(group_name='privilege_group_1', privileges=['Query', 'Search'])

在将权限添加到权限组后,您可以将该权限组授予某个角色。更多详情请参考管理集群角色(SDK)

从自定义权限组中移除权限

以下示例展示了如何从权限组 privilege_group_1 中移除权限 PrivilegeRestoreRBAC

python
from pymilvus import MilvusClient
client.remove_privileges_from_group(group_name='privilege_group_1', privileges='Search')

查看权限组

以下示例展示了如何查看当前所有权限组。

python
from pymilvus import MilvusClient
client.list_privilege_groups()

以下为示例返回结果。

bash
PrivilegeGroupItem: <privilege_group:privilege_group_1>, <privileges:('Search', 'Query')>

删除自定义权限组

以下示例展示了如何删除权限组privilege_group_1

python
from pymilvus import MilvusClient
client.drop_privilege_group(group_name='privilege_group_1')

所有权限

以下为 Zilliz Cloud 上所有可以分配给角色的权限。

如需自行组合以下权限创建权限组,或将特定权限授予自定义角色,请联系我们

Database 权限

权限描述
ListDatabases查看当前实例下的所有 Database
DescribeDatabase查看 Database 详情
CreateDatabase创建 Database
DropDatabase删除 Database
AlterDatabase修改 Database 属性

Collection 权限

权限描述
GetFlushState查看 Collection Flush 状态
GetLoadState查看 Collection 加载状态
GetLoadingProgress查看 Collection 加载进度
ShowCollections查看具有 Collection 权限的所有 Collection
ListAliases查看 Collection 的所有 Alias
DescribeCollection查看 Collection 详情
DescribeAlias查看 Alias 详情
GetStatistics获取 Collection 统计信息(例如 Collection 中的 Entity 数量)
CreateCollection创建 Collection
DropCollection删除 Collection
Load加载 Collection
Release释放 Collection
Flush将 Collection 中 Entity 持久化到 Sealed Segment,执行 Flush 操作后,任何插入操作都会生成新的 Segment
Compaction手动触发 Compaction
RenameCollection重命名 Collection
CreateAlias创建 Collection Alias
DropAlias删除 Collection Alias
FlushAll对 Database 下所有 Collection 进行 Flush
AddCollectionField向 Collection 添加字段。

Partition 权限

权限描述
HasPartition查看 Partition 是否存在
ShowPartitions查看 Collection 下所有 Partition
CreatePartition创建 Partition
DropPartition删除 Partition

Index 权限

权限描述
IndexDetail查看索引详情
CreateIndex创建索引
DropIndex删除索引

资源管理权限

权限描述
LoadBalance负载均衡
CreateResourceGroup创建资源组
DropResourceGroup删除资源组
UpdateResourceGroups更新资源组
DescribeResourceGroup查看资源组详情
ListResourceGroups查看当前实例下的所有资源组
TransferNode转移 Node
TransferReplica转移 Replica
BackupRBAC备份当前实例中所有RBAC 操作
RestoreRBAC恢复当前实例中所有RBAC 操作的备份

Entity 权限

权限描述
Query查询
Search搜索
Insert插入 Entity
Delete删除 Entity
UpsertUpsert Entity
Import批量导入数据

RBAC 权限

权限描述
CreateOwnership创建用户或角色
UpdateUser更新用户密码
DropOwnership删除用户密码或角色
SelectOwnership列出绑定角色用户或授权实体
ManageOwnership管理用户与角色或授权操作
SelectUser列出用户所有绑定角色
CreatePrivilegeGroup创建权限组
DropPrivilegeGroup删除权限组
ListPrivilegeGroups列出权限组权限
OperatePrivilegeGroup权限组增加或删除权限
Ctrl I