🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
Home

Conceder privilégios ou grupos de privilégios a funções

Uma vez criada uma função, pode conceder privilégios à mesma. Este guia apresenta a forma de conceder privilégios ou grupos de privilégios a uma função.

Conceder um privilégio ou um grupo de privilégios a uma função

O Milvus 2.5 introduz uma nova versão da API que simplifica a operação de concessão. Já não é necessário procurar o tipo de objeto quando se concede um privilégio a uma função. Seguem-se os parâmetros e as respectivas explicações.

  • nome_da_função: o nome da função de destino à qual devem ser concedidos privilégios ou grupos de privilégios.

  • Recurso: O recurso de destino de um privilégio, que pode ser uma instância específica, um banco de dados ou uma coleção. A tabela a seguir explica como especificar o recurso no método client.grantV2().

Nível

Recurso

Método de concessão

Notas

Coleção

Uma coleção específica

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

Introduza o nome da coleção de destino e o nome da base de dados à qual a coleção de destino pertence.

Todas as colecções numa base de dados específica

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

Introduza o nome da sua base de dados de destino e um wildcard `*` como o nome da coleção.

**Base de dados**

Uma base de dados específica

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

Introduza o nome da sua base de dados de destino e um wildcard `*` como nome da coleção.

Todas as bases de dados na instância atual

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

Introduza `*` como o nome da base de dados e `*` como o nome da coleção.

**Instância**

A instância atual

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

Introduza `*` como o nome da base de dados e `*` como o nome da coleção.

  • Privilégio: O privilégio específico ou o grupo de privilégios que é necessário conceder a uma função. Atualmente, o Milvus disponibiliza 56 tipos de privilégios que podem ser concedidos. A tabela abaixo lista os privilégios no Milvus.

    A coluna do tipo na tabela abaixo é utilizada para facilitar a pesquisa rápida de privilégios e é utilizada apenas para fins de classificação. Ao conceder privilégios, não precisa de compreender os tipos. Só precisa de introduzir os privilégios correspondentes.

**Tipo

**Privilégio

**Descrição**

**Descrição da API relevante no lado do cliente

Privilégios da base de dados

Listar bases de dados

Ver todas as bases de dados na instância atual

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

DescreverBase de Dados

Ver os detalhes de uma base de dados

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

CriarBase de Dados

Criar uma base de dados

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

DropDatabase

Eliminar uma base de dados

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

Alterar base de dados

Modificar as propriedades de uma base de dados

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

Privilégios de coleção

GetFlushState

Verificar o estado da operação de descarga da coleção

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

GetLoadState

Verificar o estado de carregamento de uma coleção

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

GetLoadingProgress

Verificar o progresso do carregamento de uma coleção

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

Mostrar colecções

Ver todas as colecções com privilégios de coleção

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

ListAliases

Ver todos os nomes alternativos de uma coleção

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

Descrever coleção

Ver os detalhes de uma coleção

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

DescreverAlias

Ver os detalhes de um alias

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

Obter estatísticas

Obter as estatísticas de uma coleção (por exemplo, o número de entidades numa coleção)

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

Criar coleção

Criar uma coleção

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

Soltar coleção

Eliminar uma coleção

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

Carregar

Carregar uma coleção

[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)

Libertação

Libertar uma coleção

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

Descarregar

Persiste todas as entidades de uma coleção num segmento selado. Qualquer entidade inserida após a operação de flush será armazenada num novo segmento.

[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)

Compactação

Ativar manualmente a compactação

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

Renomear coleção

Mudar o nome de uma coleção

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

CriarAlias

Criar um pseudónimo para uma coleção

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

EliminarAlias

Eliminar o nome alternativo de uma coleção

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

FlushAll

Eliminar todas as colecções de uma base de dados

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

Privilégios de partição

HasPartition

Verifica se existe uma partição

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

MostrarPartições

Ver todas as partições de uma coleção

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

