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

milvus-logo
LFAI
Casa

Concessione di privilegi o gruppi di privilegi ai ruoli

Una volta creato un ruolo, è possibile concedere privilegi al ruolo. Questa guida illustra come concedere privilegi o gruppi di privilegi a un ruolo.

Assegnare un privilegio o un gruppo di privilegi a un ruolo

Milvus 2.5 introduce una nuova versione dell'API che semplifica l'operazione di assegnazione. Non è più necessario cercare il tipo di oggetto quando si concede un privilegio a un ruolo. Di seguito sono riportati i parametri e le relative spiegazioni.

  • nome_ruolo: il nome del ruolo di destinazione a cui devono essere concessi i privilegi o i gruppi di privilegi.

  • Risorsa: La risorsa di destinazione di un privilegio, che può essere un'istanza specifica, un database o una raccolta. La tabella seguente spiega come specificare la risorsa nel metodo client.grantV2().

Livello

Risorsa

Metodo di concessione

Note

Raccolta

Una collezione specifica

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

Immettere il nome della raccolta di destinazione e il nome del database a cui appartiene la raccolta di destinazione.

Tutte le raccolte sotto uno specifico database

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

Immettere il nome del database di destinazione e un carattere jolly `*` come nome della raccolta.

**Database**

Un database specifico

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

Immettere il nome del database di destinazione e un carattere jolly `*` come nome della collezione.

Tutti i database dell'istanza corrente

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

Inserire `*` come nome del database e `*` come nome della collezione.

**Istanza**

L'istanza corrente

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

Inserire `*` come nome del database e `*` come nome della collezione.

  • Privilegio: Il privilegio specifico o il gruppo di privilegi da concedere a un ruolo. Attualmente, Milvus offre 56 tipi di privilegi che possono essere concessi. La tabella seguente elenca i privilegi di Milvus.

    La colonna del tipo nella tabella sottostante è utilizzata per facilitare la ricerca rapida dei privilegi ed è usata solo a scopo di classificazione. Quando si concedono privilegi, non è necessario comprendere i tipi. È sufficiente inserire i privilegi corrispondenti.

**Tipo **

**Privilegio**

**Descrizione**

**Descrizione dell'API pertinente sul lato client**

Privilegi del database

ElencoDatabase

Visualizza tutti i database nell'istanza corrente

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

DescriviDatabase

Visualizza i dettagli di un database

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

CreaDatabase

Creare un database

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

AbbandonaDatabase

Eliminare un database

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

Alterare il database

Modifica le proprietà di un database

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

Privilegi di raccolta

GetFlushState

Controlla lo stato dell'operazione di lavaggio della raccolta

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

Ottieni lo stato di caricamento

Controlla lo stato di caricamento di una raccolta

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

OttieniProgressoCaricamento

Controlla l'avanzamento del caricamento di un insieme

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

Mostra collezioni

Visualizza tutte le raccolte con privilegi di raccolta

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

ListaAliases

Visualizza tutti gli alias di una collezione

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

DescriviCollezione

Visualizza i dettagli di una collezione

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

DescrivereAlias

Visualizza i dettagli di un alias

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

Ottieni statistiche

Ottiene le statistiche di una collezione (ad esempio, il numero di entità in una collezione).

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

CreaCollezione

Crea una collezione

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

Abbandona la collezione

Gettare una collezione

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

Caricare

Carica una collezione

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

Rilasciare

Rilascia una collezione

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

Risciacquare

Persiste tutte le entità di una collezione in un segmento sigillato. Qualsiasi entità inserita dopo l'operazione di flush sarà memorizzata in un nuovo 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)

Compattazione

Attiva manualmente la compattazione

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

RinominaCollezione

Rinomina una collezione

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

CreaAlias

Crea un alias per una collezione

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

EliminaAlias

Elimina l'alias di una collezione

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

ArrossisciTutti

Cancella tutte le raccolte in un database

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

Privilegi della partizione

HaPartizione

Controlla se esiste una partizione

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

Mostra partizioni

Visualizza tutte le partizioni di un insieme

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

Creare una partizione

Crea una partizione

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

Abbandona partizione

Eliminare una partizione

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

Privilegi degli indici

IndiceDettaglio

Visualizza i dettagli di un indice

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

CreaIndice

Crea un indice

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

Rilasciare l'indice

Eliminare un indice

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

Privilegi di gestione delle risorse

Bilanciamento del carico

Ottenere il bilanciamento del carico

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

CreaGruppoRisorse

Crea un gruppo di risorse

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

Abbandona il gruppo di risorse

Abbandona un gruppo di risorse

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

AggiornaGruppi di risorse

Aggiorna un gruppo di risorse

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

Descrivere un gruppo di risorse

Visualizza i dettagli di un gruppo di risorse

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

Elenco dei gruppi di risorse

Visualizza tutti i gruppi di risorse dell'istanza corrente

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

TrasferisciNodo

Trasferisce i nodi tra i gruppi di risorse

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

Trasferimento di repliche

Trasferisce le repliche tra gruppi di risorse

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

BackupRBAC

Crea un backup di tutte le operazioni relative a RBAC nell'istanza corrente.

BackupRBAC

RipristinaRBAC

Ripristina un backup di tutte le operazioni relative a RBAC nell'istanza corrente

RipristinaRBAC

Privilegi dell'entità

Interrogazione

Eseguire una query

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

Ricerca

Effettuare una ricerca

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

Inserire

Inserire entità

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

Eliminare

Eliminare entità

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

Inserisci

Inserisce le entità

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

Importazione

Inserire o importare in massa le entità

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

Privilegi RBAC

CreaProprietà

Crea un utente o un ruolo

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

AggiornaUtente

Aggiorna la password di un utente

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

AbbandonaProprietà

Elimina la password di un utente o di un ruolo

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

Selezionare la proprietà

Visualizza tutti gli utenti a cui è stato concesso un ruolo specifico

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

GestisciProprietà

Gestione di un utente o di un ruolo o concessione di un ruolo a un utente

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

SelezionaUtente

Visualizza tutti i ruoli concessi a un utente

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

CreaGruppoPrivilegi

Crea un gruppo di privilegi

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

Abbandona gruppo di privilegi

Eliminare un gruppo di privilegi

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

Elenco dei gruppi di privilegi

Visualizza tutti i gruppi di privilegi nell'istanza corrente

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

Operare il gruppo di privilegi

Aggiungere privilegi a un gruppo di privilegi o rimuoverli da esso

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

L'esempio seguente mostra come concedere il privilegio PrivilegeSearch su collection_01 sotto il database predefinito e un gruppo di privilegi chiamato privilege_group_1 al ruolo 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":"*"
}'

Descrivere un ruolo

L'esempio seguente mostra come visualizzare i privilegi concessi al ruolo role_a utilizzando il metodo 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"
}'

Di seguito è riportato un esempio di output.

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

Revocare un privilegio o un gruppo di privilegi a un ruolo

L'esempio seguente mostra come revocare il privilegio PrivilegeSearch su collection_01 sotto il database predefinito e il gruppo di privilegi privilege_group_1 che sono stati concessi al ruolo 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

Questa pagina è stata utile?