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

milvus-logo
LFAI
Home

Conceder privilegios o grupos de privilegios a roles

Una vez creado un rol, puede concederle privilegios. Esta guía explica cómo conceder privilegios o grupos de privilegios a un rol.

Conceder un privilegio o un grupo de privilegios a un rol

Milvus 2.5 introduce una nueva versión de la API que agiliza la operación de concesión. Ya no es necesario buscar el tipo de objeto cuando se concede un privilegio a un rol. A continuación se indican los parámetros y las explicaciones correspondientes.

  • role_name: El nombre del rol de destino al que deben concederse privilegios o grupos de privilegios.

  • Recurso: El recurso de destino de un privilegio, que puede ser una instancia, base de datos o colección específica. La siguiente tabla explica cómo especificar el recurso en el método client.grantV2().

Nivel

Recurso

Método de concesión

Notas

Colección

Una colección específica

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

Introduzca el nombre de la colección de destino y el nombre de la base de datos a la que pertenece la colección de destino.

Todas las colecciones bajo una base de datos específica

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

Introduzca el nombre de la base de datos de destino y un comodín `*` como nombre de la colección.

**Base de datos

Una base de datos específica

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

Introduzca el nombre de la base de datos de destino y un comodín `*` como nombre de la colección.

Todas las bases de datos de la instancia actual

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

Introduzca `*` como nombre de la base de datos y `*` como nombre de la colección.

**Instancia**

La instancia actual

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

Introduzca `*` como nombre de la base de datos y `*` como nombre de la colección.

  • Privilegio: El privilegio específico o grupo de privilegios que necesita otorgar a un rol. Actualmente, Milvus proporciona 56 tipos de privilegios que puede conceder. La siguiente tabla enumera los privilegios en Milvus.

    La columna de tipo en la tabla de abajo es de usuario para facilitar su búsqueda rápida de privilegios y se utiliza sólo con fines de clasificación. Cuando conceda privilegios, no necesita entender los tipos. Sólo tiene que introducir los privilegios correspondientes.

**Tipo

**Privilegio

**Descripción

**Descripción de la API correspondiente en el lado del cliente.

Privilegios de base de datos

ListDatabases

Ver todas las bases de datos de la instancia actual

