I am trying to set privileges in my database for users so they can only UPDATE, INSERT, DELETE and, of course, SELECT on geographic tables.
Since I am using some SERIAL types for my IDs, I would prefer to not even give the users the possibility to manually edit this field. So I am defining column-wise privileges. It works fine on the UPDATE part, but the button in QGIS allowing the creation of a new object stays greyed. The only way it seems to be working is when I do not specify any field in the privileges definition. Even when I choose all the fields it does not work (even though I would have thought that not specifying any column and specifying all of them would be the same).
It seems to be something that I don't understand, or there is a limitation in the privilege definition for proper interaction between the DB and QGIS. Does anyone have any piece of information or advice which could help me understand what is happening, and/or (even better) help me achieve my goal?
I can always deal with that by setting the field as non-editable in the style definition, but since anyone can set it as they please, I would prefer a more secure alternative.
Running QGIS 2.14, PostGIS 2.3 for PostgreSQL 9.5.
GRANT INSERT (col2, col3, col4) ON table TO users