Todos los productos
Search
Centro de documentos

Hologres:Introducción a los modelos de permisos de Hologres

Última actualización: Sep 05, 2026

Este tema describe cómo Hologres autentica a los usuarios y presenta los tres modelos de permisos que puede usar para otorgar permisos de desarrollo: el modelo estándar de PostgreSQL, SPM y SLPM.

Flujo de autenticación de Hologres

A continuación se muestra el flujo completo de autenticación:Hologres authentication flow

Usuarios

Antes de que una cuenta de Alibaba Cloud pueda acceder a Hologres, un administrador debe ejecutar create user "xxx" para registrarla como usuario de Hologres. De lo contrario, se devuelve el error role "xxx" does not exist. Los usuarios existen en el nivel de instancia. Cuando se agrega o elimina un usuario, este se añade o se quita de la instancia. Las operaciones como crear tablas requieren permisos de base de datos, los cuales se otorgan dentro de una base de datos específica y no se pueden usar entre distintas bases de datos.

Nota

Ejecute select * from pg_user; para consultar el superuser de la instancia actual.

Modelos de permisos

Hologres es compatible con PostgreSQL 11 y admite la autorización estándar de PostgreSQL (el modelo experto). Dado que los permisos de PostgreSQL son muy detallados y su sintaxis de autorización es compleja, Hologres también ofrece dos modelos simplificados: el Simple Permission Model (SPM) y el Schema-level Permission Model (SLPM).

La siguiente tabla compara los tres modelos.

Modelo de permisos

Escenarios

Descripción

Modelo de autorización estándar de PostgreSQL (modelo experto)

Control de acceso estricto, hasta un usuario específico en una tabla específica.

Es detallado y flexible, pero su sintaxis de autorización es compleja. Para más información sobre cómo otorgar permisos, consulte Expert permission model.

Simple Permission Model (SPM)

Control de acceso general, en el nivel de base de datos.

Ofrece roles preconfigurados en el nivel de base de datos con permisos fijos por grupo de usuarios. Cubre la mayoría de los casos de uso con una sintaxis más sencilla. Para más información sobre cómo otorgar permisos, consulte Manage permissions using SPM.

Schema-level Permission Model (SLPM)

Control de acceso detallado en el nivel de esquema, con una autorización simplificada.

Proporciona roles preconfigurados en el nivel de esquema con permisos fijos por grupo de usuarios. Es más detallado que el SPM. Para más información sobre cómo otorgar permisos, consulte Manage permissions using SLPM.

Otorgar permisos

Las siguientes tablas muestran los permisos obligatorios para cada operación bajo el modelo estándar de PostgreSQL y los modelos simplificados (SPM/SLPM).

Nota

Los superusers tienen de forma predeterminada todos los permisos que se describen a continuación.

Operaciones en el modelo de autorización estándar de PostgreSQL

Permisos obligatorios

Instrucción de autorización

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Otorgue el permiso CREATEROLE al usuario A:

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

CONNECT en la base de datos y CREATE en el esquema de destino

Otorgue el permiso CREATE al usuario A en el esquema xx:

GRANT CREATE ON SCHEMA xx TO A;

De forma predeterminada, todos los usuarios pueden crear tablas en el esquema public.

SELECT

USAGE en el esquema correspondiente y SELECT en la tabla de destino

Ejemplo:

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 en el esquema correspondiente y el permiso DML pertinente (INSERT/UPDATE/DELETE/TRUNCATE) en la tabla de destino

Ejemplo:

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

Propietario de la tabla (se puede cambiar mediante ALTER OWNER)

GRANT no puede transferir la propiedad de una tabla. Ejecute ALTER TABLE xx OWNER TO A; para cambiar el propietario a A, quien después podrá modificar o eliminar la tabla.

DROP TABLE

CREATE DATABASE

CREATEDB

Otorgue el permiso CREATEDB al usuario A:

ALTER USER A CREATEDB;

DROP DATABASE

Propietario de la base de datos

GRANT no puede transferir la propiedad de una base de datos. Ejecute ALTER DATABASE xx OWNER TO A; para cambiar el propietario a A, quien después podrá eliminar la base de datos.

CREATE EXTENSION

Propietario de la base de datos

-

GRANT

REVOKE

Un usuario con el permiso correspondiente y GRANT OPTION

Otorgue GRANT OPTION al usuario A:

GRANT [Privilege] TO A WITH GRANT OPTION;

Autorización por modelo de permisos

Simple Permission Model (SPM)

Schema-level Permission Model (SLPM)

Operación

Permisos obligatorios

Instrucción de autorización

Permisos obligatorios

Instrucción de autorización

CREATE USER(ROLE)

DROP USER(ROLE)

DB admin

Otorgue permisos de administrador a un usuario:

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

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

Importante

El SPM no admite otorgar permisos a usuarios personalizados cuyos nombres terminen con admin, developer, writer, viewer o all_users.

DB admin

Otorgue permisos de administrador a un usuario:

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

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

Importante

El SLPM no admite otorgar permisos a usuarios personalizados cuyos nombres terminen con admin, developer, writer, viewer o all_users.

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Permisos del superuser o de los grupos de usuarios admin o developer

Otorgue permisos de admin o developer mediante las instrucciones de SPM anteriores.

Permisos del superuser o de los grupos de usuarios admin o developer del esquema

Otorgue los permisos de admin o developer del esquema mediante las instrucciones de SLPM anteriores.

SELECT

Permisos del superuser o de los grupos de usuarios admin, developer, writer o viewer

Otorgue permisos de admin, developer, writer o viewer mediante las instrucciones de SPM anteriores.

Permisos del superuser o de los grupos de usuarios admin, developer, writer o viewer del esquema

Otorgue los permisos de admin, developer, writer o viewer del esquema mediante las instrucciones de SLPM anteriores.

INSERT

UPDATE

DELETE

TRUNCATE

Permisos del superuser o de los grupos de usuarios admin, developer o writer

Otorgue permisos de admin, developer o writer mediante las instrucciones de SPM anteriores.

Permisos del superuser o de los grupos de usuarios admin, developer o writer del esquema

Otorgue los permisos de admin, developer o writer del esquema mediante las instrucciones de SLPM anteriores.

ALTER TABLE

Permisos del superuser o de los grupos de usuarios admin o developer

Otorgue permisos de admin o developer mediante las instrucciones de SPM anteriores.

Permisos del superuser o de los grupos de usuarios admin o developer del esquema

Otorgue los permisos de admin o developer del esquema mediante las instrucciones de SLPM anteriores.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

Otorgue permisos de admin mediante las instrucciones de SPM anteriores.

DB admin

Otorgue los permisos de admin del esquema mediante las instrucciones de SLPM anteriores.

GRANT

REVOKE

DB admin

Otorgue y revoque permisos para el usuario A:

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

DB admin

Otorgue y revoque permisos para el usuario A:

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