From 315371d4a1b58167d874e9870489d51f4c3f9ee7 Mon Sep 17 00:00:00 2001 From: Milvus-doc-bot Date: Mon, 23 Dec 2024 12:30:55 +0000 Subject: [PATCH] Release new docs to master --- v2.5.x/assets/privilege_group_illustrated.png | Bin 0 -> 103300 bytes v2.5.x/assets/users_roles_privileges.png | Bin 0 -> 140892 bytes v2.5.x/site/en/adminGuide/drop_users_roles.md | 232 ++++++ v2.5.x/site/en/adminGuide/grant_privileges.md | 755 +++++++++++++++++ v2.5.x/site/en/adminGuide/grant_roles.md | 197 +++++ v2.5.x/site/en/adminGuide/privilege_group.md | 780 ++++++++++++++++++ v2.5.x/site/en/adminGuide/rbac.md | 199 +---- v2.5.x/site/en/adminGuide/users_and_roles.md | 307 +++++++ v2.5.x/site/en/menuStructure/en.json | 49 +- v2.5.x/site/en/reference/users_and_roles.md | 164 ---- 10 files changed, 2332 insertions(+), 351 deletions(-) create mode 100644 v2.5.x/assets/privilege_group_illustrated.png create mode 100644 v2.5.x/assets/users_roles_privileges.png create mode 100644 v2.5.x/site/en/adminGuide/drop_users_roles.md create mode 100644 v2.5.x/site/en/adminGuide/grant_privileges.md create mode 100644 v2.5.x/site/en/adminGuide/grant_roles.md create mode 100644 v2.5.x/site/en/adminGuide/privilege_group.md create mode 100644 v2.5.x/site/en/adminGuide/users_and_roles.md delete mode 100644 v2.5.x/site/en/reference/users_and_roles.md diff --git a/v2.5.x/assets/privilege_group_illustrated.png b/v2.5.x/assets/privilege_group_illustrated.png new file mode 100644 index 0000000000000000000000000000000000000000..03378f93ad1356ee7792c78c7975b3164b96ea08 GIT binary patch literal 103300 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�&nT~IdZq&%!U}Zmzr7#xj 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%0DM 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

442#r6Fd*AU!pFq`1cMUTgtG*) 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%0A9t~_HDomxdR=L=`T4HR1Z^2FldXux^S1cl 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ν8cm(auJhB23%Z@l;;pN>)&jgyYA~a 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 MEH-CtbUgdN0DHkNCjbBd literal 0 HcmV?d00001 diff --git a/v2.5.x/site/en/adminGuide/drop_users_roles.md b/v2.5.x/site/en/adminGuide/drop_users_roles.md new file mode 100644 index 000000000..b56181e79 --- /dev/null +++ b/v2.5.x/site/en/adminGuide/drop_users_roles.md @@ -0,0 +1,232 @@ +--- +id: drop_users_roles.md +related_key: enable RBAC +summary: To ensure data security, it is recommend that you drop users and roles that are no longer in use. This guide introduces how to drop users and roles.​ +title: Drop Users & Roles​ +--- + +# Drop Users & Roles​ + +To ensure data security, it is recommend that you drop users and roles that are no longer in use. This guide introduces how to drop users and roles.​ + +## Drop a user​ + +The following example demonstrates how to drop the user `user_1`. ​ + +

+ +The `root` user cannot be dropped.​ + +
+ +
+ +```python +from pymilvus import MilvusClient​ +​ +client = MilvusClient(​ + uri="http://localhost:19530",​ + token="root:Milvus"​ +)​ +​ +# create a user​ +client.drop_user(user_name="user_1")​ + +``` + +```java +import io.milvus.v2.client.ConnectConfig​ +import io.milvus.v2.client.MilvusClientV2​ +import io.milvus.v2.service.rbac.request.DropUserReq​ +​ +ConnectConfig connectConfig = ConnectConfig.builder()​ + .uri("http://localhost:19530")​ + .token("root:Milvus")​ + .build();​ + ​ +MilvusClientV2 client = new MilvusClientV2(connectConfig);​ +​ +DropUserReq dropUserReq = DropUserReq.builder()​ + .userName("user_1")​ + .build();​ +client.dropUser(dropUserReq);​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +const address = "http://localhost:19530";​ +const token = "root:Milvus";​ +const client = new MilvusClient({address, token});​ +​ +milvusClient.deleteUser({​ + username: 'user_1'​ +})​ + +``` + +```shell +export CLUSTER_ENDPOINT="http://localhost:19530"​ +export TOKEN="root:Milvus"​ +​ +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/drop" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "userName": "user_1"​ +}'​ + +``` + +Once the user is dropped, you can list all existing users to check if the drop operation is successful. ​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.list_users()​ + +``` + +```java +import io.milvus.v2.service.rbac.request.listUsersReq​ +​ +List resp = client.listUsers();​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +milvusClient.listUsers()​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/list" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{}'​ + +``` + +Below is an example output. There is no `user_1` in the list. The drop operation is successful.​ + +``` +['root']​ + +``` + +## Drop a role​ + +The following example demonstrates how to drop the role `role_a`.​ + +
+ +The built-in role `admin` cannot be dropped.​ + +
+ + + +```python +from pymilvus import MilvusClient​ +​ +client.drop_role(role_name="role_a")​ + +``` + +```java +import io.milvus.v2.service.rbac.request.DropRoleReq​ +​ +DropRoleReq dropRoleReq = DropRoleReq.builder()​ + .roleName("role_a")​ + .build();​ +client.dropRole(dropRoleReq);​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +milvusClient.dropRole({​ + roleName: 'role_a',​ + })​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/drop" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "roleName": "role_a"​ +}'​ + +``` + +Once the role is dropped, you can list all existing roles to check if the drop operation is successful. ​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.list_roles()​ + +``` + +```java +List resp = client.listRoles();​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +milvusClient.listRoles(​ + includeUserInfo: True​ +)​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/list" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{}'​ + +``` + +Below is an example output. There is no `role_a` in the list. The drop operation is successful.​ + +``` +['admin']​ + +``` \ No newline at end of file diff --git a/v2.5.x/site/en/adminGuide/grant_privileges.md b/v2.5.x/site/en/adminGuide/grant_privileges.md new file mode 100644 index 000000000..f5ea0d796 --- /dev/null +++ b/v2.5.x/site/en/adminGuide/grant_privileges.md @@ -0,0 +1,755 @@ +--- +id: grant_privileges.md +related_key: enable RBAC +summary: Once a role is created, you can grant privileges to the role. This guide introduces how to grant privileges or privilege groups to a role.​ +title: Grant Privilege or Privilege Group to Roles​ +--- + +# Grant Privilege or Privilege Group to Roles​ + +Once a role is created, you can grant privileges to the role. This guide introduces how to grant privileges or privilege groups to a role.​ + +## Grant a privilege or a privilege group to a role​ + +Milvus 2.5 introduces a new version of API which streamlines the grant operation. You no longer need to look up the object type when granting a privilege to a role. The following are the parameters and corresponding explanations.​ + +- **role_name:** The name of the target role to which privilege(s) or privilege group(s) need to be granted.​ + +- **Resource**: The target resource of a privilege, which can be a specific instance, database or collection. The following table explains how to specify the resource in the `client.grantV2()` method.​ + +

