Tous les produits
Search
Centre de documentation

Hologres:Introduction to Hologres permission models

Dernière mise à jour :Aug 22, 2026

Cette rubrique explique le processus d'authentification des utilisateurs dans Hologres et présente les trois modèles d'autorisation permettant d'accorder des droits de développement : le modèle PostgreSQL standard, SPM et SLPM.

Flux d'authentification de Hologres

Le schéma suivant illustre le flux d'authentification complet :Hologres authentication flow

Utilisateurs

Avant qu'un compte Alibaba Cloud ne puisse accéder à Hologres, un administrateur doit exécuter create user "xxx" pour l'enregistrer en tant qu'utilisateur Hologres. À défaut, le système renvoie l'erreur role "xxx" does not exist . Les utilisateurs sont gérés au niveau de l'instance : ajouter ou supprimer un utilisateur revient à l'ajouter à l'instance ou à le retirer de celle-ci. Certaines opérations, comme la création de tables, nécessitent des autorisations au niveau de la base de données. Ces autorisations sont accordées au sein d'une base de données spécifique et ne s'appliquent pas aux autres bases.

Remarque

Exécutez select * from pg_user; pour afficher le superutilisateur de l'instance actuelle.

Modèles d'autorisation

Hologres est compatible avec PostgreSQL 11 et prend en charge l'autorisation PostgreSQL standard (modèle expert). Comme les autorisations PostgreSQL offrent une granularité fine mais reposent sur une syntaxe complexe, Hologres propose également deux modèles simplifiés : le Simple Permission Model (SPM) et le Schema-level Permission Model (SLPM).

Le tableau suivant compare ces trois modèles.

Modèle d'autorisation

Scénarios

Description

Modèle d'autorisation PostgreSQL standard (modèle expert)

Contrôle d'accès strict, jusqu'à un utilisateur spécifique sur une table donnée.

Granularité fine et flexibilité, mais syntaxe d'autorisation complexe. Pour plus d'informations sur l'octroi d'autorisations, consultez Expert permission model.

Simple Permission Model (SPM)

Contrôle d'accès global au niveau de la base de données.

Rôles prédéfinis au niveau de la base de données avec des autorisations fixes par groupe d'utilisateurs. Ce modèle couvre la plupart des cas d'utilisation grâce à une syntaxe simplifiée. Pour plus d'informations sur l'octroi d'autorisations, consultez Manage permissions using SPM.

Schema-level Permission Model (SLPM)

Contrôle d'accès fin au niveau du schéma avec une autorisation simplifiée.

Rôles prédéfinis au niveau du schéma avec des autorisations fixes par groupe d'utilisateurs. La granularité est plus fine que celle du SPM. Pour plus d'informations sur l'octroi d'autorisations, consultez Manage permissions using SLPM.

Octroi d'autorisations

Les tableaux suivants répertorient les autorisations requises pour chaque opération selon le modèle PostgreSQL standard et les modèles simplifiés (SPM/SLPM).

Remarque

Les superutilisateurs disposent par défaut de toutes les autorisations suivantes.

Opérations dans le modèle d'autorisation PostgreSQL standard

Autorisations requises

Instruction d'autorisation

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Accordez à l'utilisateur A l'autorisation CREATEROLE :

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

CONNECT sur la base de données et CREATE sur le schéma cible

Accordez à l'utilisateur A l'autorisation CREATE sur le schéma xx :

GRANT CREATE ON SCHEMA xx TO A;

Par défaut, tous les utilisateurs peuvent créer des tables dans le schéma public.

SELECT

USAGE sur le schéma correspondant et SELECT sur la table cible

Exemple :

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 sur le schéma correspondant et autorisation DML pertinente (INSERT/UPDATE/DELETE/TRUNCATE) sur la table cible

Exemple :

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

Propriétaire de la table (modifiable via ALTER OWNER)

L'instruction GRANT ne permet pas de transférer la propriété d'une table. Exécutez ALTER TABLE xx OWNER TO A; pour définir A comme nouveau propriétaire ; celui-ci pourra alors modifier ou supprimer la table.