[Lista de bases de datos](https://milvus.io/docs/manage_databases.md)

DescribirBaseDeDatos

Ver los detalles de una base de datos

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

CrearBaseDeDatos

Crear una base de datos

[Crear base de datos](https://milvus.io/docs/manage_databases.md)

SoltarBaseDeDatos

Eliminar una base de datos

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

AlterDatabase

Modificar las propiedades de una base de datos

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

Privilegios de recopilación

GetFlushState

Comprobar el estado de la operación de vaciado de colecciones

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

GetLoadState

Comprueba el estado de carga de una colección

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

GetLoadingProgress

Comprueba el progreso de carga de una colección

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

MostrarColecciones

Ver todas las colecciones con privilegios de colección

[Mostrar colecciones](https://milvus.io/docs/view-collections.md)

ListAliases

Ver todos los alias de una colección

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

DescribirColección

Ver los detalles de una colección

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

DescribirAlias

Ver los detalles de un alias

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

ObtenerEstadísticas

Obtener las estadísticas de una colección (por ejemplo, el número de entidades de una colección)

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

CrearColección

Crear una colección

[CrearColección](https://milvus.io/docs/create-collection.md)

SoltarColección

Soltar una colección

[Soltar colección](https://milvus.io/docs/drop-collection.md)

Cargar

Cargar una colección

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

Liberar

Liberar una colección

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

Tirar de la cadena

Persiste todas las entidades de una colección en un segmento sellado. Cualquier entidad insertada después de la operación de vaciado se almacenará en un nuevo 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)

Compactación

Activación manual de la compactación

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

RenombrarColección

Renombrar una colección

[RenombrarColección](https://milvus.io/docs/modify-collection.md)

CrearAlias

Crear un alias para una colección

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

SoltarAlias

Eliminar el alias de una colección

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

VaciarTodas

Vaciar todas las colecciones de una base de datos

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

Privilegios de partición

TienePartición

Comprobar si existe una partición

[TienePartición](https://milvus.io/docs/manage-partitions.md)

MostrarParticiones

Ver todas las particiones de una colección

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

CrearPartición

Crear una partición

[CrearPartición](https://milvus.io/docs/manage-partitions.md)

SoltarPartición

Soltar una partición

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

Privilegios de índice

Detalle del índice

Ver los detalles de un índice

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

CrearÍndice

Crear un índice

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

Soltar índice [DropIndex]()

Elimina un índice

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

Privilegios de gestión de recursos

Equilibrio de carga

Lograr el equilibrio de carga

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

CrearGrupoDeRecursos

Crear un grupo de recursos

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

SoltarGrupoDeRecursos

Eliminar un grupo de recursos

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

ActualizarGrupoDeRecursos

Actualizar un grupo de recursos

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

DescribirGrupoDeRecursos

Ver los detalles de un grupo de recursos

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

ListResourceGroups

Ver todos los grupos de recursos de la instancia actual

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

TransferNode

Transferir nodos entre grupos de recursos

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

TransferReplica

Transferir réplicas entre grupos de recursos

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

CopiaRBAC

Crear una copia de seguridad de todas las operaciones relacionadas con RBAC en la instancia actual

BackupRBAC

RestaurarRBAC

Restaurar una copia de seguridad de todas las operaciones relacionadas con RBAC en la instancia actual

RestaurarRBAC

Privilegios de entidad

Consultar

Realizar una consulta

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

Búsqueda

Realizar una búsqueda

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

Insertar

Insertar entidades

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

Borrar

Borrar entidades

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

Subir

Insertar entidades

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

Importar

Insertar o importar entidades en bloque

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

Privilegios RBAC

CrearPropiedad

Crear un usuario o un rol

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

ActualizarUsuario

Actualizar la contraseña de un usuario

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

EliminarPropiedad

Dar de baja la contraseña de un usuario o un rol

[BorrarCredencial/SuprimirRol](https://zilliverse.feishu.cn/wiki/OqZnwJHrJilLPukfvp5cSgnmnTh)

SeleccionarPropiedad

Ver todos los usuarios a los que se ha concedido una función específica

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

GestionarPropiedad

Gestionar un usuario o un rol o conceder un rol a un usuario

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

SeleccionarUsuario

Ver todos los roles concedidos a un usuario

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

CrearGrupoDePrivilegios

Crear un grupo de privilegios

[Crear grupo de privilegios](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

DeshacerGrupoDePrivilegios

Eliminar un grupo de privilegios

[Grupo de privilegios](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

ListarGrupoDePrivilegios

Ver todos los grupos de privilegios de la instancia actual

[Lista de grupos de privilegios](https://zilliverse.feishu.cn/wiki/FpV8wdWcZiDwnQkBloucYF7wnUg)

OperarGrupoDePrivilegios

Añadir o eliminar privilegios de un grupo de privilegios

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

El siguiente ejemplo demuestra cómo conceder el privilegio PrivilegeSearch en collection_01 bajo la base de datos por defecto, así como un grupo de privilegios llamado privilege_group_1 al rol 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":"*"
}'

Describir un rol

El siguiente ejemplo muestra cómo ver los privilegios otorgados al rol role_a utilizando el método 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"
}'

A continuación se muestra un ejemplo de salida.

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

Revocar un privilegio o un grupo de privilegios de un rol

El siguiente ejemplo demuestra cómo revocar el privilegio PrivilegeSearch en collection_01 bajo la base de datos por defecto así como el grupo de privilegios privilege_group_1 que han sido concedidos al rol 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

¿Fue útil esta página?