Utilizadores, privilégios e funções
Este tópico fornece uma visão geral do Controle de Acesso Baseado em Função (RBAC) em Milvus, detalhando as definições e relações entre usuários, funções, objetos e privilégios.
A figura a seguir ilustra a relação entre objetos, privilégios, funções e usuários.
utilizadores_e_papéis
Conceitos-chave
Para gerir o controlo de acesso aos recursos Milvus, é importante compreender os principais componentes do RBAC: tipos de objectos, nomes de objectos, utilizadores, funções e privilégios.
Tipo de objeto: a categoria do objeto ao qual está a ser atribuído um privilégio. O tipo de objeto pode ser:
Global: Objectos de todo o sistema, permitindo ao utilizador executar acções que afectam todas as colecções, utilizadores ou definições de todo o sistema.Collection: Objectos específicos da coleção, que permitem ao utilizador executar acções como criar índices, carregar dados, inserir ou eliminar dados e consultar dados dentro de uma coleção específica.User: Objectos relacionados com a gestão de utilizadores, que permitem ao utilizador gerir credenciais e funções para utilizadores da base de dados, tais como atualizar credenciais de utilizador ou visualizar detalhes do utilizador.
Nome do objeto: o nome específico do objeto para o qual se pretende controlar o acesso. Por exemplo:
- Se o tipo de objeto for
Global, o nome do objeto deve ser definido como curinga (*), indicando todos os objetos do tipo especificado. - Se o tipo de objeto for
Collection, o nome do objeto é o nome de uma coleção. - Se o tipo de objeto for
User, o nome do objeto é o nome de um utilizador da base de dados.
- Se o tipo de objeto for
Utilizador: uma pessoa ou uma aplicação que interage com o Milvus, que consiste num nome de utilizador e numa palavra-passe correspondente.
Privilégio: define as acções que podem ser executadas e os recursos a que se pode aceder. Os privilégios não são concedidos diretamente aos utilizadores, mas são atribuídos a funções.
Função: define o conjunto de privilégios que um utilizador tem para determinados objectos. Quando uma função está associada a um utilizador, este herda todos os privilégios concedidos a essa função.
Exemplo: Concessão de privilégios
O seguinte trecho de código mostra como conceder um privilégio CreateIndex a uma função numa coleção específica:
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.
})
Para obter mais informações sobre APIs relacionadas a privilégios, consulte grant_privilege e revoke_privilege.
Para obter mais informações sobre APIs relacionadas a privilégios, consulte grantPrivilege e revokePrivilege.
Para obter mais informações sobre APIs relacionadas com privilégios, consulte grantPrivilege e revokePrivilege.
Utilizadores e funções predefinidos
Por predefinição, o Milvus cria um utilizador root com uma palavra-passe predefinida Milvus. Ao utilizador root são concedidos os privilégios admin, o que significa que este utilizador root pode ter acesso a todos os recursos e executar todas as acções.
Se um utilizador estiver associado à função public, tem direito aos seguintes privilégios:
DescribeCollectionShowCollectionsIndexDetail
Lista de tipos de objectos e privilégios
A tabela seguinte lista os valores que pode escolher ao ativar o RBAC.
| Tipo de objeto | Nome do privilégio | Descrição da API relevante no lado do cliente |
|---|---|---|
| Coleção | CriarIndex | Criar índice |
| Coleção | DropIndex | Índice de gotas |
| Coleção | Detalhes do índice | DescreverIndex/GetIndexState/GetIndexBuildProgress |
| Coleção | Carregar | LoadCollection/GetLoadingProgress/GetLoadState |
| Coleção | GetLoadingProgress | ObterProgresso de Carregamento |
| Coleção | GetLoadState | ObterEstado de Carga |
| Coleção | Libertação | ReleaseCollection |
| Coleção | Inserir | Inserir |
| Coleção | Eliminar | Eliminar |
| Coleção | Upsert | Inserir |
| Coleção | Pesquisar | Pesquisar |
| Coleção | Descarga | Descarga/GetFlushState |
| Coleção | GetFlushState | ObterFlushState |
| Coleção | Consulta | Consulta |
| Coleção | ObterEstatísticas | Obter estatísticas da coleção |
| Coleção | Compactação | Compactar |
| Coleção | Importar | Inserção/Importação em massa |
| Coleção | Balanceamento de carga | LoadBalance |
| Coleção | CriarPartição | CriarPartição |
| Coleção | DropPartition | DropPartition |
| Coleção | MostrarPartições | ShowPartitions |
| Coleção | TemPartição | TemPartição |
| Global | Todas | Todas as permissões de operação da API nesta tabela |
| Global | Criar coleção | Criar coleção |
| Global | DropCollection | Coleção de gotas |
| Global | Descrever coleção | DescreverColeção |
| Global | Mostrar colecções | Mostrar colecções |
| Global | Renomear coleção | Renomear coleção |
| Global | FlushAll | FlushAll |
| Global | CriarPropriedade | CriarUsuário CriarFunção |
| Global | DropOwnership | DeleteCredential DropRole |
| Global | SelectOwnership | SelectRole/SelectGrant |
| Global | ManageOwnership | OperateUserRole OperatePrivilege |
| Global | CreateResourceGroup (criar grupo de recursos) | CriarGrupo de Recursos |
| Global | DropResourceGroup | DropResourceGroup |
| Global | DescreverResourceGroup | DescreverGrupo de Recursos |
| Global | ListResourceGroups | Listar grupos de recursos |
| Global | TransferNode | Nó de transferência |
| Global | TransferReplica | TransferReplica |
| Global | CriarBaseDeDados | CriarBaseDeDados |
| Global | DropDatabase | DropDatabase |
| Global | Listar bases de dados | ListDatabases |
| Global | CriarAlias | CriarAlias |
| Global | DropAlias | DropAlias |
| Global | DescreverAlias | DescreverAlias |
| Global | ListAliases | ListAliases |
| Utilizador | UpdateUser | ActualizarCredencial |
| Utilizador | SelectUser | SelectUser |
O que se segue
- Saiba como habilitar o RBAC.