사용자에게 역할 부여하기
역할을 만들고 역할에 권한을 부여한 후에는 사용자에게 역할을 부여하여 사용자가 리소스에 액세스하고 역할에 정의된 작업을 수행할 수 있도록 할 수 있습니다. 한 사용자에게 여러 개의 역할을 부여하거나 여러 사용자에게 역할을 부여할 수 있습니다. 이 가이드에서는 사용자에게 역할을 부여하는 방법을 소개합니다.
Milvus의 기본 제공 사용자 root
에게는 이미 모든 권한이 있는 admin
역할이 부여되어 있습니다. 다른 역할을 할당할 필요가 없습니다.
사용자에게 역할 부여하기
다음 예는 user_1
사용자에게 role_a
역할을 부여하는 방법을 보여줍니다.
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"
}'