Level

+ +

Resource

+ +

Grant Method

+ +

Notes

+ +

Collection

+ +

+ +

A specific collection​

+ +

+ +

client.grant_privilege_v2(role_name="roleA", privilege="CollectionAdmin", collection_name="col1", db_name="db1")​

+ +

Input the name of your target collection and the name of the database to which the target collection belongs.​

+ +

+ +

All collections under a specific database​

+ +

client.grant_privilege_v2(role_name="roleA", privilege="CollectionAdmin", collection_name="*", db_name="db1")​

+ +

Input the name of your target database and a wildcard `*` as the collection name.​

+ +

**Database**

+ +

A specific database​

+ +

client.grant_privilege_v2(role_name="roleA", privilege="DatabaseAdmin", collection_name="*", db_name="db1")​

+ +

Input the name of your target database and a wildcard `*` as the collection name.​

+ +

+ +

All databases under the current instance​

+ +

client.grant_privilege_v2(role_name="roleA", privilege="DatabaseAdmin", collection_name="*", db_name="*")​

+ +

Input `*` as the database name and `*` as the collection name.​

+ +

**Instance**

+ +

The current instance​

+ +

client.grant_privilege_v2(role_name="roleA", privilege="ClusterAdmin", collection_name="*", db_name="*")​

+ +

Input `*` as the database name and `*` as the collection name.​