CriarPartição

Criar uma partição

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

SoltarPartição

Eliminar uma partição

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

Privilégios do índice

Detalhes do índice

Ver os detalhes de um índice

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

CriarIndex

Criar um índice

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

DropIndex

Eliminar um índice

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

Privilégios de gestão de recursos

LoadBalance

Alcançar o equilíbrio de carga

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

CreateResourceGroup (Criar grupo de recursos)

Criar um grupo de recursos

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

DropResourceGroup

Eliminar um grupo de recursos

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

UpdateResourceGroups (Atualizar grupos de recursos)

Atualizar um grupo de recursos

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

DescreverGrupo de Recursos

Ver os pormenores de um grupo de recursos

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

ListResourceGroups

Ver todos os grupos de recursos da instância atual

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

TransferNode

Transferir nós entre grupos de recursos

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

TransferReplica

Transferir réplicas entre grupos de recursos

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

BackupRBAC

Criar uma cópia de segurança para todas as operações relacionadas com RBAC na instância atual

Cópia de segurançaRBAC

RestaurarRBAC

Restaurar uma cópia de segurança de todas as operações relacionadas com o RBAC na instância atual

RestaurarRBAC

Privilégios da entidade

Consulta

Efetuar uma consulta

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

Pesquisa

Efetuar uma pesquisa

[Pesquisar](https://milvus.io/docs/single-vetor-search.md)

Inserir

Inserir entidades

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

Eliminar

Eliminar entidades

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

Upsert

Inserir entidades

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

Importar

Inserir ou importar entidades em massa

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

Privilégios RBAC

CriarPropriedade

Criar um utilizador ou uma função

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

UpdateUser (Atualizar utilizador)

Atualizar a palavra-passe de um utilizador

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

DropOwnership

Eliminar a palavra-passe de um utilizador ou uma função

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

SeleccionarPropriedade

Ver todos os utilizadores a quem foi atribuída uma função específica

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

GerirPropriedade

Gerir um utilizador ou uma função ou atribuir uma função a um utilizador

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

SeleccionarUtilizador

Ver todas as funções atribuídas a um utilizador

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

Criar grupo de privilégios

Criar um grupo de privilégios

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

DropPrivilegeGroup (Abandonar grupo de privilégios)

Eliminar um grupo de privilégios

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

ListPrivilegeGroups

Ver todos os grupos de privilégios na instância atual

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

OperatePrivilegeGroup (Operar grupo de privilégios)

Adicionar privilégios a um grupo de privilégios ou remover privilégios de um grupo de privilégios

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

O exemplo a seguir demonstra como conceder o privilégio PrivilegeSearch em collection_01 no banco de dados padrão, bem como um grupo de privilégios chamado privilege_group_1 para a função role_a.

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='*',
)
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());
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("*"))
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'
 });
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":"*"
}'

Descrever uma função

O exemplo a seguir demonstra como visualizar os privilégios concedidos à função role_a usando o método describe_role.

from pymilvus import MilvusClient

client.describe_role(role_name="role_a")
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<DescribeRoleResp.GrantInfo> infos = resp.getGrantInfos();
import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.ListRoles(context.Background())
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.describeRole({roleName: 'role_a'});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/describe" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a"
}'

Abaixo está um exemplo de saída.

{
     "role": "role_a",
     "privileges": [
         {
             "collection_name": "collection_01",
             "db_name": "default",
             "role_name": "role_a",
             "privilege": "Search",
             "grantor_name": "root"
         },
         "privilege_group_1"
     ]
}

Revogar um privilégio ou um grupo de privilégios de uma função

O exemplo a seguir demonstra como revogar o privilégio PrivilegeSearch em collection_01 no banco de dados padrão, bem como o grupo de privilégios privilege_group_1 que foram concedidos à função role_a.

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='*',
)
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());
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("*"))
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":"*"
}'

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?