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 :
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.
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).
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 :
|
|
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 :
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 :
|
|
INSERT UPDATE DELETE TRUNCATE |
USAGE sur le schéma correspondant et autorisation DML pertinente (INSERT/UPDATE/DELETE/TRUNCATE) sur la table cible |
Exemple :
|
|
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 |
|
DROP TABLE |
||
|
CREATE DATABASE |
CREATEDB |
Accordez à l'utilisateur A l'autorisation 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 |
|
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 :
|
|
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 :
Important
Le SPM ne permet pas d'accorder des autorisations à des utilisateurs personnalisés dont le nom d'utilisateur se termine par |
Administrateur de la base de données |
Accordez des autorisations d'administrateur à un utilisateur :
Important
Le SLPM ne permet pas d'accorder des autorisations à des utilisateurs personnalisés dont le nom d'utilisateur se termine par |
|
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 :
|
Administrateur de la base de données |
Accordez et révoquez des autorisations pour l'utilisateur A :
|