Utenti, privilegi e ruoli
Questo argomento fornisce una panoramica del controllo degli accessi basato sui ruoli (RBAC) in Milvus, illustrando le definizioni e le relazioni tra utenti, ruoli, oggetti e privilegi.
La figura seguente illustra la relazione tra oggetti, privilegi, ruoli e utenti.
utenti_e_ruoli
Concetti chiave
Per gestire il controllo degli accessi alle risorse Milvus, è importante comprendere i componenti chiave del RBAC: tipi di oggetti, nomi di oggetti, utenti, ruoli e privilegi.
Tipo di oggetto: la categoria dell'oggetto per il quale viene assegnato un privilegio. Il tipo di oggetto può essere:
Global
: Oggetti a livello di sistema, che consentono all'utente di eseguire azioni che influiscono su tutte le raccolte, gli utenti o le impostazioni a livello di sistema.Collection
: Oggetti specifici della collezione, che consentono all'utente di eseguire azioni quali la creazione di indici, il caricamento di dati, l'inserimento o l'eliminazione di dati e l'interrogazione di dati all'interno di una collezione specifica.User
: Oggetti relativi alla gestione degli utenti, che consentono all'utente di gestire le credenziali e i ruoli degli utenti del database, come l'aggiornamento delle credenziali o la visualizzazione dei dettagli dell'utente.
Nome dell'oggetto: il nome specifico dell'oggetto per cui controllare l'accesso. Ad esempio:
- Se il tipo di oggetto è
Global
, il nome dell'oggetto deve essere impostato sul carattere jolly (*
), che indica tutti gli oggetti del tipo specificato. - Se il tipo di oggetto è
Collection
, il nome dell'oggetto è il nome di un insieme. - Se il tipo di oggetto è
User
, il nome dell'oggetto è il nome di un utente del database.
- Se il tipo di oggetto è
Utente: una persona o un'applicazione che interagisce con Milvus, che consiste in un nome utente e in una password corrispondente.
Privilegio: definisce le azioni che possono essere eseguite e le risorse a cui si può accedere. I privilegi non sono concessi direttamente agli utenti, ma sono assegnati ai ruoli.
Ruolo: definisce l'insieme dei privilegi che un utente ha per determinati oggetti. Una volta che un ruolo è legato a un utente, l'utente eredita tutti i privilegi concessi a quel ruolo.
Esempio: Concessione di privilegi
Il seguente frammento di codice mostra come concedere un privilegio CreateIndex
a un ruolo su una collezione specifica:
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.
)
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);
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.
})
Per ottenere ulteriori informazioni sulle API relative ai privilegi, fare riferimento a grant_privilege e revoke_privilege.
Per ottenere maggiori informazioni sulle API legate ai privilegi, fare riferimento a grantPrivilege e revokePrivilege.
Per ottenere maggiori informazioni sulle API relative ai privilegi, fare riferimento a grantPrivilege e revokePrivilege.
Utenti e ruoli predefiniti
Milvus crea per default un utente root
con una password predefinita Milvus
. All'utente root
vengono concessi i privilegi admin
, il che significa che questo utente root
può avere accesso a tutte le risorse ed eseguire tutte le azioni.
Se un utente è associato al ruolo public
, ha diritto ai seguenti privilegi:
DescribeCollection
ShowCollections
IndexDetail
Elenco dei tipi di oggetto e dei privilegi
La tabella seguente elenca i valori che si possono scegliere quando si abilita RBAC.
Tipo di oggetto | Nome del privilegio | Descrizione dell'API pertinente sul lato client |
---|---|---|
Raccolta | CreaIndex | CreaIndex |
Raccolta | Indice di caduta | Indice di caduta |
Raccolta | IndiceDettaglio | DescribeIndex/GetIndexState/GetIndexBuildProgress |
Raccolta | Carico | LoadCollection/GetLoadingProgress/GetLoadState |
Raccolta | OttenereCaricamentoProgresso | Ottenere l'avanzamento del caricamento |
Raccolta | Stato di caricamento | Ottieni stato di carico |
Raccolta | Rilascio | RilascioCollezione |
Raccolta | Inserire | Inserire |
Raccolta | Cancellare | Cancellare |
Raccolta | Upsert | Inserisci |
Raccolta | Ricerca | Ricerca |
Raccolta | Sciacquare | Flush/GetFlushState |
Raccolta | GetFlushState | Ottenere lo stato di risciacquo |
Raccolta | Domanda | Interrogazione |
Raccolta | OttieniStatistiche | OttenereStatistiche della collezione |
Raccolta | Compattazione | Compatto |
Raccolta | Importazione | Inserimento/importazione massiva |
Raccolta | Bilanciamento del carico | Bilanciamento del carico |
Raccolta | CreaPartizione | CreaPartizione |
Raccolta | Partizione di caduta | Partizione di caduta |
Raccolta | MostraPartizioni | MostraPartizioni |
Collezione | HaPartizione | HaPartizione |
Globale | Tutti | Tutti i permessi delle operazioni API in questa tabella |
Globale | CreaCollezione | CreaCollezione |
Globale | Raccogliere | Raccolta di gocce |
Globale | DescriviCollezione | DescriviCollezione |
Globale | Mostra Collezioni | Mostra Collezioni |
Globale | RinominaCollezione | RinominaCollezione |
Globale | ArrossisciTutti | SciacquareTutti |
Globale | CreaProprietà | CreaUtente CreaRuolo |
Globale | EliminaProprietà | EliminaCredenziale EliminaRuolo |
Globale | SelezionaProprietà | SelezionaRuolo/SelezionaGrant |
Globale | GestisciProprietà | Gestire il ruolo dell'utente Gestire il privilegio |
Globale | CreaGruppoRisorse | CreaGruppoRisorse |
Globale | Abbandona il gruppo di risorse | Gruppo di risorse da sganciare |
Globale | Descrivere il gruppo di risorse | DescriviGruppoRisorse |
Globale | Elenco dei gruppi di risorse | ElencoGruppi di risorse |
Globale | Nodo di trasferimento | Nodo di trasferimento |
Globale | TransferReplica | Replica di trasferimento |
Globale | CreaDatabase | CreaDatabase |
Globale | Rilasciare il database | DropDatabase |
Globale | ElencoDatabase | ElencoDatabase |
Globale | CreaAlias | CreaAlias |
Globale | EliminaLias | LasciaLias |
Globale | DescriviAlias | DescriviAlias |
Globale | ElencoAlias | ElencoClienti |
Utente | AggiornaUtente | AggiornaCredenziale |
Utente | SelezionaUtente | SelezionaUtente |
Cosa fare dopo
- Imparare ad abilitare RBAC.