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

クラスタロールの管理(SDK)

クラスターロールは、ユーザーがクラスター内で持つ権限を定義します。より具体的には、クラスターロールは、クラスター、データベース、およびコレクションレベルでクラスターユーザーの権限を制御します。

このガイドでは、ロールの作成方法、ロールに組み込み特権グループを付与する方法、ロールから特権グループを取り消す方法、そして最後にロールを削除する方法について説明します。組み込み特権グループの詳細については、「特権について」を参照してください。

📘ノート

この機能は専用クラスターでのみ利用可能です。

役割を作成する

次の例は、role_aという名前のロールを作成する方法を示しています。

ロール名は次のルールに従う必要があります。

  • 文字で始め、大文字または小文字、数字、アンダースコアのみを含める必要があります。
from pymilvus import MilvusClient

client.create_role(role_name="role_a")
import io.milvus.v2.service.rbac.request.CreateRoleReq;

役割リスト

複数のロールを作成した後、既存のすべてのロールを一覧表示できます。

from pymilvus import MilvusClient

client.list_roles()

以下は出力例です。role_aは作成されたばかりの新しいロールです。

['role_a']

ロールに組み込みの特権グループを付与する

📘ノート

現在、Zilliz Cloudは組み込み特権グループを持つカスタムロールの作成のみをサポートしています。組み込み特権グループの詳細については、「特権について」を参照してください。

ユーザー定義の権限と権限グループを持つカスタムロールを作成する必要がある場合は、お問い合わせください。

次の例は、role_a既定のデータベース内のすべてのコレクションへの読み取り専用アクセスとcollection_01への管理者アクセスを付与する方法を示しています。

from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

client.grant_privilege_v2(
role_name="role_a",
privilege="COLL_ADMIN"
collection_name='collection_01'
db_name='default',
)

client.grant_privilege_v2(
role_name="role_a",
privilege="DatabaseReadOnly"
collection_name='*'
db_name='default',
)

役割を説明してください

次の例では、役割に付与された権限を表示する方法を示しますrole_aを使用して、description_roleメソッド。

from pymilvus import MilvusClient

client.describe_role(role_name="role_a")

以下は出力例です。

{
"role": "role_a",
"privileges": [
"COLL_ADMIN"
]
}

ロールから組み込みの特権グループを取り消す

次の例では、既定のデータベース内のすべてのコレクションへの読み取り専用アクセスと、role_aからcollection_01への管理者アクセスを取り消す方法を示します

from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

client.revoke_privilege_v2(
role_name="role_a",
privilege="COLL_ADMIN"
collection_name='collection_01'
db_name='default',
)

client.revoke_privilege_v2(
role_name="role_a",
privilege="ClusterReadOnly"
collection_name='*'
db_name='*',
)

役割を削除する

次の例は、ロールrole_aを削除する方法を示しています。

📘ノート

組み込みのロールadminは削除できません。

from pymilvus import MilvusClient

client.drop_role(role_name="role_a")

ロールが削除されたら、既存のすべてのロールを一覧表示して、削除操作が成功したかどうかを確認できます。

from pymilvus import MilvusClient

client.list_roles()

以下は出力例です。リストにはrole_aがありません。ドロップ操作は成功しました。

['admin']