🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
Casa
  • Guida all'amministrazione

Creare utenti e ruoli

Milvus consente di ottenere un controllo degli accessi a grana fine tramite RBAC. È possibile iniziare creando utenti e ruoli, quindi assegnare privilegi o gruppi di privilegi ai ruoli e infine gestire il controllo degli accessi assegnando ruoli agli utenti. Questo metodo garantisce l'efficienza e la sicurezza della gestione degli accessi. Questa pagina illustra come creare utenti e ruoli in Milvus.

Utente

Dopo l'inizializzazione di un'istanza Milvus, viene generato automaticamente un utente root per l'autenticazione quando ci si connette a Milvus per la prima volta. Il nome utente dell'utente root è root e la password è Milvus. Il ruolo predefinito dell'utente root è admin, che ha accesso a tutte le risorse. Per garantire la sicurezza dei dati, si consiglia di conservare le credenziali dell'utente root per evitare accessi non autorizzati.

Per le operazioni quotidiane, si consiglia di creare degli utenti invece di utilizzare l'utente root.

Creare un utente

L'esempio seguente mostra come creare un utente con il nome utente user_1 e la password P@ssw0rd. Il nome utente e la password dell'utente devono seguire queste regole.

  • Nome utente: deve iniziare con una lettera e può includere solo lettere maiuscole o minuscole, numeri e trattini bassi.

  • Password: deve essere composta da 8-64 caratteri e deve includere tre dei seguenti: lettere maiuscole, lettere minuscole, numeri e caratteri speciali.

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

client.create_user(user_name="user_1", password="P@ssw0rd")

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.rbac.request.CreateUserReq;

ConnectConfig connectConfig = ConnectConfig.builder()
        .uri("http://localhost:19530")
        .token("root:Milvus")
        .build();
        
MilvusClientV2 client = new MilvusClientV2(connectConfig);

CreateUserReq createUserReq = CreateUserReq.builder()
        .userName("user_1")
        .password("P@ssw0rd")
        .build();
        
client.createUser(createUserReq);

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.createUser({
   username: 'user_1',
   password: 'P@ssw0rd',
 });

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "userName": "user_1",
    "password": "P@ssw0rd"
}'

Aggiornamento della password

Dopo aver creato un utente, è possibile aggiornare la password in caso di dimenticanza.

La nuova password deve seguire la seguente regola.

  • Deve avere una lunghezza compresa tra 8 e 64 caratteri e includere tre dei seguenti elementi: lettere maiuscole, lettere minuscole, numeri e caratteri speciali.

L'esempio seguente mostra come aggiornare la password dell'utente user_1 in NewP@ssw0rd.

from pymilvus import MilvusClient

client.update_password(
    user_name="user_1",
    old_password="P@ssw0rd",
    new_password="NewP@ssw0rd"
)

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

UpdatePasswordReq updatePasswordReq = UpdatePasswordReq.builder()
        .userName("user_1")
        .password("P@ssw0rd")
        .newPassword("NewP@ssw0rd")
        .build();
client.updatePassword(updatePasswordReq);

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.updateUser({
   username: 'user_1',
   newPassword: 'P@ssw0rd',
   oldPassword: 'NewP@ssw0rd',
});

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/update_password" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "newPassword": "P@ssw0rd!",
    "userName": "user_1",
    "password": "P@ssw0rd"
}'

Elenco degli utenti

Dopo aver creato diversi utenti, è possibile elencare e visualizzare tutti gli utenti esistenti.

from pymilvus import MilvusClient

client.list_users()

List<String> resp = client.listUsers();

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.listUsers();

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

Di seguito è riportato un esempio di output. root è l'utente predefinito generato automaticamente in Milvus. user_1 è il nuovo utente appena creato.

['root', 'user_1']

Ruolo

Milvus fornisce un ruolo integrato chiamato admin, che è un ruolo di amministratore che può accedere alle risorse di tutte le istanze e ha privilegi per tutte le operazioni. Per una gestione più precisa degli accessi e una maggiore sicurezza dei dati, si consiglia di creare ruoli personalizzati in base alle proprie esigenze.

Creare un ruolo

L'esempio seguente mostra come creare un ruolo chiamato role_a.

Il nome del ruolo deve seguire la seguente regola.

  • Deve iniziare con una lettera e può includere solo lettere maiuscole o minuscole, numeri e trattini bassi".
from pymilvus import MilvusClient

client.create_role(role_name="role_a")
import io.milvus.v2.service.rbac.request.CreateRoleReq;

CreateRoleReq createRoleReq = CreateRoleReq.builder()
        .roleName("role_a")
        .build();
       

client.createRole(createRoleReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.createRole({
   roleName: 'role_a',
});

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

Elenco dei ruoli

Dopo aver creato diversi ruoli, è possibile elencare e visualizzare tutti i ruoli esistenti.

from pymilvus import MilvusClient

client.list_roles()

List<String> roles = client.listRoles();

const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.listRoles(
    includeUserInfo: True
);

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

Di seguito è riportato un esempio di output. admin è il ruolo predefinito in Milvus. role_a è il nuovo ruolo appena creato.

['admin', 'role_a']

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?