🚀 Prova Zilliz Cloud, la versione completamente gestita di Milvus, gratuitamente—sperimenta prestazioni 10 volte più veloci! Prova Ora>>

milvus-logo
LFAI
Casa

Creare un gruppo di privilegi

Per semplificare il processo di concessione dei privilegi, si consiglia di combinare più privilegi in un gruppo di privilegi.

Gruppo di privilegi vs. privilegi

Un gruppo di privilegi è costituito da più privilegi.

Privilege group illustrated Gruppo di privilegi illustrato

Come mostrato nella figura precedente, si supponga di dover concedere tre diversi privilegi a un ruolo.

  • Se non si utilizza un gruppo di privilegi, è necessario concedere i privilegi tre volte.

  • Se si utilizza un gruppo di privilegi, è sufficiente creare un gruppo di privilegi e aggiungere i tre privilegi a questo gruppo di privilegi e concedere il gruppo di privilegi al ruolo A.

Utilizzando un gruppo di privilegi, è possibile concedere più privilegi in blocco a un ruolo.

Gruppi di privilegi integrati

Per facilitare l'uso, Milvus fornisce un totale di 9 privilegi incorporati a livello di raccolta, database e istanza: COLL_RO, COLL_RW, COLL_ADMIN, DB_RO, DB_RW, DB_Admin, Cluster_RO, Cluster_RW e Cluster_Admin.

I tre livelli di gruppi di privilegi integrati non hanno una relazione a cascata. L'impostazione di un gruppo di privilegi a livello di istanza non imposta automaticamente le autorizzazioni per tutti i database e le raccolte sotto quell'istanza. I privilegi a livello di database e di raccolta devono essere impostati manualmente.

Le tabelle seguenti illustrano i privilegi inclusi in ciascun gruppo di privilegi incorporato.

Livello di raccolta

  • COLL_RO: include i privilegi di lettura dei dati della raccolta.

  • COLL_RW: include i privilegi di lettura e scrittura dei dati della raccolta.

  • COLL_ADMIN: include i privilegi di lettura e scrittura dei dati della raccolta e di gestione delle raccolte.

La tabella seguente elenca i privilegi specifici inclusi nei tre gruppi di privilegi integrati a livello di raccolta.

**Privilegio**

**CollectionReadOnly**

**CollectionReadWrite**

**CollectionAdmin**

Interrogazione

✔️

✔️

✔️

Ricerca

✔️

✔️

✔️

IndiceDettaglio

✔️

✔️

✔️

GetFlushState

✔️

✔️

✔️

Ottieni lo stato di caricamento

✔️

✔️

✔️

Ottenere l'avanzamento del caricamento

✔️

✔️

✔️

HasPartition

✔️

✔️

✔️

MostraPartizioni

✔️

✔️

✔️

ElencoAlias

✔️

✔️

✔️

DescriviCollezione

✔️

✔️

✔️

DescrivereAlias

✔️

✔️

✔️

OttieniStatistiche

✔️

✔️

✔️

CreaIndice

✔️

✔️

Rilasciare l'indice

✔️

✔️

CreaPartizione

✔️

✔️

AbbandonaPartizione

✔️

✔️

Carico

✔️

✔️

Rilascio

✔️

✔️

Inserire

✔️

✔️

Cancellare

✔️

✔️

Inserisci

✔️

✔️

Importazione

✔️

✔️

Sciacquare

✔️

✔️

Compattazione

✔️

✔️

Bilanciamento del carico

✔️

✔️

CreaAlias

✔️

EliminaAlias

✔️

Livello del database

  • DB_RO: include i privilegi di lettura dei dati del database

  • DB_RW: include i privilegi di lettura e scrittura dei dati del database

  • DB_Admin: include i privilegi di lettura e scrittura dei dati del database e di gestione dei database.

La tabella seguente elenca i privilegi specifici inclusi nei tre gruppi di privilegi integrati a livello di database.

**Privilegio**

**Lettura del database**

**LetturaDatabaseScrittura**

**Admin del database**

Mostra collezioni

✔️

✔️

✔️

DescriviDatabase

✔️

✔️

✔️

CreaCollezione

✔️

AbbandonaCollezione

✔️

Alterare il database

✔️

✔️

Livello del cluster

  • Cluster_RO: include i privilegi di lettura dei dati di istanza

  • Cluster_RW: include i privilegi di lettura e scrittura dei dati delle istanze

  • Cluster_Admin: include i privilegi di lettura e scrittura dei dati di istanza e di gestione delle istanze.

La tabella seguente elenca i privilegi specifici inclusi nei tre gruppi di privilegi incorporati a livello di istanza.

**Privilegio**

**ClusterReadOnly**

**ClusterReadWrite**

**ClusterAdmin**

ElencoDatabase

✔️

✔️

✔️

RinominaCollezione

✔️

CreaProprietà

✔️

AggiornaUtente

✔️

AbbandonaProprietà

✔️

SelezionaProprietà

✔️

✔️

✔️

GestisciProprietà

✔️

SelezionaUtente

✔️

✔️

✔️

BackupRBAC

✔️

RipristinoRBAC

✔️

CreaGruppoRisorse

✔️

AbbandonaGruppoRisorse

✔️

AggiornaGruppiRisorse

✔️

✔️

DescriviGruppoRisorse

✔️

✔️

✔️

ElencoGruppiRisorse

✔️

✔️

✔️

TrasferimentoNodo

✔️

✔️

TrasferimentoReplica

✔️

✔️

CreaDatabase

✔️

AbbandonaDatabase

✔️

RisciacquareTutti

✔️

✔️

CreaGruppoPrivilegi

✔️

Abbandona GruppoPrivilegio

✔️

ElencoGruppiPrivilegio

✔️

OperareGruppoPrivilegio

✔️

Procedure

È possibile creare un gruppo di privilegi e quindi aggiungere privilegi al gruppo di privilegi.

Creare un gruppo di privilegi

L'esempio seguente mostra come creare un gruppo di privilegi denominato 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"
}'

Aggiungere privilegi a un gruppo di privilegi

L'esempio seguente mostra come aggiungere i privilegi PrivilegeBackupRBAC e PrivilegeRestoreRBAC al gruppo di privilegi privilege_group_1 appena creato.

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

Rimuovere privilegi da un gruppo di privilegi

L'esempio seguente mostra come rimuovere il privilegio PrivilegeRestoreRBAC dal gruppo di privilegi 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"]
}'

Elencare i gruppi di privilegi

L'esempio seguente mostra come elencare tutti i gruppi di privilegi esistenti.

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

Di seguito è riportato un esempio di output.

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

Eliminare un gruppo di privilegi

L'esempio seguente mostra come eliminare il gruppo di privilegi 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

Questa pagina è stata utile?