メインコンテンツまでスキップ
バージョン: User Guides (BYOC)

特権と特権グループ

特権とは、クラスター、データベース、コレクションなどの特定の Zilliz Cloud リソースに対する特定の操作の許可を指します。特権はロールに割り当てられ、そのロールがユーザーに付与されることで、ユーザーがリソースに対して実行できる操作が定義されます。特権の例としては、collection_01 という名前のコレクションにデータを挿入する許可などがあります。

特権グループは、個別の特権を組み合わせたものです。よく使用する特権の特権グループを作成することで、ロール付与プロセスを簡略化できます。利便性のため、Zilliz Cloud はコレクションレベル、データベースレベル、クラスターレベルで合計 9 つの組み込み特権グループを提供しています。

以下の図は、特権と特権グループの異なる付与プロセスを示しています。

SsW6w8kaNhz4iQbEMYmcbUzsnOc

このトピックでは、Zilliz Cloud で利用可能な組み込み特権グループと特権について詳しく説明します。

特権グループ

組み込み特権グループ

Zilliz Cloud は、コレクションレベル、データベースレベル、クラスターレベルで合計 9 つの組み込み特権グループを提供しており、ロールの作成時に直接付与できます。

📘Notes

3 つのレベルの組み込み特権グループにはカスケード関係はありません。クラスターレベルで特権グループを設定しても、そのインスタンス配下のすべてのデータベースとコレクションの権限が自動的に設定されるわけではありません。データベースレベルとコレクションレベルの特権は手動で設定する必要があります。

コレクションレベルの特権グループ

  • CollectionReadOnly (COLL_RO): コレクションデータの読み取り特権を含む

  • CollectionReadWrite (COLL_RW): コレクションデータの読み取りと書き込み特権を含む

  • CollectionAdmin (COLL_ADMIN): コレクションデータの読み取りと書き込み、およびコレクションの管理特権を含む

以下の表は、コレクションレベルの 3 つの組み込み特権グループに含まれる具体的な特権を示しています。

特権

CollectionReadOnly

CollectionReadWrite

CollectionAdmin

Query

✔️

✔️

✔️

Search

✔️

✔️

✔️

IndexDetail

✔️

✔️

✔️

GetFlushState

✔️

✔️

GetLoadState

✔️

✔️

✔️

GetLoadingProgress

✔️

✔️

✔️

HasPartition

✔️

✔️

✔️

Showパーティション

✔️

✔️

✔️

Listエイリアスes

✔️

✔️

✔️

DescribeCollection

✔️

✔️

✔️

Describeエイリアス

✔️

✔️

✔️

GetStatistics

✔️

✔️

✔️

CreateIndex

✔️

✔️

DropIndex

✔️

✔️

CreatePartition

✔️

✔️

DropPartition

✔️

✔️

Load

✔️

✔️

✔️

Release

✔️

✔️

Insert

✔️

✔️

Delete

✔️

✔️

Upsert

✔️

✔️

Import

✔️

✔️

Flush

✔️

✔️

Compaction

✔️

LoadBalance

✔️

✔️

Createエイリアス

✔️

✔️

Dropエイリアス

✔️

✔️

AddCollectionField

✔️

✔️

データベースレベルの特権グループ

  • データベースReadOnly (DB_RO): データベースデータの読み取り特権を含む

  • データベースReadWrite (DB_RW): データベースデータの読み取りと書き込み特権を含む

  • データベースAdmin (DB_Admin): データベースデータの読み取りと書き込み、およびデータベースの管理特権を含む

以下の表は、データベースレベルの 3 つの組み込み特権グループに含まれる具体的な特権を示しています。

特権

データベースReadOnly

データベースReadWrite

データベースAdmin

ShowCollections

✔️

✔️

✔️

Describeデータベース

✔️

✔️

✔️

CreateCollection

✔️

✔️

DropCollection

✔️

✔️

Alterデータベース

クラスターレベルの特権グループ

  • ClusterReadOnly (Cluster_RO): インスタンスデータの読み取り特権を含む

  • ClusterReadWrite (Cluster_RW): インスタンスデータの読み取りと書き込み特権を含む

  • ClusterAdmin (Cluster_Admin): インスタンスデータの読み取りと書き込み、およびインスタンスの管理特権を含む

以下の表は、クラスターレベルの 3 つの組み込み特権グループに含まれる具体的な特権を示しています。

特権

ClusterReadOnly

ClusterReadWrite

ClusterAdmin

Listデータベースs

✔️

✔️

✔️

RenameCollection

✔️

✔️

Createオーナーship

✔️

UpdateUser

✔️

Dropオーナーship

✔️

Selectオーナーship

✔️

Manageオーナーship

✔️

SelectUser

✔️

BackupRBAC

RestoreRBAC

CreateResourceGroup

DropResourceGroup

UpdateResourceGroups

DescribeResourceGroup

