J'essaie de définir des privilèges dans ma base de données pour les utilisateurs afin qu'ils ne puissent METTRE À JOUR, INSÉRER, SUPPRIMER et, bien sûr, SELECT sur les tables géographiques.
Étant donné que j'utilise certains types SERIAL pour mes identifiants, je préférerais même ne pas donner aux utilisateurs la possibilité de modifier manuellement ce champ. Je définis donc des privilèges par colonne. Cela fonctionne bien sur la partie UPDATE, mais le bouton dans QGIS permettant la création d'un nouvel objet reste grisé. La seule façon dont cela semble fonctionner est lorsque je ne spécifie aucun champ dans la définition des privilèges. Même lorsque je choisis tous les champs, cela ne fonctionne pas (même si j'aurais pensé que ne pas spécifier de colonne et les spécifier tous serait la même).
Cela semble être quelque chose que je ne comprends pas, ou il y a une limitation dans la définition de privilège pour une interaction correcte entre la base de données et QGIS. Quelqu'un a-t-il des informations ou des conseils qui pourraient m'aider à comprendre ce qui se passe et / ou (encore mieux) m'aider à atteindre mon objectif?
Je peux toujours gérer cela en définissant le champ comme non modifiable dans la définition de style, mais comme tout le monde peut le définir à sa guise, je préférerais une alternative plus sécurisée.
Exécution de QGIS 2.14, PostGIS 2.3 pour PostgreSQL 9.5.
GRANT INSERT (col2, col3, col4) ON table TO users
Réponses:
L'utilisateur qui doit disposer des droits INSERT doit disposer des droits complets sur la colonne de clé primaire. Sinon, elle ne pourra pas faire l'insertion. Je ne pense pas qu'il y ait moyen de contourner cela. Vous ne pouvez que limiter la visibilité de cette colonne dans QGIS, comme vous l'avez déjà mentionné.
En ce qui concerne votre commentaire:
column-specific trigger ON INSERT DO NOTHING and ON UPDATE DO NOTHING for the primary key
je ne suis pas sûr que cela fonctionnerait. Lors de l'insertion d'une nouvelle ligne, une nouvelle clé primaire doit évidemment être créée. Vous ne voulez pas contourner cela.la source