データベースの特権をユーザーに設定して、ユーザーが地理テーブルでUPDATE、INSERT、DELETE、そしてもちろんSELECTのみできるようにしています。
私はIDにいくつかのSERIALタイプを使用しているため、このフィールドを手動で編集する可能性をユーザーに与えないことを希望します。そこで、列ごとの特権を定義しています。UPDATEパーツでは正常に機能しますが、QGISの新しいオブジェクトの作成を許可するボタンはグレーのままです。動作しているように見える唯一の方法は、特権定義でフィールドを指定しない場合です。すべてのフィールドを選択しても機能しません(列を指定せず、すべてを指定することは同じだと思っていたとしても)。
それは私が理解していないもののようです、またはDBとQGISの間の適切な相互作用のための特権の定義には制限があります。何が起こっているのかを理解するのに役立つ情報やアドバイスがありますか?
スタイル定義でフィールドを編集不可として設定することでいつでも対処できますが、誰でも好きなように設定できるため、より安全な代替手段を好むでしょう。
PostgreSQL 9.5用のQGIS 2.14、PostGIS 2.3の実行。
GRANT INSERT (col2, col3, col4) ON table TO users