Rollen an Benutzer vergeben
Nachdem Sie eine Rolle erstellt und der Rolle Rechte zugewiesen haben, 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);
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"
}'
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);
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"
}'
Nachfolgend finden Sie ein Beispiel für die Ausgabe.
{'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 Sie die dem Benutzer user_1
zugewiesene Rolle role_a
widerrufen können.
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"
}'