منح الأدوار للمستخدمين
بعد إنشاء دور ومنح امتيازات للدور، يمكنك منح الدور للمستخدمين حتى يتمكن المستخدمون من الوصول إلى الموارد وتنفيذ الإجراءات التي تم تحديدها من قبل الدور. يمكنك منح أدوار متعددة لمستخدم أو منح دور لعدة مستخدمين. يقدم هذا الدليل كيفية منح الأدوار للمستخدمين.
تم بالفعل منح المستخدم المدمج root
في ميلفوس الدور 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"
}'