Memberikan Peran kepada Pengguna
Setelah membuat peran dan memberikan hak istimewa pada peran tersebut, Anda dapat memberikan peran tersebut kepada pengguna agar pengguna dapat mengakses sumber daya dan melakukan tindakan yang ditentukan oleh peran tersebut. Anda dapat memberikan beberapa peran kepada pengguna atau memberikan peran kepada beberapa pengguna. Panduan ini memperkenalkan cara memberikan peran kepada pengguna.
Pengguna bawaan root di Milvus telah diberikan peran admin, yang memiliki semua hak istimewa. Anda tidak perlu memberikan peran lain padanya.
Memberikan peran kepada pengguna
Contoh berikut ini mendemonstrasikan cara memberikan peran role_a kepada pengguna 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);
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"
}'
Mendeskripsikan pengguna
Setelah Anda memberikan peran kepada pengguna, Anda dapat memeriksa apakah operasi pemberian berhasil melalui metode describe_user().
Contoh berikut ini menunjukkan cara memeriksa peran pengguna 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);
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"
}'
Di bawah ini adalah contoh keluaran.
{'user_name': 'user_1', 'roles': 'role_a'}
Mencabut peran
Anda juga dapat mencabut peran yang telah ditetapkan ke pengguna.
Contoh berikut ini menunjukkan cara mencabut peran role_a yang diberikan kepada pengguna 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());
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"
}'