🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
  • Home
  • Docs
  • Руководство по администрированию

  • Безопасность

  • Включить RBAC

  • Роли грантов

Предоставление ролей пользователям

После создания роли и предоставления ей привилегий вы можете предоставить роль пользователям, чтобы они могли получать доступ к ресурсам и выполнять действия, определенные ролью. Вы можете предоставить несколько ролей одному пользователю или предоставить одну роль нескольким пользователям. В этом руководстве описано, как назначать роли пользователям.

Встроенному пользователю root в Milvus уже присвоена роль admin, которая обладает всеми привилегиями. Вам не нужно назначать ему другие роли.

Предоставление роли пользователю

В следующем примере показано, как предоставить роль role_a пользователю user_1.

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

client.grant_role(user_name="user_1", role_name="role_a")

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.rbac.request.GrantRoleReq;

String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";


ConnectConfig connectConfig = ConnectConfig.builder()
    .uri(CLUSTER_ENDPOINT)
    .token(TOKEN)
    .build();
    
MilvusClientV2 client = new MilvusClientV2(connectConfig);

GrantRoleReq grantRoleReq = GrantRoleReq.builder()
        .roleName("role_a")
        .userName("user_1")
        .build();
client.grantRole(grantRoleReq);

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

milvusClient.grantRole({
   username: 'user_1',
   roleName: 'role_a'
 })

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/grant_role" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "userName": "user_1"
}'

Описать пользователя

После предоставления роли пользователю вы можете проверить, успешно ли прошла операция предоставления, с помощью метода describe_user().

Следующий пример демонстрирует, как проверить роль(и) пользователя user_1.

from pymilvus import MilvusClient

client.describe_user(user_name="user_1")

import io.milvus.v2.service.rbac.request.DescribeUserReq;
import io.milvus.v2.service.rbac.response.DescribeUserResp;

DescribeUserReq describeUserReq = DescribeUserReq.builder()
        .userName("user_1")
        .build();
DescribeUserResp describeUserResp = client.describeUser(describeUserReq);

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

milvusClient.describeUser({username: 'user_1'})

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/describe" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "userName": "user_1"
}'

Ниже приведен пример вывода.

{'user_name': 'user_1', 'roles': 'role_a'}

Отмена роли

Вы также можете отозвать роль, которая была назначена пользователю.

В следующем примере показано, как отозвать роль role_a, назначенную пользователю user_1.

from pymilvus import MilvusClient

client.revoke_role(
    user_name='user_1',
    role_name='role_a'
)

import io.milvus.v2.service.rbac.request.RevokeRoleReq;

client.revokeRole(RevokeRoleReq.builder()
        .userName("user_1")
        .roleName("role_a")
        .build());

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")



curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/revoke_role" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "userName": "user_1",
    "roleName": "role_a"
}'

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?