跳到主要内容
版本:Cloud 开发指南

权限与权限组

权限指的是对 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 层级的三个内置权限组所包含的具体权限:

权限

CollectionReadOnly

CollectionReadWrite

CollectionAdmin

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

✔️

✔️

Database 层级权限组

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

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

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

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

权限

DatabaseReadOnly

DatabaseReadWrite

DatabaseAdmin

ShowCollections

✔️

✔️

✔️

DescribeDatabase

✔️

✔️

✔️

CreateCollection

✔️

✔️

DropCollection

✔️

✔️

AlterDatabase

集群层级权限组

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

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

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

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

权限

ClusterReadOnly

ClusterReadWrite

ClusterAdmin

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 的权限组。

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

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

向自定义权限组添加权限

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

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

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

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

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

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

查看权限组

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

from pymilvus import MilvusClient
client.list_privilege_groups()

以下为示例返回结果。

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

删除自定义权限组

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

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

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

Upsert

Upsert Entity

Import

批量导入数据

RBAC 权限

权限

描述

CreateOwnership

创建用户或角色

UpdateUser

更新用户密码

DropOwnership

删除用户密码或角色

SelectOwnership

列出绑定角色用户或授权实体

ManageOwnership

管理用户与角色或授权操作

SelectUser

列出用户所有绑定角色

CreatePrivilegeGroup

创建权限组

DropPrivilegeGroup

删除权限组

ListPrivilegeGroups

列出权限组权限

OperatePrivilegeGroup

权限组增加或删除权限