Attribution de rôles aux utilisateurs
Après avoir créé un rôle et lui avoir accordé des privilèges, vous pouvez attribuer le rôle aux utilisateurs afin qu'ils puissent accéder aux ressources et effectuer les actions définies par le rôle. Vous pouvez attribuer plusieurs rôles à un utilisateur ou attribuer un rôle à plusieurs utilisateurs. Ce guide explique comment attribuer des rôles aux utilisateurs.
L'utilisateur intégré root
dans Milvus s'est déjà vu attribuer le rôle admin
, qui dispose de tous les privilèges. Il n'est pas nécessaire de lui attribuer d'autres rôles.
Attribution d'un rôle à un utilisateur
L'exemple suivant montre comment attribuer le rôle role_a
à l'utilisateur 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"
}'
Décrire l'utilisateur
Une fois que vous avez attribué un rôle à un utilisateur, vous pouvez vérifier si l'opération d'attribution a réussi via la méthode describe_user()
.
L'exemple suivant montre comment vérifier le(s) rôle(s) de l'utilisateur 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"
}'
Vous trouverez ci-dessous un exemple de résultat.
{'user_name': 'user_1', 'roles': 'role_a'}
Révoquer un rôle
Vous pouvez également révoquer un rôle attribué à un utilisateur.
L'exemple suivant montre comment révoquer le rôle role_a
attribué à l'utilisateur 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"
}'