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

milvus-logo
LFAI
Home

Criar um grupo de privilégios

Para simplificar o processo de concessão de privilégios, recomenda-se que combine vários privilégios num grupo de privilégios.

Grupo de privilégios vs. privilégios

Um grupo de privilégios consiste em vários privilégios.

Privilege group illustrated Grupo de privilégios ilustrado

Como mostra a figura acima, suponha que precisa de conceder três privilégios diferentes a uma função.

  • Se não utilizar um grupo de privilégios, terá de conceder os privilégios três vezes.

  • Se utilizar um grupo de privilégios, só precisa de criar um grupo de privilégios e adicionar os três privilégios a este grupo de privilégios e conceder o grupo de privilégios à função A.

Ao utilizar um grupo de privilégios, pode conceder vários privilégios em bloco a uma função.

Grupos de privilégios incorporados

Para facilitar a utilização, o Milvus fornece um total de 9 privilégios incorporados ao nível da coleção, da base de dados e da instância: COLL_RO, COLL_RW, COLL_ADMIN, DB_RO, DB_RW, DB_Admin, Cluster_RO, Cluster_RW e Cluster_Admin.

Os três níveis de grupos de privilégios incorporados não têm uma relação em cascata. A definição de um grupo de privilégios ao nível da instância não define automaticamente as permissões para todas as bases de dados e colecções dessa instância. Os privilégios ao nível das bases de dados e das colecções têm de ser definidos manualmente.

As tabelas seguintes explicam os privilégios incluídos em cada um dos grupos de privilégios incorporados.

Nível da coleção

  • COLL_RO: inclui privilégios para ler os dados da coleção

  • COLL_RW: inclui privilégios para ler e escrever dados da coleção

  • COLL_ADMIN: inclui privilégios para ler e escrever dados de coleção e gerir colecções.

A tabela abaixo lista os privilégios específicos incluídos nos três grupos de privilégios incorporados ao nível da coleção.

**Privilege**

**CollectionReadOnly**

**CollectionReadWrite**

**CollectionAdmin**

Consulta

✔️

✔️

✔️

Pesquisa

✔️

✔️

✔️

Detalhes do índice

✔️

✔️

✔️

GetFlushState

✔️

✔️

✔️

GetLoadState

✔️

✔️

✔️

GetLoadingProgress

✔️

✔️

✔️

HasPartition

✔️

✔️

✔️

ShowPartitions

✔️

✔️

✔️

ListAliases

✔️

✔️

✔️

Descrever coleção

✔️

✔️

✔️

DescreverAlias

✔️

✔️

✔️

Obter estatísticas

✔️

✔️

✔️

Criar índice

✔️

✔️

DropIndex

✔️

✔️

CriarPartição

✔️

✔️

DropPartition

✔️

✔️

Carregar

✔️

✔️

Libertar

✔️

✔️

Inserir

✔️

✔️

Eliminar

✔️

✔️

Inserir

✔️

✔️

Importar

✔️

✔️

Descarga

✔️

✔️

Compactação

✔️

✔️

Equilíbrio de carga

✔️

✔️

CriarAlias

✔️

SoltarAlias

✔️

Nível da base de dados

  • DB_RO: inclui privilégios para ler dados da base de dados

  • DB_RW: inclui privilégios para ler e escrever dados da base de dados

  • DB_Admin: inclui privilégios para ler e escrever dados da base de dados e gerir bases de dados.

A tabela abaixo lista os privilégios específicos incluídos nos três grupos de privilégios incorporados ao nível da base de dados.

**Privilege**

**DatabaseReadOnly**

**DatabaseReadWrite**

**DatabaseAdmin**

Mostrar colecções

✔️

✔️

✔️

Descrever a base de dados

✔️

✔️

✔️

CriarColeção

✔️

Deixar coleção

✔️

Alterar base de dados

✔️

✔️

Nível do cluster

  • Cluster_RO: inclui privilégios para ler dados da instância

  • Cluster_RW: inclui privilégios para ler e escrever dados da instância

  • Cluster_Admin: inclui privilégios para ler e gravar dados da instância e gerenciar instâncias.

A tabela abaixo lista os privilégios específicos incluídos nos três grupos de privilégios incorporados no nível da instância.

