🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
Home

Crear grupo de privilegios

Para agilizar el proceso de concesión de privilegios, se recomienda combinar varios privilegios en un grupo de privilegios.

Grupo de privilegios frente a privilegios

Un grupo de privilegios está formado por varios privilegios.

Privilege group illustrated Ilustración de un grupo de privilegios

Como se muestra en la figura anterior, supongamos que necesita conceder tres privilegios diferentes a un rol.

  • Si no utiliza un grupo de privilegios, tendrá que conceder los privilegios tres veces.

  • Si utiliza un grupo de privilegios, sólo tiene que crear un grupo de privilegios y añadir los tres privilegios a este grupo de privilegios y conceder el grupo de privilegios al rol A.

Al utilizar un grupo de privilegios, puede conceder varios privilegios en bloque a un rol.

Grupos de privilegios incorporados

Para facilitar su uso, Milvus proporciona un total de 9 privilegios incorporados a nivel de colección, base de datos e instancia: COLL_RO, COLL_RW, COLL_ADMIN, DB_RO, DB_RW, DB_Admin, Cluster_RO, Cluster_RW y Cluster_Admin.

Los tres niveles de grupos de privilegios incorporados no tienen una relación en cascada. Establecer un grupo de privilegios a nivel de instancia no establece automáticamente permisos para todas las bases de datos y colecciones bajo esa instancia. Los privilegios en los niveles de base de datos y colección deben establecerse manualmente.

En las tablas siguientes se explican los privilegios incluidos en cada uno de los grupos de privilegios incorporados.

Nivel de colección

  • COLL_RO: incluye privilegios para leer datos de recopilación

  • COLL_RW: incluye privilegios para leer y escribir datos de recopilación

  • COLL_ADMIN: incluye privilegios para leer y escribir datos de colecciones y gestionar colecciones.

La siguiente tabla enumera los privilegios específicos incluidos en los tres grupos de privilegios incorporados en el nivel de recopilación.

**Privilegio**

**ColecciónSóloLectura

**ColecciónLecturaEscritura

**Administrador de colecciones

Consulta

✔️

✔️

✔️

Búsqueda

✔️

✔️

✔️

ÍndiceDetalle

✔️

✔️

✔️

GetFlushState

✔️

✔️

✔️

GetLoadState

✔️

✔️

✔️

GetLoadingProgress

✔️

✔️

✔️

HasPartition

✔️

✔️

✔️

MostrarParticiones

✔️

✔️

✔️

ListAliases

✔️

✔️

✔️

DescribirColección

✔️

✔️

✔️

DescribeAlias

✔️

✔️

✔️

ObtenerEstadísticas

✔️

✔️

✔️

Crearíndice

✔️

✔️

DropIndex

✔️

✔️

CrearPartición

✔️

✔️

DropPartition

✔️

✔️

Cargar

✔️

✔️

Liberar

✔️

✔️

Insertar

✔️

✔️

Borrar

✔️

✔️

Subir

✔️

✔️

Importar

✔️

✔️

Descarga

✔️

✔️

Compactación

✔️

✔️

Balance de carga

✔️

✔️

CrearAlias

✔️

DropAlias

✔️

Nivel de base de datos

  • DB_RO: incluye privilegios para leer datos de la base de datos

  • DB_RW: incluye privilegios para leer y escribir datos de bases de datos

  • DB_Admin: incluye privilegios para leer y escribir datos de bases de datos y gestionar bases de datos.

La siguiente tabla enumera los privilegios específicos incluidos en los tres grupos de privilegios incorporados a nivel de base de datos.

**Privilegio**

**Sólo lectura de basede datos

**Base de datosLecturaEscritura

**Administrador de base de datos

MostrarColecciones

✔️

✔️

✔️

DescribirBaseDeDatos

✔️

✔️

✔️

CrearColección

✔️

SoltarColección

✔️

AlterDatabase

✔️

✔️

Nivel de cluster

  • Cluster_RO: incluye privilegios para leer datos de instancias

  • Cluster_RW: incluye privilegios para leer y escribir datos de instancia

  • Cluster_Admin: incluye privilegios para leer y escribir datos de instancia y gestionar instancias.

La siguiente tabla enumera los privilegios específicos incluidos en los tres grupos de privilegios incorporados a nivel de instancia.

**Privilegio**

**Sólo lectura de clúster

**ClusterReadWrite

**Administrador de clústeres

ListDatabases

✔️

✔️

✔️

RenombrarColección

✔️

CrearPropiedad

✔️

ActualizarUsuario

✔️

DropOwnership

✔️

SeleccionarPropiedad

✔️

✔️

✔️

GestionarPropiedad

✔️

SeleccionarUsuario

✔️

✔️

✔️

BackupRBAC

✔️

RestaurarRBAC

✔️

CrearResourceGroup

✔️

DropResourceGroup

✔️

ActualizarResourceGroups

✔️

✔️

DescribeResourceGroup

✔️

✔️

✔️

ListResourceGroups

✔️

✔️

✔️

TransferNode

✔️

✔️

TransferReplica

✔️

✔️

CrearBaseDeDatos

✔️

DropDatabase

✔️

FlushAll

✔️

✔️

CrearGrupoDePrivilegios

✔️

DropPrivilegeGroup

✔️

ListPrivilegeGroups

✔️

OperatePrivilegeGroup

✔️

Procedimientos

Puede crear un grupo de privilegios y, a continuación, añadir privilegios al grupo de privilegios.

Creación de un grupo de privilegios

El siguiente ejemplo muestra cómo crear un grupo de privilegios denominado 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"
}'

Adición de privilegios a un grupo de privilegios

El siguiente ejemplo muestra cómo añadir los privilegios PrivilegeBackupRBAC y PrivilegeRestoreRBAC al grupo de privilegios privilege_group_1 que se acaba de crear.

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

Eliminar privilegios de un grupo de privilegios

El siguiente ejemplo muestra cómo eliminar el privilegio PrivilegeRestoreRBAC del grupo de privilegios 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"]
}'

Listar grupos de privilegios

El siguiente ejemplo muestra cómo listar todos los grupos de privilegios existentes.

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

A continuación se muestra un ejemplo de salida.

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

Eliminar un grupo de privilegios

El siguiente ejemplo muestra cómo eliminar el grupo de privilegios 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

¿Fue útil esta página?