授予使用者角色
建立角色並授予角色權限後,您可以將角色授予使用者,這樣使用者就可以存取資源並執行角色所定義的動 作。您可以向一個使用者授予多個角色,或向多個使用者授予一個角色。本指南介紹如何授予用戶角色。
Milvus 中的內建使用者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"
}'