Todos os produtos
Search
Central de documentação

Hologres:Modelos de permissão do Hologres

Última atualização: Jun 28, 2026

O Hologres autentica usuários no nível da instância e autoriza o acesso no nível do banco de dados. Escolha entre três modelos de permissão — PostgreSQL padrão, SPM ou SLPM — para conceder permissões de desenvolvimento.

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 o inclui ou remove 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 superadministrador 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 a sintaxe de autorização do PostgreSQL é 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 no nível de tabela.

Granularidade fina e flexível, mas com sintaxe de autorização complexa. Para mais informações sobre como conceder permissões, consulte Modelo de permissão especialista.

Simple Permission Model (SPM)

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

Funções pré-configuradas 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. Modelo de permissão simples.

Schema-level Permission Model (SLPM)

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

Funções pré-configuradas no nível de schema com permissões fixas por grupo de usuários. Oferece maior granularidade que o SPM. Usar o modelo de permissão simples no nível de schema.

Conceder permissões

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

Nota

Superadministradores possuem todas as permissões abaixo por padrão.

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 e SELECT no schema correspondente

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 e a permissão DML relevante (INSERT/UPDATE/DELETE/TRUNCATE) no schema correspondente

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 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 do superusuário ou dos grupos de usuários admin ou developer

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

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

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

SELECT

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

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

Permissões do superusuário ou dos grupos de usuários admin, developer, writer ou 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 do superusuário ou dos grupos de usuários admin, developer ou writer

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

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

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

ALTER TABLE

Permissões do superusuário ou dos grupos de usuários admin ou developer

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

Permissões do superusuário ou dos grupos de usuários admin ou 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');