PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Octroi de privilèges PostgreSQL non visible

Une liste de choses que vous avez mal comprises :

  1. ALTER DEFAULT PRIVILEGES ne modifie pas les autorisations sur un objet existant, dans votre cas le schéma.

    Vous devez accorder le CREATE privilège sur le schéma :

    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    
  2. Les ALTER DEFAULT PRIVILEGES l'instruction que vous avez exécutée n'affectera que les autorisations sur les tables créées par l'utilisateur postgres dans le schéma tn_schema , mais il semble que vous vouliez tn_beta_migrator pour créer des tableaux.

    Vous n'avez pas besoin de ALTER DEFAULT PRIVILEGES du tout, puisque l'utilisateur qui crée la table devient le propriétaire de la table et a tous les privilèges sur la table par défaut.

  3. Vous pouvez afficher les privilèges par défaut avec \ddp dans psql .

  4. Les schémas font partie d'une base de données, vous devez donc vous connecter à la base de données pour voir ses schémas.

Si vous voulez que les tables créées par tn_beta_migrator obtenir certaines autorisations par défaut, vous devez définir des privilèges par défaut pour cet utilisateur (et pas pour postgres , comme vous l'avez fait):

ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;