Todos os produtos
Search
Central de documentação

Hologres:Introdução aos modelos de permissão do Hologres

Última atualização: Aug 22, 2026

Este tópico descreve como o Hologres autentica usuários e apresenta os três modelos de permissão disponíveis para conceder privilégios de desenvolvimento: o modelo padrão do PostgreSQL, o SPM e o SLPM.

Fluxo de autenticação do Hologres

A figura a seguir ilustra o fluxo completo de autenticação:Hologres authentication flow

Usuários

Para que uma conta Alibaba Cloud acesse o Hologres, um administrador deve executar create user "xxx" e registrá-la como usuário do Hologres. Caso contrário, o sistema retorna o erro role "xxx" does not exist. Os usuários existem no nível da instância. Adicionar ou excluir um usuário inclui ou remove esse usuário da instância. Operações como criação de tabelas exigem permissões no nível do banco de dados, concedidas dentro de um banco específico e não aplicáveis entre bancos diferentes.

Nota

Execute select * from pg_user; para visualizar o superusuário da instância atual.

Modelos de permissão

O Hologres é compatível com o PostgreSQL 11 e suporta a autorização padrão do PostgreSQL (modelo especialista). Como as permissões do PostgreSQL são granulares e sua sintaxe de autorização é complexa, o Hologres também oferece dois modelos simplificados: o Simple Permission Model (SPM) e o Schema-level Permission Model (SLPM).

A tabela a seguir compara os três modelos.

Modelo de permissão

Cenários

Descrição

Modelo de autorização padrão do PostgreSQL (modelo especialista)

Controle de acesso rigoroso, chegando ao nível de um usuário específico em uma tabela específica.

Oferece granularidade e flexibilidade, mas apresenta sintaxe de autorização complexa. Para mais informações sobre como conceder permissões, consulte Expert permission model.

Simple Permission Model (SPM)

Controle de acesso de granularidade grossa, no nível do banco de dados.

Utiliza funções pré-definidas no nível do banco de dados, com permissões fixas por grupo de usuários. Atende à maioria dos casos de uso com sintaxe mais simples. Para mais informações sobre como conceder permissões, consulte Gerencie permissões usando SPM.

Schema-level Permission Model (SLPM)

Controle de acesso refinado no nível do schema, com autorização simplificada.

Emprega funções pré-definidas no nível do schema, com permissões fixas por grupo de usuários. Oferece maior granularidade que o SPM. Para mais informações sobre como conceder permissões, consulte Gerencie permissões usando SLPM.

Concessão de permissões

As tabelas a seguir listam as permissões necessárias para cada operação no modelo padrão do PostgreSQL e nos modelos simplificados (SPM/SLPM).

Nota

Superusuários possuem, por padrão, todas as permissões listadas abaixo.

Operações no modelo de autorização padrão do PostgreSQL

Permissões necessárias

Comando de autorização

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Conceda a permissão CREATEROLE ao usuário A:

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

CONNECT no banco de dados e CREATE no schema de destino

Conceda a permissão CREATE no schema xx ao usuário A:

GRANT CREATE ON SCHEMA xx TO A;

Por padrão, todos os usuários podem criar tabelas no schema public.

SELECT

USAGE no schema correspondente e SELECT na tabela de destino

Exemplo:

GRANT USAGE ON SCHEMA xx to A;
GRANT SELECT ON TABLE xx TO A;
GRANT SELECT ON ALL TABLES IN SCHEMA xx TO A;

INSERT

UPDATE

DELETE

TRUNCATE

USAGE no schema correspondente e a permissão DML relevante (INSERT/UPDATE/DELETE/TRUNCATE) na tabela de destino

Exemplo:

GRANT USAGE ON SCHEMA xx to A;
GRANT [INSERT/UPDATE/DELETE/TRUNCATE] ON TABLE xx TO A;
GRANT [INSERT/UPDATE/DELETE/TRUNCATE] ON ALL TABLES IN SCHEMA xx TO A;

ALTER TABLE

Proprietário da tabela (alterável via ALTER OWNER)

O comando GRANT não transfere a propriedade da tabela. Execute ALTER TABLE xx OWNER TO A; para alterar o proprietário para A, que poderá então modificar ou excluir a tabela.

DROP TABLE

CREATE DATABASE

CREATEDB

Conceda a permissão CREATEDB ao usuário A:

ALTER USER A CREATEDB;

DROP DATABASE

Proprietário do banco de dados

O comando GRANT não transfere a propriedade do banco de dados. Execute ALTER DATABASE xx OWNER TO A; para alterar o proprietário para A, que poderá então excluir o banco de dados.

CREATE EXTENSION

Proprietário do banco de dados

-

GRANT

REVOKE

Usuário com a permissão relevante e GRANT OPTION

Conceda o GRANT OPTION ao usuário A:

GRANT [Privilege] TO A WITH GRANT OPTION;

Autorização por modelo de permissão

Simple Permission Model (SPM)

Schema-level Permission Model (SLPM)

Operação

Permissões necessárias

Comando de autorização

Permissões necessárias

Comando de autorização

CREATE USER(ROLE)

DROP USER(ROLE)

Administrador do banco de dados

Conceda permissões de administrador a um usuário:

  • Método 1: call spm_grant('<dbname>_admin','A');

  • Método 2: call spm_create_user('A', '<dbname>_admin');

Importante

O SPM não suporta a concessão de permissões a usuários personalizados cujos nomes terminem com admin, developer, writer, viewer ou all_users.

Administrador do banco de dados

Conceda permissões de administrador a um usuário:

  • Método 1: call slpm_grant('<dbname>.<schema>.admin', 'A');

  • Método 2: call slpm_create_user('A', '<dbname>.<schema>.admin');

Importante

O SLPM não suporta a concessão de permissões a usuários personalizados cujos nomes terminem com admin, developer, writer, viewer ou all_users.

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Permissões de superusuário ou dos grupos admin e developer

Conceda permissões de admin ou developer usando os comandos SPM acima.

Permissões de superusuário ou dos grupos admin e developer do schema

Conceda permissões de admin ou developer do schema usando os comandos SLPM acima.

SELECT

Permissões de superusuário ou dos grupos admin, developer, writer e viewer

Conceda permissões de admin, developer, writer ou viewer usando os comandos SPM acima.

Permissões de superusuário ou dos grupos admin, developer, writer e viewer do schema

Conceda permissões de admin, developer, writer ou viewer do schema usando os comandos SLPM acima.

INSERT

UPDATE

DELETE

TRUNCATE

Permissões de superusuário ou dos grupos admin, developer e writer

Conceda permissões de admin, developer ou writer usando os comandos SPM acima.

Permissões de superusuário ou dos grupos admin, developer e writer do schema

Conceda permissões de admin, developer ou writer do schema usando os comandos SLPM acima.

ALTER TABLE

Permissões de superusuário ou dos grupos admin e developer

Conceda permissões de admin ou developer usando os comandos SPM acima.

Permissões de superusuário ou dos grupos admin e developer do schema

Conceda permissões de admin ou developer do schema usando os comandos SLPM acima.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

Administrador do banco de dados

Conceda permissões de admin usando os comandos SPM acima.

Administrador do banco de dados

Conceda permissões de admin do schema usando os comandos SLPM acima.

GRANT

REVOKE

Administrador do banco de dados

Conceda e revogue permissões do usuário A:

call spm_grant('role', 'A');
call spm_revoke('role', 'A');

Administrador do banco de dados

Conceda e revogue permissões do usuário A:

call slpm_grant('role', 'A');
call slpm_revoke('role', 'A');