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:
DescribeCollection
ShowCollections
IndexDetail
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.