Utilize GRANT para atribuir permissões a um usuário em um recurso específico, como uma tabela, um banco de dados ou todo o cluster.
Engines compatíveis
O comando GRANT é suportado em todas as versões do LindormTable e LindormTSDB.
Pré-requisitos
Antes de começar, verifique se você possui:
As permissões necessárias para executar uma instrução
GRANT. Para mais detalhes, consulte Gerenciamento de usuários e permissões
Sintaxe
grant_permission_statement ::= GRANT privilege_definition ON resource_definition TO user_identifier
privilege_definition ::= ALL | READ | WRITE | ADMIN | TRASH | SYSTEM
resource_definition ::= GLOBAL | DATABASE identifier | SCHEMA identifier | TABLE identifier
Parâmetros
Permissões (privilege_definition)
|
Permissão |
Descrição |
|
ALL ou ALL PRIVILEGE |
Concede todas as permissões sobre o recurso, incluindo READ, WRITE, ADMIN e TRASH. |
|
READ |
Permite leitura no recurso. |
|
WRITE |
Autoriza escrita no recurso. |
|
ADMIN |
Habilita permissões de administrador no recurso. |
|
TRASH |
Libera permissão de exclusão no recurso. |
|
SYSTEM |
Fornece permissões de gerenciamento de cluster. Inclui ADMIN no nível GLOBAL. |
Comportamento de ADMIN e SYSTEM:
A permissão ADMIN é independente de READ e WRITE. Um usuário com ADMIN em um banco de dados não consegue ler ou escrever automaticamente em suas tabelas; conceda READ ou WRITE nessas tabelas explicitamente.
Não é possível conceder SYSTEM em um banco de dados específico, pois ela se aplica apenas ao nível GLOBAL.
Níveis de recurso (resource_definition)
Os níveis de recurso seguem uma hierarquia de escopo: GLOBAL > DATABASE (SCHEMA) > TABLE. Uma permissão concedida em um nível superior abrange todos os recursos abaixo dele. Por exemplo, READ no nível GLOBAL permite que o usuário leia qualquer tabela em todos os bancos de dados.
|
Nível de recurso |
LindormTable |
LindormTSDB |
Descrição |
|
GLOBAL |
Suportado |
Suportado |
Aplica permissões em todos os bancos de dados e tabelas. |
|
DATABASE |
Suportado |
Suportado |
Define permissões em um banco de dados específico. Equivalente a SCHEMA. |
|
TABLE |
Suportado |
Não suportado |
Estabelece permissões em uma tabela específica. Indisponível no LindormTSDB. |
Recomendamos não conceder permissões, especialmente ALL PRIVILEGE, em recursos de nível GLOBAL.
DATABASE vs. SCHEMA: O LindormTable 2.5.3.3 e versões posteriores suportam a palavra-chave DATABASE. Versões anteriores aceitam apenas SCHEMA. Ambas as palavras-chave referem-se ao mesmo recurso e são intercambiáveis.
Ao especificar DATABASE, SCHEMA ou TABLE, inclua o identificador:
DATABASE defaultouSCHEMA default— consulte o banco de dados chamadodefaultTABLE test— indica a tabela chamadatestTABLE db2.table2— aponta para a tabelatable2no banco de dadosdb2
Usuário (user_identifier)
Identifica o usuário que receberá as permissões.
Exemplos
Conceder todas as permissões em um banco de dados
Para permitir que user1 realize qualquer operação em db1:
GRANT ALL ON DATABASE db1 TO user1;
-- or, for LindormTable versions earlier than 2.5.3.3:
GRANT ALL ON SCHEMA db1 TO user1;
Conceder permissões específicas em uma tabela
Para tornar user2 administrador de table2 em db2 (sem conceder acesso de leitura ou escrita):
GRANT ADMIN ON TABLE db2.table2 TO user2;
Para habilitar user3 a gravar em table3 no banco de dados atual:
GRANT WRITE ON TABLE table3 TO user3;
Conceder uma permissão no nível global
Para autorizar user4 a ler todas as tabelas em todos os bancos de dados:
GRANT READ ON GLOBAL TO user4;