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

milvus-logo
LFAI
Home
  • Guía de administración

Crear usuarios y roles

Milvus logra un control de acceso de grano fino a través de RBAC. Puede empezar creando usuarios y roles, luego asignar privilegios o grupos de privilegios a los roles, y finalmente gestionar el control de acceso concediendo roles a los usuarios. Este método garantiza la eficacia y la seguridad de la gestión de accesos. Esta página presenta cómo crear usuarios y roles en Milvus.

Usuario

Después de inicializar una instancia de Milvus, se genera automáticamente un usuario raíz para la autenticación cuando se conecta a Milvus por primera vez. El nombre de usuario del usuario raíz es root y la contraseña es Milvus. El rol por defecto del usuario raíz es admin, que tiene acceso a todos los recursos. Para garantizar la seguridad de los datos, mantenga a salvo las credenciales del usuario raíz para evitar accesos no autorizados.

Para las operaciones diarias, recomendamos crear usuarios en lugar de utilizar el usuario root.

Crear un usuario

El siguiente ejemplo muestra cómo crear un usuario con el nombre de usuario user_1 y la contraseña P@ssw0rd. El nombre de usuario y la contraseña del usuario deben seguir las siguientes reglas.

  • Nombre de usuario: debe empezar por una letra y sólo puede incluir letras mayúsculas o minúsculas, números y guiones bajos.

  • Contraseña: Debe tener entre 8 y 64 caracteres y debe incluir tres de los siguientes: letras mayúsculas, letras minúsculas, números y caracteres especiales.

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

Actualizar contraseña

Después de crear un usuario, puede actualizar la contraseña si la olvida.

La nueva contraseña también debe seguir la siguiente regla.

  • Debe tener entre 8 y 64 caracteres e incluir tres de los siguientes: letras mayúsculas, letras minúsculas, números y caracteres especiales.

El siguiente ejemplo muestra cómo actualizar la contraseña del usuario user_1 a 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"
}'

Listar usuarios

Después de crear varios usuarios, puedes listar y ver todos los usuarios existentes.

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

A continuación se muestra un ejemplo de salida. root es el usuario por defecto generado automáticamente en Milvus. user_1 es el nuevo usuario que se acaba de crear.

['root', 'user_1']

Rol

Milvus proporciona un rol incorporado llamado admin, que es un rol de administrador que puede acceder a recursos bajo todas las instancias y tiene privilegios para todas las operaciones. Para una gestión de acceso más detallada y una mayor seguridad de los datos, se recomienda crear roles personalizados en función de sus necesidades.

Creación de un rol

El siguiente ejemplo muestra cómo crear un rol denominado role_a.

El nombre del rol debe seguir la siguiente regla

  • Debe empezar por una letra y sólo puede incluir letras mayúsculas o minúsculas, números y guiones bajos."
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"
}'

Listar roles

Después de crear varios roles, puedes listar y ver todos los roles existentes.

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

A continuación se muestra un ejemplo de salida. admin es el rol por defecto en Milvus. role_a es el nuevo rol que se acaba de crear.

['admin', 'role_a']

Traducido porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?