**Privilege**

**ClusterReadOnly**

**ClusterReadWrite**

**ClusterAdmin**

ListDatabases

✔️

✔️

✔️

Renomear coleção

✔️

Criar Propriedade

✔️

ActualizarUsuário

✔️

DropOwnership

✔️

Seleção de propriedade

✔️

✔️

✔️

GerirPropriedade

✔️

SeleccionarUtilizador

✔️

✔️

✔️

BackupRBAC

✔️

RestaurarRBAC

✔️

CriarGrupo de Recursos

✔️

AbandonarGrupo de Recursos

✔️

ActualizarGrupos de Recursos

✔️

✔️

Descrever o grupo de recursos

✔️

✔️

✔️

Listar grupos de recursos

✔️

✔️

✔️

TransferNode

✔️

✔️

TransferReplica

✔️

✔️

CriarBaseDeDados

✔️

DropDatabase

✔️

FlushAll

✔️

✔️

CriarGrupoPrivilegiado

✔️

AbandonarGrupoPrivilegiado

✔️

ListarGruposPrivilegiados

✔️

OperarPrivilegeGroup

✔️

Procedimentos

Você pode criar um grupo de privilégios e, em seguida, adicionar privilégios ao grupo de privilégios.

Criar um grupo de privilégios

O exemplo seguinte demonstra como criar um grupo de privilégios com o nome privilege_group_1.

from pymilvus import MilvusClient
client.create_privileg_group(group_name='privilege_group_1'
import io.milvus.v2.service.rbac.request.CreatePrivilegeGroupReq;

client.createPrivilegeGroup(CreatePrivilegeGroupReq.builder()
        .groupName("privilege_group_1")
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.CreatePrivilegeGroup(context.Background(), "privilege_group_1")

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"
}'

Adicionar privilégios a um grupo de privilégios

O exemplo a seguir demonstra como adicionar os privilégios PrivilegeBackupRBAC e PrivilegeRestoreRBAC ao grupo de privilégios privilege_group_1 que acabou de ser criado.

from pymilvus import MilvusClient
client.add_privileges_to_group(group_name='privilege_group_1', privileges=['Query', 'Search'])

import io.milvus.v2.service.rbac.request.AddPrivilegesToGroupReq;

client.addPrivilegesToGroup(AddPrivilegesToGroupReq.builder()
        .groupName("privilege_group_1")
        .privileges(Arrays.asList("Query", "Search"))
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.AddPrivilegesToGroup(context.Background(), "privilege_group_1", []string{"Query", "Search"})

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"]
}'

Remover privilégios de um grupo de privilégios

O exemplo a seguir demonstra como remover o privilégio PrivilegeRestoreRBAC do grupo de privilégios privilege_group_1.

from pymilvus import MilvusClient
client.remove_privileges_from_group(group_name='privilege_group_1', privileges='Search')

import io.milvus.v2.service.rbac.request.RemovePrivilegesFromGroupReq;

client.removePrivilegesFromGroup(RemovePrivilegesFromGroupReq.builder()
        .groupName("privilege_group_1")
        .privileges(Collections.singletonList("Search"))
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.RemovePrivilegesFromGroup(context.Background(), "privilege_group_1", []string{"Search"})

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"]
}'

Listar grupos de privilégios

O exemplo seguinte demonstra como listar todos os grupos de privilégios existentes.

from pymilvus import MilvusClient
client.list_privilege_groups()

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<PrivilegeGroup> groups = resp.getPrivilegeGroups();

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.ListPrivilegeGroups(context.Background())

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'

Abaixo está um exemplo de saída.

PrivilegeGroupItem: <privilege_group:privilege_group_1>, <privileges:('Search', 'Query')>

Eliminar um grupo de privilégios

O exemplo seguinte demonstra como eliminar o grupo de privilégios privilege_group_1.

from pymilvus import MilvusClient
client.drop_privilege_group(group_name='privilege_group_1')

import io.milvus.v2.service.rbac.request.DropPrivilegeGroupReq;

client.dropPrivilegeGroup(DropPrivilegeGroupReq.builder()
        .groupName("privilege_group_1")
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.DropPrivilegeGroup(context.Background(), "privilege_group_1")

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"
}'

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?