ListResourceGroups

TransferNode

TransferReplica

Createデータベース

✔️

✔️

Dropデータベース

✔️

✔️

FlushAll

CreatePrivilegeGroup

DropPrivilegeGroup

ListPrivilegeGroups

✔️

✔️

✔️

OperatePrivilegeGroup

カスタム特権グループ

組み込み特権がニーズを満たさない場合は、SDK を使用してカスタム特権グループを作成し、指定した特権を特権グループに追加できます。

📘Notes

カスタム特権グループの作成と管理については、サポートチケットの作成 を行っていただき、この機能を有効化してください。

カスタム特権グループの作成

以下の例は、privilege_group_1 という名前の特権グループを作成する方法を示しています。

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

カスタム特権グループが作成されたら、その特権グループに特権を追加できます。

カスタム特権グループへの特権の追加

以下の例では、先ほど作成した特権グループ privilege_group_1PrivilegeBackupRBACPrivilegeRestoreRBAC の特権を追加する方法を示します。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')

List 特権グループs

次の例は、既存のすべての特権グループを一覧表示する方法を示しています。

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 で利用可能なすべての特権です。

以下にリストされた特権で独自の特権グループを作成する必要がある場合、または特権を持つカスタムロールを作成する場合は、お問い合わせ ください。

データベース特権

特権

説明

Listデータベースs

現在のインスタンス内のすべてのデータベースを表示する

Describeデータベース

データベースの詳細を表示する

Createデータベース

データベースを作成する

Dropデータベース

データベースを削除する

Alterデータベース

データベースのプロパティを変更する

コレクション特権

特権

説明

GetFlushState

コレクションのフラッシュ操作のステータスを確認する

GetLoadState

コレクションのロード状態を確認する

GetLoadingProgress

コレクションのロード進捗を確認する

ShowCollections

コレクション特権を持つすべてのコレクションを表示する

Listエイリアスes

コレクションのすべてのエイリアスを表示する

DescribeCollection

コレクションの詳細を表示する

Describeエイリアス

エイリアスの詳細を表示する

GetStatistics

コレクションの統計情報を取得する(例:コレクション内のエンティティ数)

CreateCollection

コレクションを作成する

DropCollection

コレクションを削除する

Load

コレクションをロードする

Release

コレクションをリリースする

Flush

コレクション内のすべてのエンティティをシールドセグメントに永続化する。フラッシュ操作後に挿入されたエンティティは新しいセグメントに保存される。

Compaction

手動でコンパクションをトリガーする

RenameCollection

コレクションの名前を変更する

Createエイリアス

コレクションのエイリアスを作成する

Dropエイリアス

コレクションのエイリアスを削除する

FlushAll

データベース内のすべてのコレクションをフラッシュする

AddCollectionField

既存のコレクションにフィールドを追加する

パーティション特権

特権

説明

HasPartition

パーティションが存在するかどうかを確認する

Showパーティション

コレクション内のすべてのパーティションを表示する

CreatePartition

パーティションを作成する

DropPartition

パーティションを削除する

インデックス特権

特権

説明

IndexDetail

インデックスの詳細を表示する

CreateIndex

インデックスを作成する

DropIndex

インデックスを削除する

リソース管理特権

特権

説明

LoadBalance

ロードバランスを実現する

CreateResourceGroup

リソースグループを作成する

DropResourceGroup

リソースグループを削除する

UpdateResourceGroups

リソースグループを更新する

DescribeResourceGroup

リソースグループの詳細を表示する

ListResourceGroups

現在のインスタンスのすべてのリソースグループを表示する

TransferNode

リソースグループ間でノードを転送する

TransferReplica

リソースグループ間でレプリカを転送する

BackupRBAC

現在のインスタンスですべてのRBAC関連操作のバックアップを作成する

RestoreRBAC

現在のインスタンスですべてのRBAC関連操作のバックアップを復元する

エンティティ特権

特権

説明

Query

クエリを実行する

Search

検索を実行する

Insert

エンティティを挿入する

Delete

エンティティを削除する

Upsert

エンティティをアップサートする

Import

エンティティを一括挿入またはインポートする

RBAC特権

特権

説明

Createオーナーship

ユーザまたはロールを作成する

UpdateUser

ユーザのパスワードを更新する

Dropオーナーship

ユーザのパスワードまたはロールを削除する

Selectオーナーship

特定のロールが付与されたすべてのユーザを表示する

Manageオーナーship

ユーザまたはロールを管理する、またはユーザにロールを付与する

SelectUser

ユーザに付与されたすべてのロールを表示する

CreatePrivilegeGroup

特権グループを作成する

DropPrivilegeGroup

特権グループを削除する

ListPrivilegeGroups

現在のインスタンス内のすべての特権グループを表示する

OperatePrivilegeGroup

特権グループに特権を追加または特権グループから特権を削除する