+ +
+ +- **Privilege**: The specific privilege or [privilege group](https://zilliverse.feishu.cn/wiki/GpoUwWH7kiAF3bkKqokcTAS4n5d) that you need to grant to a role. Currently, Milvus provides 56 types of privileges that you can grant. The table below lists the privileges in Milvus.​ + +
+ + The type column in the table below are user to facilitate your quick lookup for privileges and is used for classification purposes only. When granting privileges, you do not need to understand the types. You just need to input the corresponding privileges.​ + +
+ +

**Type **

+ +

**Privilege**

+ +

**Description**

+ +

**Relevant API description on the client side**

+ +

Database Privileges​

+ +

ListDatabases​

+ +

View all databases in the current instance​

+ +

[ListDatabases](https://milvus.io/docs/manage_databases.md)

+ +

DescribeDatabase​

+ +

View the details of a database​

+ +

[DescribeDatabase](https://milvus.io/docs/manage_databases.md)

+ +

CreateDatabase​

+ +

Create a database​

+ +

[CreateDatabase](https://milvus.io/docs/manage_databases.md)

+ +

DropDatabase​

+ +

Drop a database​

+ +

[DropDatabase](https://milvus.io/docs/manage_databases.md)

+ +

AlterDatabase​

+ +

Modify the properties of a database​

+ +

[AlterDatabase](https://milvus.io/docs/manage_databases.md)

+ +

Collection Privileges​

+ +

+ +

GetFlushState​

+ +

Check the status of the collection flush operation​

+ +

[GetFlushState](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/Collection/flush.md)

+ +

GetLoadState​

+ +

Check the load status of a collection​

+ +

[GetLoadState](https://milvus.io/api-reference/restful/v2.5.x/v2/Collection%20(v2)/Get%20Load%20State.md)

+ +

GetLoadingProgress​

+ +

Check the loading progress of a collection​

+ +

[GetLoadingProgress](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/utility/loading_progress.md)

+ +

ShowCollections​

+ +

View all collections with collection privileges​

+ +

[ShowCollections](https://milvus.io/docs/view-collections.md)

+ +

ListAliases​

+ +

View all aliases of a collection​

+ +

[ListAliases](https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Collections/list_aliases.md)

+ +

DescribeCollection​

+ +

View the details of a collection​

+ +

[DescribeCollection](https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Collections/describe_collection.md)

+ +

DescribeAlias​

+ +

View the details of an alias​

+ +

[DescribeAlias](https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Collections/describe_alias.md)

+ +

GetStatistics​

+ +

Obtain the statistics of a collection (eg. The number of entities in a collection)​

+ +

[GetCollectionStatistics](https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Collections/get_collection_stats.md)

+ +

CreateCollection​

+ +

Create a collection​

+ +

[CreateCollection](https://milvus.io/docs/create-collection.md)

+ +

DropCollection​

+ +

Drop a collection​

+ +

[DropCollection](https://milvus.io/docs/drop-collection.md)

+ +

Load​

+ +

Load a collection​

+ +

[LoadCollection](https://milvus.io/docs/load-and-release.md)/[GetLoadingProgress](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/utility/loading_progress.md)/[GetLoadState](https://milvus.io/api-reference/restful/v2.5.x/v2/Collection%20(v2)/Get%20Load%20State.md)

+ +

Release​

+ +

Release a collection​

+ +

[ReleaseCollection](https://milvus.io/docs/load-and-release.md)

+ +

Flush​

+ +

+ +

Persist all entities in a collection to a sealed segment. Any entity inserted after the flush operation will be stored in a new segment.​

+ +

[Flush](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/Collection/flush.md)/[GetFlushState](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/Collection/flush.md)

+ +

Compaction​

+ +

Manually trigger compaction​

+ +

[Compact](https://milvus.io/docs/v2.0.x/compact_data.md)

+ +

RenameCollection​

+ +

Rename a collection​

+ +

[RenameCollection](https://milvus.io/docs/modify-collection.md)

+ +

CreateAlias​

+ +

Create an alias for a collection​

+ +

[CreateAlias](https://milvus.io/docs/manage-aliases.md)

+ +

DropAlias​

+ +

Drop the alias of a collection​

+ +

[DropAlias](https://milvus.io/docs/manage-aliases.md)

+ +

FlushAll​

+ +

Flush all collections in a database​

+ +

[FlushAll](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/utility/flush_all.md)

+ +

Partition Privileges​

+ +

HasPartition​

+ +

Check whether a partition exists​

+ +

[HasPartition](https://milvus.io/docs/manage-partitions.md)

+ +

ShowPartitions​

+ +

View all partitions in a collection​

+ +

[ShowPartitions](https://milvus.io/docs/manage-partitions.md)

+ +

CreatePartition​

+ +

Create a partition​

+ +

[CreatePartition](https://milvus.io/docs/manage-partitions.md)

+ +

DropPartition​

+ +

Drop a partition​

+ +

[DropPartition](https://milvus.io/docs/manage-partitions.md)

+ +

Index Privileges​

+ +

IndexDetail​

+ +

View the details of an index​

+ +

+ +

[DescribeIndex/GetIndexState/GetIndexBuildProgress](https://milvus.io/docs/index-vector-fields.md?tab=floating)

+ +

CreateIndex​

+ +

Create an index​

+ +

[CreateIndex](https://milvus.io/docs/index-vector-fields.md?tab=floating)

+ +

DropIndex​

+ +

Drop an index​

+ +

[DropIndex](https://milvus.io/docs/index-vector-fields.md?tab=floating)

+ +

Resource Management Privileges​

+ +

+ +

LoadBalance​

+ +

Achieve load balance​

+ +

[LoadBalance](https://milvus.io/docs/resource_group.md)

+ +

CreateResourceGroup​

+ +

Create a resource group​

+ +

[CreateResourceGroup](https://milvus.io/api-reference/pymilvus/v2.5.x/ORM/utility/create_resource_group.md)

+ +

DropResourceGroup​

+ +

Drop a resource group​

+ +

[DropResourceGroup](https://milvus.io/docs/resource_group.md)

+ +

UpdateResourceGroups​

+ +

Update a resource group​

+ +

[UpdateResourceGroups](https://milvus.io/docs/resource_group.md)

+ +

DescribeResourceGroup​

+ +

View the details of a resource group​

+ +

[DescribeResourceGroup](https://milvus.io/docs/resource_group.md)

+ +

ListResourceGroups​

+ +

View all resource groups of the current instance​

+ +

[ListResourceGroups](https://milvus.io/docs/resource_group.md)

+ +

TransferNode​

+ +

Transfer nodes between resource groups​

+ +

[TransferNode](https://milvus.io/docs/resource_group.md)

+ +

TransferReplica​

+ +

Transfer replicas between resource groups​

+ +

[TransferReplica](https://milvus.io/docs/resource_group.md)

+ +

BackupRBAC​

+ +

Create a backup for all RBAC related operations in the current instance​

+ +

BackupRBAC​

+ +

RestoreRBAC​

+ +

Restore a backup of all RBAC related operations in the current instance​

+ +

RestoreRBAC​

+ +

Entity Privileges​

+ +

+ +

Query​

+ +

Conduct a query​

+ +

[Query](https://milvus.io/docs/get-and-scalar-query.md)

+ +

Search​

+ +

Conduct a search​

+ +

[Search](https://milvus.io/docs/single-vector-search.md)

+ +

Insert​

+ +

Insert entities​

+ +

[Insert](https://milvus.io/docs/insert-update-delete.md)

+ +

Delete​

+ +

Delete entities​

+ +

[Delete](https://milvus.io/docs/delete-entities.md)

+ +

Upsert​

+ +

Upsert entities​

+ +

[Upsert](https://milvus.io/docs/upsert-entities.md)

+ +

Import​

+ +

Bulk insert or import entities​

+ +

[BulkInsert/Import](https://milvus.io/docs/import-data.md)

+ +

RBAC Privileges​

+ +

CreateOwnership​

+ +

Create a user or a role​

+ +

[CreateUser/CreateRole](https://zilliverse.feishu.cn/wiki/CnzkwQBW3i7bE3kVtLzcqQLtn9d)

+ +

UpdateUser​

+ +

Update the password of a user​

+ +

[UpdateCredential](https://zilliverse.feishu.cn/wiki/CnzkwQBW3i7bE3kVtLzcqQLtn9d)

+ +

DropOwnership​

+ +

Drop a user password or a role​

+ +

[DeleteCredential/DropRole](https://zilliverse.feishu.cn/wiki/OqZnwJHrJilLPukfvp5cSgnmnTh)

+ +

SelectOwnership​

+ +

View all users that are granted a specific role ​

+ +

[SelectRole/SelectGrant](https://zilliverse.feishu.cn/wiki/ZsNZwn1MkiOtH9kFU35cyRgVnue)

+ +

ManageOwnership​

+ +

Manage a user or a role or grant a role to a user​

+ +

[OperateUserRole/OperatePrivilege/OperatePrivilegeV2](https://zilliverse.feishu.cn/wiki/ZsNZwn1MkiOtH9kFU35cyRgVnue)

+ +

SelectUser​

+ +

View all roles granted to a user​

+ +

[SelectUser](https://zilliverse.feishu.cn/wiki/ZsNZwn1MkiOtH9kFU35cyRgVnue)

+ +

CreatePrivilegeGroup​

+ +

Create a privilege group​

+ +

[CreatePrivilegeGroup](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

+ +

DropPrivilegeGroup​

+ +

Drop a privilege group​

+ +

[DropPrivilegeGroup](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

+ +

ListPrivilegeGroups​

+ +

View all privilege groups in the current instance​

+ +

[ListPrivilegeGroups](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

+ +

OperatePrivilegeGroup​

+ +

Add privileges to or remove privileges from a privilege group​

+ +

[OperatePrivilegeGroup](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

+ +
+ +The following example demonstrates how to grant the privilege `PrivilegeSearch` on `collection_01` under the default database as well as a privilege group named `privilege_group_1` to the role `role_a`. + +
+ Python + Java + Go + Node.js + cURL +
+ +```python +from pymilvus import MilvusClient + +client = MilvusClient( + uri="http://localhost:19530", + token="root:Milvus" +) + +client.grant_privilege_v2( + role_name="role_a", + privilege="Search" + collection_name='collection_01' + db_name='default', +) + +client.grant_privilege_v2( + role_name="role_a", + privilege="privilege_group_1" + collection_name='collection_01' + db_name='default', +) + +client.grant_privilege_v2( + role_name="role_a", + privilege="ClusterReadOnly" + collection_name='*' + db_name='*', +) +``` + +```java +import io.milvus.v2.service.rbac.request.GrantPrivilegeReqV2 + +client.grantPrivilegeV2(GrantPrivilegeReqV2.builder() + .roleName("role_a") + .privilege("Search") + .collectionName("collection_01") + .dbName("default") + .build()); + +client.grantPrivilegeV2(GrantPrivilegeReqV2.builder() + .roleName("role_a") + .privilege("privilege_group_1") + .collectionName("collection_01") + .dbName("default") + .build()); + +client.grantPrivilegeV2(GrantPrivilegeReqV2.builder() + .roleName("role_a") + .privilege("ClusterReadOnly") + .collectionName("*") + .dbName("*") + .build()); +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client" + +client.GrantV2(context.Background(), "role_a", "collection_01", "Search", entity.WithOperatePrivilegeDatabase("default")) + +client.GrantV2(context.Background(), "role_a", "collection_01", "privilege_group_1", entity.WithOperatePrivilegeDatabase("default")) + +client.GrantV2(context.Background(), "role_a", "*", "ClusterReadOnly", entity.WithOperatePrivilegeDatabase("*")) +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node") + +const address = "http://localhost:19530"; +const token = "root:Milvus"; +const client = new MilvusClient({address, token}); + +await milvusClient.grantPrivilege({ + roleName: 'role_a', + object: 'Collection', + objectName: 'collection_01', + privilegeName: 'Search' + }); +``` + +```shell +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "Search", + "collectionName": "collection_01", + "dbName":"default" +}' + +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "privilege_group_1", + "collectionName": "collection_01", + "dbName":"default" +}' + +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "ClusterReadOnly", + "collectionName": "*", + "dbName":"*" +}' +``` + +## Describe a role + +The following example demonstrates how to view the privileges granted to the role role_a using the describe_role method. + +
+ Python + Java + Go + Node.js + cURL +
+ +```python +from pymilvus import MilvusClient + +client.describe_role(role_name="role_a") +``` + +```java +import io.milvus.v2.service.rbac.response.DescribeRoleResp; +import io.milvus.v2.service.rbac.request.DescribeRoleReq + +DescribeRoleReq describeRoleReq = DescribeRoleReq.builder() + .roleName("role_a") + .build(); +DescribeRoleResp resp = client.describeRole(describeRoleReq); +List infos = resp.getGrantInfos(); +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client" + +client.ListRoles(context.Background()) +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node") + +await milvusClient.describeRole({roleName: 'role_a'}); +``` + +```shell +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/describe" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a" +}' +``` + +Below is an example output. + +```json +{ + "role": "role_a", + "privileges": [ + { + "collection_name": "collection_01", + "db_name": "default", + "role_name": "role_a", + "privilege": "Search", + "grantor_name": "root" + }, + "privilege_group_1" + ] +} +``` + +## Revoke a privilege or a privilege group from a role + +The following example demonstrates how to revoke the privilege `PrivilegeSearch` on `collection_01` under the default database as well as the privilege group `privilege_group_1` that have been granted to the role `role_a`. + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient + +client = MilvusClient( + uri="http://localhost:19530", + token="root:Milvus" +) + +client.revoke_privilege_v2( + role_name="role_a", + privilege="Search" + collection_name='collection_01' + db_name='default', +) + +client.revoke_privilege_v2( + role_name="role_a", + privilege="privilege_group_1" + collection_name='collection_01' + db_name='default', +) + +client.revoke_privilege_v2( + role_name="role_a", + privilege="ClusterReadOnly" + collection_name='*' + db_name='*', +) +``` + +```java +import io.milvus.v2.service.rbac.request.RevokePrivilegeReqV2 + +client.revokePrivilegeV2(RevokePrivilegeReqV2.builder() + .roleName("role_a") + .privilege("Search") + .collectionName("collection_01") + .dbName("default") + .build()); + +client.revokePrivilegeV2(RevokePrivilegeReqV2.builder() + .roleName("role_a") + .privilege("privilege_group_1") + .collectionName("collection_01") + .dbName("default") + .build()); + +client.revokePrivilegeV2(RevokePrivilegeReqV2.builder() + .roleName("role_a") + .privilege("ClusterReadOnly") + .collectionName("*") + .dbName("*") + .build()); +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client" + +client.RevokeV2(context.Background(), "role_a", "collection_01", "Search", entity.WithOperatePrivilegeDatabase("default")) + +client.RevokeV2(context.Background(), "role_a", "collection_01", "privielge_group_1", entity.WithOperatePrivilegeDatabase("default")) + +client.RevokeV2(context.Background(), "role_a", "*", "ClusterReadOnly", entity.WithOperatePrivilegeDatabase("*")) +``` + +```shell +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "Search", + "collectionName": "collection_01", + "dbName":"default" +}' + +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "Search", + "collectionName": "collection_01", + "dbName":"default" +}' + +curl --request POST \ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \ +--header "Authorization: Bearer ${TOKEN}" \ +--header "Content-Type: application/json" \ +-d '{ + "roleName": "role_a", + "privilege": "ClusterReadOnly", + "collectionName": "*", + "dbName":"*" +}' +``` diff --git a/v2.5.x/site/en/adminGuide/grant_roles.md b/v2.5.x/site/en/adminGuide/grant_roles.md new file mode 100644 index 000000000..0a1fe9dee --- /dev/null +++ b/v2.5.x/site/en/adminGuide/grant_roles.md @@ -0,0 +1,197 @@ +--- +id: grant_roles.md +related_key: enable RBAC +summary: After creating a role and granting privileges to the role, you can grant the role to users so that the users can access resources and perform actions that are defined by the role. You can grant multiple roles to a user or grant a role to multiple users. This guide introduces how to grant roles to users.​ +title: Grant Roles to Users​ +--- + +# Grant Roles to Users​ + +After creating a role and granting privileges to the role, you can grant the role to users so that the users can access resources and perform actions that are defined by the role. You can grant multiple roles to a user or grant a role to multiple users. This guide introduces how to grant roles to users.​ + +The built-in user `root` in Milvus has already been granted the `admin` role, which has all privileges. You do not need to assign any other roles to it.​ + +## Grant a role to a user​ + +The following example demonstrates how to grant the role `role_a` to the user `user_1`.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client = MilvusClient(​ + uri="http://localhost:19530",​ + token="root:Milvus"​ +)​ +​ +client.grant_role(user_name="user_1", role_name="role_a")​ + +``` + +```java +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);​ + +``` + +```javascript +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'​ + })​ + +``` + +```shell +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​ + +Once you grant a role to a user, you can check if the grant operation is successful via the `describe_user()` method.​ + +The following example demonstrates how to check the role(s) of the user `user_1`.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.describe_user(user_name="user_1")​ + +``` + +```java +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);​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +milvusClient.describeUser({username: 'user_1'})​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/describe" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "userName": "user_1"​ +}'​ + +``` + +Below is an example output.​ + +``` +{'user_name': 'user_1', 'roles': 'role_a'}​ + +``` + +## Revoke a role​ + +You can also revoke a role that has been assigned to a user.​ + +The following example demonstrates how to revoke the role `role_a` assigned to the user `user_1`.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.revoke_role(​ + user_name='user_1',​ + role_name='role_a'​ +)​ + +``` + +```java +import io.milvus.v2.service.rbac.request.RevokeRoleReq;​ +​ +client.revokeRole(RevokeRoleReq.builder()​ + .userName("user_1")​ + .roleName("role_a")​ + .build());​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +​ + +``` + +```shell +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"​ +}'​ + +``` + diff --git a/v2.5.x/site/en/adminGuide/privilege_group.md b/v2.5.x/site/en/adminGuide/privilege_group.md new file mode 100644 index 000000000..1c3c9f825 --- /dev/null +++ b/v2.5.x/site/en/adminGuide/privilege_group.md @@ -0,0 +1,780 @@ +--- +id: privilege_group.md +related_key: enable RBAC +summary: To streamline the process of granting privileges, it is recommended that you combine multiple privileges into a privilege group.​ +title: Create Privilege Group +--- + +# Create Privilege Group​ + +To streamline the process of granting privileges, it is recommended that you combine multiple privileges into a privilege group.​ + +## Privilege group vs. privileges​ + +A privilege group consists of multiple privileges.​ + +![Privilege group illustrated](../../../assets/privilege_group_illustrated.png) + +As shown in the figure above, suppose you need to grant three different privileges to a role.​ + +- If you do not use a privilege group, you need to grant the privileges three times.​ + +- If you use a privilege group, you only need to create a privilege group and add the three privileges to this privilege group and grant the privilege group to Role A.​ + +By using a privilege group, you can grant multiple privileges in bulk to a role.​ + +## Built-in privilege groups​ + +For ease-of-use, Milvus provides a total of 9 built-in privileges on the collection, database, and instance level: COLL_RO, COLL_RW, COLL_ADMIN, DB_RO, DB_RW, DB_Admin, Cluster_RO, Cluster_RW and Cluster_Admin.​ + +
+ +The three levels of built-in privilege groups do not have a cascading relationship. Setting a privilege group at the instance level does not automatically set permissions for all databases and collections under that instance. Privileges at the database and collection levels need to be set manually.​ + +
+ +The following tables explains the privileges includes in each of the built-in privilege group.​ + +### Collection level​ + +- **COLL_RO**: includes privileges to read collection data​ + +- **COLL_RW**: includes privileges to read and write collection data​ + +- **COLL_ADMIN**: includes privileges to read and write collection data and manage collections.​ + +The table below lists the specific privileges included in the three built-in privilege groups at the collection level:​ + +

**Privilege**

+ +

**CollectionReadOnly**

+ +

**CollectionReadWrite**

+ +

**CollectionAdmin**

+ +

Query​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

Search​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

IndexDetail​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

GetFlushState​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

GetLoadState​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

GetLoadingProgress​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

HasPartition​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

ShowPartitions​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

ListAliases​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

DescribeCollection​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

DescribeAlias​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

GetStatistics​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

CreateIndex​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

DropIndex​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

CreatePartition​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

DropPartition​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Load​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Release​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Insert​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Delete​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Upsert​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Import​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Flush​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

Compaction​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

LoadBalance​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

CreateAlias​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropAlias​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +
+ +### Database level​ + +- **DB_RO**: includes privileges to read database data​ + +- **DB_RW**: includes privileges to read and write database data​ + +- **DB_Admin**: includes privileges to read and write database data and manage databases.​ + +The table below lists the specific privileges included in the three built-in privilege groups at the database level:​ + +

**Privilege**

+ +

**DatabaseReadOnly**

+ +

**DatabaseReadWrite**

+ +

**DatabaseAdmin**

+ +

ShowCollections​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

DescribeDatabase​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

CreateCollection​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropCollection​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

AlterDatabase​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +
+ +### Cluster level​ + +- **Cluster_RO**: includes privileges to read instnace data​ + +- **Cluster_RW**: includes privileges to read and write instance data​ + +- **Cluster_Admin**: includes privileges to read and write instance data and manage instances.​ + +The table below lists the specific privileges included in the three built-in privilege groups at the instance level:​ + +

**Privilege**

+ +

**ClusterReadOnly**

+ +

**ClusterReadWrite**

+ +

**ClusterAdmin**

+ +

ListDatabases​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

RenameCollection​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

CreateOwnership​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

UpdateUser​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropOwnership​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

SelectOwnership​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

ManageOwnership​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

SelectUser​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

BackupRBAC​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

RestoreRBAC​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

CreateResourceGroup​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropResourceGroup​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

UpdateResourceGroups​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

DescribeResourceGroup​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

ListResourceGroups​

+ +

✔️​

+ +

✔️​

+ +

✔️​

+ +

TransferNode​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

TransferReplica​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

CreateDatabase​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropDatabase​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

FlushAll​

+ +

❌​

+ +

✔️​

+ +

✔️​

+ +

CreatePrivilegeGroup​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

DropPrivilegeGroup​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

ListPrivilegeGroups​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +

OperatePrivilegeGroup​

+ +

❌​

+ +

❌​

+ +

✔️​

+ +
+ +## Procedures​ + +You can create a privilege group and then add privileges to the privilege group. ​ + +### Create a privilege group​ + +The following example demonstrates how to create a privilege group named `privilege_group_1`.​ + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient​ +client.create_privileg_group(group_name='privilege_group_1')​ + +``` + +```java +import io.milvus.v2.service.rbac.request.CreatePrivilegeGroupReq;​ +​ +client.createPrivilegeGroup(CreatePrivilegeGroupReq.builder()​ + .groupName("privilege_group_1")​ + .build());​ + +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client"​ +​ +client.CreatePrivilegeGroup(context.Background(), "privilege_group_1")​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/create" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "privilegeGroupName":"privilege_group_1"​ +}'​ + +``` + +### Add privileges to a privilege group​ + +The following example demonstrates how to add privileges `PrivilegeBackupRBAC` and `PrivilegeRestoreRBAC` to the privilege group `privilege_group_1` that is just created.​ + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient​ +client.add_privileges_to_group(group_name='privilege_group_1', privileges=['Query', 'Search'])​ + +``` + +```java +import io.milvus.v2.service.rbac.request.AddPrivilegesToGroupReq;​ +​ +client.addPrivilegesToGroup(AddPrivilegesToGroupReq.builder()​ + .groupName("privilege_group_1")​ + .privileges(Arrays.asList("Query", "Search"))​ + .build());​ + +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client"​ +​ +client.AddPrivilegesToGroup(context.Background(), "privilege_group_1", []string{"Query", "Search"})​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/add_privileges_to_group" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "privilegeGroupName":"privilege_group_1",​ + "privileges":["Query", "Search"]​ +}'​ + +``` + +### Remove privileges from a privilege group​ + +The following example demonstrates how to remove the privilege `PrivilegeRestoreRBAC` from the privilege group `privilege_group_1`.​ + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient​ +client.remove_privileges_from_group(group_name='privilege_group_1', privileges='Search')​ + +``` + +```java +import io.milvus.v2.service.rbac.request.RemovePrivilegesFromGroupReq;​ +​ +client.removePrivilegesFromGroup(RemovePrivilegesFromGroupReq.builder()​ + .groupName("privilege_group_1")​ + .privileges(Collections.singletonList("Search"))​ + .build());​ + +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client"​ +​ +client.RemovePrivilegesFromGroup(context.Background(), "privilege_group_1", []string{"Search"})​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/remove_privileges_from_group" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "privilegeGroupName":"privilege_group_1",​ + "privileges":["Search"]​ +}'​ + +``` + +### List privilege groups​ + +The following example demonstrates how to list all existing privilege groups.​ + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient​ +client.list_privilege_groups()​ + +``` + +```java +import io.milvus.v2.service.rbac.PrivilegeGroup;​ +import io.milvus.v2.service.rbac.request.ListPrivilegeGroupsReq;​ +import io.milvus.v2.service.rbac.response.ListPrivilegeGroupsResp;​ +​ +ListPrivilegeGroupsResp resp = client.listPrivilegeGroups(ListPrivilegeGroupsReq.builder()​ + .build());​ +List groups = resp.getPrivilegeGroups();​ + +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client"​ +​ +client.ListPrivilegeGroups(context.Background())​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/list" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{}'​ + +``` + +Below is an example output.​ + +``` +PrivilegeGroupItem: , ​ + +``` + +### Drop a privilege group​ + +The following example demonstrates how to drop the privilege group `privilege_group_1`.​ + +
+ Python + Java + Go + cURL +
+ +```python +from pymilvus import MilvusClient​ +client.drop_privilege_group(group_name='privilege_group_1')​ + +``` + +```java +import io.milvus.v2.service.rbac.request.DropPrivilegeGroupReq;​ +​ +client.dropPrivilegeGroup(DropPrivilegeGroupReq.builder()​ + .groupName("privilege_group_1")​ + .build());​ + +``` + +```go +import "github.com/milvus-io/milvus-sdk-go/v2/client"​ +​ +client.DropPrivilegeGroup(context.Background(), "privilege_group_1")​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/drop" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "privilegeGroupName":"privilege_group_1"​ +}'​ + +``` + diff --git a/v2.5.x/site/en/adminGuide/rbac.md b/v2.5.x/site/en/adminGuide/rbac.md index c9c48cbb2..d8f9aca84 100644 --- a/v2.5.x/site/en/adminGuide/rbac.md +++ b/v2.5.x/site/en/adminGuide/rbac.md @@ -1,201 +1,44 @@ --- id: rbac.md related_key: enable RBAC -summary: Learn how to manage users, roles, and privileges. -title: Enable RBAC +summary: RBAC (Role-Based Access Control) is an access control method based on roles. With RBAC, you can finely control the operations users can perform at the collection, database, and instance levels, enhancing data security. ​ +title: RBAC Explained --- -# Enable RBAC +# RBAC Explained​ -By enabling RBAC, you can control access to specific Milvus resources (Eg. a collection or a partition) or permissions based on user role and privileges. Currently, this feature is only available in Python and Java. +RBAC (Role-Based Access Control) is an access control method based on roles. With RBAC, you can finely control the operations users can perform at the collection, database, and instance levels, enhancing data security. ​ -This topic describes how to enable RBAC and manage [users and roles](users_and_roles.md). +Unlike traditional user access control models, RBAC introduces the concept of **roles**. In the RBAC model, you grant privileges to roles and then grant those roles to users. Then users can obtain privileges. ​ -
+The RBAC model can improve the efficiency of access control management. For example, if multiple users require the same set of privileges, you do not need to manually set the privileges for each user. Instead, you can create a role and assign the role to users. If you want to adjust the privileges of these users, you can just adjust the role privileges and the modification will be applied to all users with this role.​ -The code snippets on this page use new MilvusClient (Python) to interact with Milvus. New MilvusClient SDKs for other languages will be released in future updates. +## RBAC key concepts​ -
+![Users, roles, and privileges](../../../assets/users_roles_privileges.png) -## 1. Initiate a Milvus client to establish a connection +There are four major components in the RBAC model.​ -After you enable [user authentication](authenticate.md), connect to your Milvus instance using `token` that consists of a username and a password. By default, Milvus uses the `root` user with the password `Milvus`. +- **Resource: **The resource entity that can be accessed. There are three levels of resources in Milvus - instance, database, and collection.​ -```python -from pymilvus import MilvusClient +- **Privilege: **The permission to perform certain operations on Milvus resources (eg. create collections, insert data, etc). ​ -client = MilvusClient( - uri='http://localhost:19530', # replace with your own Milvus server address - token='root:Milvus' # replace with your own Milvus server token -) -``` +- **Privilege group: **A group of multiple privileges.​ -## 2. Create a user +- **Role: **A role consists of two parts-privileges and resources. Privileges define the type of operations that a role can perform while resources define the target resources that the operations can be performed on. For example, the database administrator role can perform read, write, and manage operations on certain databases.​ -Create a user named `user_1` with the password `P@ssw0rd`: +- **User: **A user is someone who uses Milvus. Each user has a unique ID and is granted a role or multiple roles. ​ -```python -client.create_user( - user_name='user_1', - password='P@ssw0rd' -) -``` +## Procedures​ -After creating a user, you can: +The achieve access control via RBAC, you need to follow the steps below:​ -- Update a user password. You need to provide both the original and the new password. +1. [Create a user](users_and_roles.md#Create-a-user): In addition to the default user `root` in Milvus, you can create new users and set passwords to protect data security.​ -```python -client.update_password( - user_name='user_1', - old_password='P@ssw0rd', - new_password='P@ssw0rd123' -) -``` +2. [Create a role](users_and_roles.md#Create-a-role): You can create customized roles based on your needs. The specific capabilities of a role are determined by its privileges.​ -- List all users. +3. [Create a privilege group](privilege_group.md): Combine multiple privileges into one privilege group to streamline the process of granting privileges to a role.​ -```python -client.list_users() +4. [Grant privileges or privilege groups to a role](grant_privileges.md): Define the capabilities of a role be granting privileges or privilege groups to this role. ​ -# output: -# ['root', 'user_1'] -``` - -- Check the role of a particular user. - -```python -client.describe_user(user_name='user_1') - -# output: -# {'user_name': 'user_1', 'roles': ()} -``` - -## 3. Create a role - -The following example creates a role named `roleA`. - -```python -client.create_role( - role_name="roleA", -) -``` - -After creating a role, you can: - -- List all roles. - -```python -client.list_roles() - -# output: -# ['admin', 'public', 'roleA'] -``` - -## 4. Grant a privilege to a role - -The following example demonstrates how to grant the permission of searching all collections to the role named `roleA`. - -The `object_type` specifies the object type, which can also be understood as the resource type. Currently, valid values ​​include Collection/User/Global, etc., where Global means that there is no specific resource type. The `object_name` is the resource name. If object*type is Collection, then object name can be referred to a specific collection name, or you can use * to specify all collections. If object*type is Global, then the object name can be only specified as *. See [Users and Roles](users_and_roles.md) for other types of privileges you can grant. - -Before managing role privileges, make sure you have enabled user authentication. Otherwise, an error may occur. For information on how to enable user authentication, refer to [Authenticate User Access](authenticate.md). - -```python -# grant privilege to a role - -client.grant_privilege( - role_name='roleA', - object_type='User', # value here can be Global, Collection or User, object type also depends on the API defined in privilegeName - object_name='user_1', # value here can be * or a specific user name if object type is 'User' - privilege='SelectUser' -) -``` - -After granting a privilege to a role, you can: - -- View the privileges granted to a role. - -```python -client.describe_role( - role_name='roleA' -) - -# output: -# {'role': 'roleA', -# 'privileges': [{'object_type': 'User', -# 'object_name': 'user_1', -# 'db_name': 'default', -# 'role_name': 'roleA', -# 'privilege': 'SelectUser', -# 'grantor_name': 'root'}]} -``` - -## 5. Grant a role to a user - -Grant the role to a user so that this user can inherit all the privileges of the role. - -```python -# grant a role to a user - -client.grant_role( - user_name='user_1', - role_name='roleA' -) -``` - -After granting the role, verify that it has been granted: - -```python -client.describe_user( - user_name='user_1' -) - -# output: -# {'user_name': 'user_1', 'roles': ('roleA')} -``` - -## 6. Revoke privileges - -
- -Exercise caution when performing the following operations because these operations are irreversible. - -
- -- Remove a privilege from a role. If you revoke a privilege that has not been granted to the role, an error will occur. - -```python -client.revoke_privilege( - role_name='roleA', - object_type='User', # value here can be Global, Collection or User, object type also depends on the API defined in privilegeName - object_name='user_1', # value here can be * or a specific user name if object type is 'User' - privilege='SelectUser' -) -``` - -- Remove a user from a role. If you revoke a role that has not been granted to the user, an error will occur. - -```python -client.revoke_role( - user_name='user_1', - role_name='roleA' -) -``` - -- Drop a role. - -```python -client.drop_role(role_name='roleA') -``` - -- Drop a user. - -```python -client.drop_user(user_name='user_1') -``` - -## What's next - -- Learn how to manage [user authentication](authenticate.md). - -- Learn how to enable [TLS proxy](tls.md) in Milvus. +5. [Grant roles to users](grant_roles.md): Grant roles with certain privileges to users so that users can have the privileges of a role. A single role can be granted to multiple users.​ diff --git a/v2.5.x/site/en/adminGuide/users_and_roles.md b/v2.5.x/site/en/adminGuide/users_and_roles.md new file mode 100644 index 000000000..1088329ab --- /dev/null +++ b/v2.5.x/site/en/adminGuide/users_and_roles.md @@ -0,0 +1,307 @@ +--- +id: users_and_roles.md +related_key: users, roles +summary: Milvus achieves fine-grained access control through RBAC. You can start by creating users and roles, then assign privileges or privilege groups to roles, and finally manage access control by granting roles to users. This method ensures the efficiency and security of access management. This page introduces how to create users and roles in Milvus.​ +title: Create Users & Roles​ +--- + +# Create Users & Roles​ + +Milvus achieves fine-grained access control through RBAC. You can start by creating users and roles, then assign privileges or privilege groups to roles, and finally manage access control by granting roles to users. This method ensures the efficiency and security of access management. This page introduces how to create users and roles in Milvus.​ + +## User​ + +After initializing a Milvus instance, a root user is automatically generated for authentication when connecting to Milvus for the first time. The username of the root user is `root` and the password is `Milvus`. The default role of the root user is `admin`, which has access to all resources. To ensure data security, please keep your root user's credentials safe to prevent unauthorized access.​ + +For daily operations, we recommend creating users instead of using the root user.​ + +### Create a user​ + +The following example shows how to create a user with the username `user_1` and the password `P@ssw0rd`. The username and password for the user must follow these rules:​ + +- Username: Must start with a letter and can only include uppercase or lowercase letters, numbers, and underscores.​ + +- Password: Must be 8-64 characters long and must include three of the following: uppercase letters, lowercase letters, numbers, and special characters.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client = MilvusClient(​ + uri="http://localhost:19530",​ + token="root:Milvus"​ +)​ +​ +client.create_user(user_name="user_1", password="P@ssw0rd")​ + +``` + +```java +import io.milvus.v2.client.ConnectConfig;​ +import io.milvus.v2.client.MilvusClientV2;​ +import io.milvus.v2.service.rbac.request.CreateUserReq;​ +​ +ConnectConfig connectConfig = ConnectConfig.builder()​ + .uri("http://localhost:19530")​ + .token("root:Milvus")​ + .build();​ + ​ +MilvusClientV2 client = new MilvusClientV2(connectConfig);​ +​ +CreateUserReq createUserReq = CreateUserReq.builder()​ + .userName("user_1")​ + .password("P@ssw0rd")​ + .build();​ + ​ +client.createUser(createUserReq);​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +const address = "http://localhost:19530";​ +const token = "root:Milvus";​ +const client = new MilvusClient({address, token});​ +​ +await milvusClient.createUser({​ + username: 'user_1',​ + password: 'P@ssw0rd',​ + });​ + +``` + +```shell +export CLUSTER_ENDPOINT="http://localhost:19530"​ +export TOKEN="root:Milvus"​ +​ +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/create" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "userName": "user_1",​ + "password": "P@ssw0rd"​ +}'​ + +``` + +### Update password​ + +After creating a user, you can update the password if you forget.​ + +The new password must also follow the following rule:​ + +- Must be 8-64 characters long and include three of the following: uppercase letters, lowercase letters, numbers, and special characters. ​ + +The following example shows how to update the password for user `user_1` to `NewP@ssw0rd`.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.update_password(​ + user_name="user_1",​ + old_password="P@ssw0rd",​ + new_password="NewP@ssw0rd"​ +)​ + +``` + +```java +import io.milvus.v2.service.rbac.request.UpdatePasswordReq;​ +​ +UpdatePasswordReq updatePasswordReq = UpdatePasswordReq.builder()​ + .userName("user_1")​ + .password("P@ssw0rd")​ + .newPassword("NewP@ssw0rd")​ + .build();​ +client.updatePassword(updatePasswordReq);​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +await milvusClient.updateUser({​ + username: 'user_1',​ + newPassword: 'P@ssw0rd',​ + oldPassword: 'NewP@ssw0rd',​ +});​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/update_password" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "newPassword": "P@ssw0rd!",​ + "userName": "user_1",​ + "password": "P@ssw0rd"​ +}'​ + +``` + +### List users​ + +After creating several users, you can list and view all existing users.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.list_users()​ + +``` + +```java +List resp = client.listUsers();​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +await milvusClient.listUsers();​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/list" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{}'​ + +``` + +Below is an example output. `root` is the default user automatically generated in Milvus. `user_1` is the new user that is just created.​ + +```bash +['root', 'user_1']​ + +``` + +## Role​ + +Milvus provides a built-in role called `admin`, which is an administrator role that can access resources under all instances and has privileges for all operations. For more fine-grained access management and enhanced data security, it is recommended that you create custom roles based on your needs.​ + +### Create a role​ + +The following example demonstrates how to create a role named `role_a`. ​ + +The role name must follow the following rule:​ + +- Must start with a letter and can only include uppercase or lowercase letters, numbers, and underscores."​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.create_role(role_name="role_a")​ +import io.milvus.v2.service.rbac.request.CreateRoleReq;​ + +``` + +```java +CreateRoleReq createRoleReq = CreateRoleReq.builder()​ + .roleName("role_a")​ + .build();​ + ​ + +``` + +```javascript +client.createRole(createRoleReq);​ +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +await milvusClient.createRole({​ + roleName: 'role_a',​ +});​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/create" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{​ + "roleName": "role_a"​ +}'​ + +``` + +### List roles​ + +After creating several roles, you can list and view all existing roles.​ + + + +```python +from pymilvus import MilvusClient​ +​ +client.list_roles()​ + +``` + +```java +List roles = client.listRoles();​ + +``` + +```javascript +const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")​ +​ +await milvusClient.listRoles(​ + includeUserInfo: True​ +);​ + +``` + +```shell +curl --request POST \​ +--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/list" \​ +--header "Authorization: Bearer ${TOKEN}" \​ +--header "Content-Type: application/json" \​ +-d '{}'​ + +``` + +Below is an example output. `admin` is the default role in Milvus. `role_a` is the new role that is just created.​ + +```bash +['admin', 'role_a']​ + +``` diff --git a/v2.5.x/site/en/menuStructure/en.json b/v2.5.x/site/en/menuStructure/en.json index 3af038648..4211dab99 100644 --- a/v2.5.x/site/en/menuStructure/en.json +++ b/v2.5.x/site/en/menuStructure/en.json @@ -1364,17 +1364,48 @@ "children": [] }, { - "label": "Users, Privileges, and Roles", - "id": "users_and_roles.md", - "order": 10, - "children": [] - }, - { - "label": "Enable RBAC", - "id": "rbac.md", + "label": "RBAC", + "id": "rbac", "order": 1, "isMenu": true, - "children": [] + "children": [ + { + "label": "RBAC Explained", + "id": "rbac.md", + "order": 0, + "children": [] + }, + { + "label": "Create Users & Roles", + "id": "users_and_roles.md", + "order": 1, + "children": [] + }, + { + "label": "Create Privilege Group", + "id": "privilege_group.md", + "order": 2, + "children": [] + }, + { + "label": "Grant Privileges", + "id": "grant_privileges.md", + "order": 3, + "children": [] + }, + { + "label": "Grant Roles", + "id": "grant_roles.md", + "order": 4, + "children": [] + }, + { + "label": "Drop Users & Roles", + "id": "drop_users_roles.md", + "order": 5, + "children": [] + } + ] }, { "label": "Encryption in Transit", diff --git a/v2.5.x/site/en/reference/users_and_roles.md b/v2.5.x/site/en/reference/users_and_roles.md deleted file mode 100644 index 65b994561..000000000 --- a/v2.5.x/site/en/reference/users_and_roles.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -id: users_and_roles.md -related_key: users, roles -summary: Learn about the definition of users, roles, objects, and privileges in role-based access control (RBAC). -title: Users, Privileges, and Roles ---- - -# Users, Privileges, and Roles - -This topic provides an overview of Role-Based Access Control (RBAC) in Milvus, detailing the definitions and relationships between users, roles, objects, and privileges. - -The following figure illustrates the relationship between objects, privileges, roles, and users. - -![users_and_roles](../../../assets/users_and_roles.png "The relationship between object, privilege, role and user.") - -## Key concepts - -To manage access control to Milvus resources, it’s important to understand the key components of RBAC: object types, object names, users, roles, and privileges. - -- **Object type**: the category of the object for which a privilege is being assigned. The object type can be: - - `Global`: System-wide objects, allowing the user to perform actions that affect all collections, users, or system-wide settings. - - `Collection`: Collection-specific objects, allowing the user to perform actions such as creating indexes, loading data, inserting or deleting data, and querying data within a specific collection. - - `User`: Objects related to user management, allowing the user to manage credentials and roles for database users, such as updating user credentials or viewing user details. - -- **Object name**: the specific name of the object to control access for. For instance: - - If the object type is `Global`, the object name must be set to the wildcard (`*`), indicating all objects of the specified type. - - If the object type is `Collection`, the object name is the name of a collection. - - If the object type is `User`, the object name is the name of a database user. - -- **User**: a person or an application that interacts with Milvus, which consists of a username and a corresponding password. - -- **Privilege**: defines the actions that can be performed and the resources that can be accessed. Privileges are not granted directly to users but are assigned to roles. - -- **Role**: defines the set of privileges that a user has for certain objects. Once a role is bound to a user, the user inherits all the privileges granted to that role. - -## Example: Granting privileges - -The following code snippet shows how to grant a `CreateIndex` privilege to a role on a specific collection: - - - -```python -milvusClient.grant_privilege( - role_name="CUSTOM_ROLE_NAME", - object_type="Collection", # Valid value: Global, Collection or User. - privilege="CreateIndex", # See the table below for valid privilege names and relevant API descriptions. - object_name="YOUR_COLLECTION_NAME" # The name of the collection to grant access to. Use "*" to grant access to all collections. -) -``` - -```java -GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder() - .roleName("roleName") - .objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections. - .objectType("Collection") // Valid value: Global, Collection or User. - .privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions. - .build(); -client.grantPrivilege(grantPrivilegeReq); -``` - -```javascript -milvusClient.grantPrivilege({ - roleName: 'roleName', - object: 'Collection', // Valid value: Global, Collection or User. - objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections. - privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions. - }) -``` - -
- -To obtain more information about privilege-related APIs, refer to [grant_privilege](https://milvus.io/api-reference/pymilvus/v2.4.x/MilvusClient/Authentication/grant_privilege.md) and [revoke_privilege](https://milvus.io/api-reference/pymilvus/v2.4.x/MilvusClient/Authentication/revoke_privileges.md). - -
- -
- -To obtain more information about privilege-related APIs, refer to [grantPrivilege](https://milvus.io/api-reference/java/v2.4.x/v2/Authentication/grantPrivilege.md) and [revokePrivilege](https://milvus.io/api-reference/java/v2.4.x/v2/Authentication/revokePrivilege.md). - -
- -
- -To obtain more information about privilege-related APIs, refer to [grantPrivilege](https://milvus.io/api-reference/node/v2.4.x/Authentication/grantPrivilege.md) and [revokePrivilege](https://milvus.io/api-reference/node/v2.4.x/Authentication/revokePrivilege.md). - -
- -## Default users and roles - -Milvus creates a `root` user by default with a default password `Milvus`. The `root` user is granted the `admin` privileges, which means that this `root` user can have access to all resources and perform all actions. - -If a user is associated with the `public` role, they are entitled to the following privileges: - -- `DescribeCollection` -- `ShowCollections` -- `IndexDetail` - -## List of object types and privileges - -The following table lists the values you can choose when [enabling RBAC](rbac.md). - -| Object type | Privilege name | Relevant API description on the client side | -| ----------- | --------------------- | ------------------------------------------------- | -| Collection | CreateIndex | CreateIndex | -| Collection | DropIndex | DropIndex | -| Collection | IndexDetail | DescribeIndex/GetIndexState/GetIndexBuildProgress | -| Collection | Load | LoadCollection/GetLoadingProgress/GetLoadState | -| Collection | GetLoadingProgress | GetLoadingProgress | -| Collection | GetLoadState | GetLoadState | -| Collection | Release | ReleaseCollection | -| Collection | Insert | Insert | -| Collection | Delete | Delete | -| Collection | Upsert | Upsert | -| Collection | Search | Search | -| Collection | Flush | Flush/GetFlushState | -| Collection | GetFlushState | GetFlushState | -| Collection | Query | Query | -| Collection | GetStatistics | GetCollectionStatistics | -| Collection | Compaction | Compact | -| Collection | Import | BulkInsert/Import | -| Collection | LoadBalance | LoadBalance | -| Collection | CreatePartition | CreatePartition | -| Collection | DropPartition | DropPartition | -| Collection | ShowPartitions | ShowPartitions | -| Collection | HasPartition | HasPartition | -| Global | All | All API operation permissions in this table | -| Global | CreateCollection | CreateCollection | -| Global | DropCollection | DropCollection | -| Global | DescribeCollection | DescribeCollection | -| Global | ShowCollections | ShowCollections | -| Global | RenameCollection | RenameCollection | -| Global | FlushAll | FlushAll | -| Global | CreateOwnership | CreateUser CreateRole | -| Global | DropOwnership | DeleteCredential DropRole | -| Global | SelectOwnership | SelectRole/SelectGrant | -| Global | ManageOwnership | OperateUserRole OperatePrivilege | -| Global | CreateResourceGroup | CreateResourceGroup | -| Global | DropResourceGroup | DropResourceGroup | -| Global | DescribeResourceGroup | DescribeResourceGroup | -| Global | ListResourceGroups | ListResourceGroups | -| Global | TransferNode | TransferNode | -| Global | TransferReplica | TransferReplica | -| Global | CreateDatabase | CreateDatabase | -| Global | DropDatabase | DropDatabase | -| Global | ListDatabases | ListDatabases | -| Global | CreateAlias | CreateAlias | -| Global | DropAlias | DropAlias | -| Global | DescribeAlias | DescribeAlias | -| Global | ListAliases | ListAliases | -| User | UpdateUser | UpdateCredential | -| User | SelectUser | SelectUser | - -
-
  • Object and privilege names are case-sensitive.
  • -
  • To grant all privileges to a kind of object, like Collection, Global, User, use "*" for privilege name.
  • -
  • The "*" privilege name for the Global object doesn't include the All privilege, because the All privilege includes all permissions, including any collection and user object.
  • -
    - -## What's next -- Learn how to [enable RBAC](rbac.md).