Je suis un peu confus quant à la définition des autorisations dans PostgreSQL.
J'ai ces rôles:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
admin | Superuser, Create role, Create DB, Replication | {}
meltemi | Create role, Create DB | {rails}
rails | Create DB, Cannot login | {}
myapp | | {rails}
et bases de données:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+--------+----------+-------------+-------------+-------------------
myapp_production | rails | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
...
l'utilisateur myappn'a aucun problème à interroger la myapp_productionbase de données en ajoutant et en supprimant des enregistrements. J'aimerais meltemiégalement pouvoir interroger la même base de données. Donc, j'ai créé un rôle railsqui possède la base de données et fait les deux meltemiet les myappmembres de rails. Mais je reçois toujours des permission denied for relationerreurs. Meltemipeut afficher le schéma mais ne peut pas interroger la base de données.
Je viens de remarquer (avec \dtcommande) quemyapp c'est le propriétaire des tables:
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+-------
public | events | table | myapp
public | schema_migrations | table | myapp
...
public | users | table | myapp
...
Les tables ont été créées via un ORM (migrations ActiveRecord de Rails).
Je sais que l'autorisation est très différente dans PostgreSQL (par opposition à MySQL et autres que j'ai utilisés). Comment dois-je configurer ma base de données pour que différents utilisateurs puissent y accéder. Certains devraient être capables de CRUD mais d'autres peuvent seulement lire, etc ...
Merci pour toute aide. Désolé, je sais que c'est une question très basique mais je n'ai pas pu trouver la réponse moi-même.
myappau lieu derailsci-dessus? Parce quemyapppossède les tables (je n'ai jamais spécifié cela, la migration doit avoir). Quoi qu'il en soit, il serait sorta logique si je renommemyappàmyapp_grouppuis fait un nouvel utilisateurmyappqui les rails app utiliseraient pour se connecter à la DB. Makemyappet l'existantmeltemi, les deux membres dumyapp_grouprôle. Mais que se passe-t-il lorsque j'exécute la prochaine migration. ne sera-t-il pas la propriété demyapprecréer le problème à nouveau?!?