DROP TABLE

CREATE DATABASE

CREATEDB

Accordez à l'utilisateur A l'autorisation CREATEDB :

ALTER USER A CREATEDB;

DROP DATABASE

Propriétaire de la base de données

L'instruction GRANT ne permet pas de transférer la propriété d'une base de données. Exécutez ALTER DATABASE xx OWNER TO A; pour définir A comme nouveau propriétaire ; celui-ci pourra alors supprimer la base de données.

CREATE EXTENSION

Propriétaire de la base de données

-

GRANT

REVOKE

Utilisateur disposant de l'autorisation pertinente et de l'option GRANT OPTION

Accordez à l'utilisateur A l'option GRANT OPTION :

GRANT [Privilege] TO A WITH GRANT OPTION;

Autorisation par modèle d'autorisation

Simple Permission Model (SPM)

Schema-level Permission Model (SLPM)

Opération

Autorisations requises

Instruction d'autorisation

Autorisations requises

Instruction d'autorisation

CREATE USER(ROLE)

DROP USER(ROLE)

Administrateur de la base de données

Accordez des autorisations d'administrateur à un utilisateur :

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

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

Important

Le SPM ne permet pas d'accorder des autorisations à des utilisateurs personnalisés dont le nom d'utilisateur se termine par admin, developer, writer, viewer ou all_users.

Administrateur de la base de données

Accordez des autorisations d'administrateur à un utilisateur :

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

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

Important

Le SLPM ne permet pas d'accorder des autorisations à des utilisateurs personnalisés dont le nom d'utilisateur se termine par admin, developer, writer, viewer ou all_users.

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Autorisations du superutilisateur ou des groupes d'utilisateurs admin ou developer

Accordez des autorisations d'administrateur ou de développeur à l'aide des instructions SPM ci-dessus.

Autorisations du superutilisateur ou des groupes d'utilisateurs admin ou developer du schéma

Accordez des autorisations d'administrateur ou de développeur du schéma à l'aide des instructions SLPM ci-dessus.

SELECT

Autorisations du superutilisateur ou des groupes d'utilisateurs admin, developer, writer ou viewer

Accordez des autorisations d'administrateur, de développeur, de rédacteur ou de lecteur à l'aide des instructions SPM ci-dessus.

Autorisations du superutilisateur ou des groupes d'utilisateurs admin, developer, writer ou viewer du schéma

Accordez des autorisations d'administrateur, de développeur, de rédacteur ou de lecteur du schéma à l'aide des instructions SLPM ci-dessus.

INSERT

UPDATE

DELETE

TRUNCATE

Autorisations du superutilisateur ou des groupes d'utilisateurs admin, developer ou writer

Accordez des autorisations d'administrateur, de développeur ou de rédacteur à l'aide des instructions SPM ci-dessus.

Autorisations du superutilisateur ou des groupes d'utilisateurs admin, developer ou writer du schéma

Accordez des autorisations d'administrateur, de développeur ou de rédacteur du schéma à l'aide des instructions SLPM ci-dessus.

ALTER TABLE

Autorisations du superutilisateur ou des groupes d'utilisateurs admin ou developer

Accordez des autorisations d'administrateur ou de développeur à l'aide des instructions SPM ci-dessus.

Autorisations du superutilisateur ou des groupes d'utilisateurs admin ou developer du schéma

Accordez des autorisations d'administrateur ou de développeur du schéma à l'aide des instructions SLPM ci-dessus.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

Administrateur de la base de données

Accordez des autorisations d'administrateur à l'aide des instructions SPM ci-dessus.

Administrateur de la base de données

Accordez des autorisations d'administrateur du schéma à l'aide des instructions SLPM ci-dessus.

GRANT

REVOKE

Administrateur de la base de données

Accordez et révoquez des autorisations pour l'utilisateur A :

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

Administrateur de la base de données

Accordez et révoquez des autorisations pour l'utilisateur A :

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