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;