Milvus
Zilliz
Home
  • Leitfaden für die Verwaltung
  • Home
  • Docs
  • Leitfaden für die Verwaltung

  • Sicherheit

  • RBAC aktivieren

  • Zuschuss-Rollen

Rollen an Benutzer vergeben

Nach der Erstellung einer Rolle und der Gewährung von Privilegien für die Rolle können Sie die Rolle an Benutzer vergeben, damit diese auf Ressourcen zugreifen und Aktionen durchführen können, die durch die Rolle definiert sind. Sie können einem Benutzer mehrere Rollen zuweisen oder eine Rolle an mehrere Benutzer vergeben. In diesem Handbuch wird beschrieben, wie Sie Benutzern Rollen zuweisen können.

Dem eingebauten Benutzer root in Milvus wurde bereits die Rolle admin zugewiesen, die über alle Berechtigungen verfügt. Sie brauchen ihm keine weiteren Rollen zuzuweisen.

Einem Benutzer eine Rolle zuweisen

Das folgende Beispiel zeigt, wie Sie dem Benutzer user_1 die Rolle role_a zuweisen.

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);
import (
    "context"
    "fmt"

    "github.com/milvus-io/milvus/client/v2/milvusclient"
)

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
    Address: "localhost:19530",
    APIKey:  "root:Milvus",
})
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
defer client.Close(ctx)

err = client.GrantRole(ctx, milvusclient.NewGrantRoleOption("user_1", "role_a"))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

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

await client.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"
}'

Beschreiben Sie den Benutzer

Sobald Sie einem Benutzer eine Rolle zugewiesen haben, können Sie mit der Methode describe_user() überprüfen, ob die Zuweisung erfolgreich war.

Das folgende Beispiel zeigt, wie Sie die Rolle(n) des Benutzers user_1 überprüfen können.

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);
user, err := client.DescribeUser(ctx, milvusclient.NewDescribeUserOption("user_1"))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
await client.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"
}'

Nachfolgend finden Sie eine Beispielausgabe.

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

Eine Rolle widerrufen

Sie können auch eine Rolle widerrufen, die einem Benutzer zugewiesen wurde.

Das folgende Beispiel zeigt, wie die dem Benutzer user_1 zugewiesene Rolle role_a widerrufen werden kann.

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());
err = client.RevokeRole(ctx, milvusclient.NewRevokeRoleOption("user_1", "role_a"))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
await client.revokeRole({
    username: 'user_1',
    roleName: 'role_a'
});
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"
}'

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?