Files
sql/docker-entrypoint-initdb.d/10_postgrest.sql
2025-10-13 11:06:48 +02:00

24 lines
1.1 KiB
SQL

create role postgrest nosuperuser nocreatedb nocreaterole noinherit noreplication nobypassrls
login password '9012';
-- postgrest est le rôle utilisé par l'application pour se connecter à la base.
-- Il doit être configuré pour avoir un accès très limité.
-- Il s'agit d'un caméléon dont la tâche est de « devenir » un autre utilisateur pour servir des requêtes HTTP authentifiées.
-- Roles sans login. Il faut se connecter d'abord avec l'utilisateur postgrest.
-- Puis celui-ci usurpe une des identités suivantes suivant le role présent dans le JWT.
-- Lorsqu'une demande contient un JWT valide avec une revendication de rôle,
-- PostgREST passera au rôle de base de données avec ce nom pendant la durée de la demande HTTP avec la commande :
-- SET LOCAL ROLE adherent;
create role anonyme nologin;
create role adherent nologin;
-- L'utilisateur postgrest peut se connecter en tant que ...
grant anonyme to postgrest;
grant adherent to postgrest;
grant usage on schema public to anonyme;
alter default privileges in schema public
grant select on tables to anonyme;