QGIS / PostGISレイヤースタイル


9

DBへのログイン資格情報を要求するプラグインを作成しました。ログインすると、プラグインはDBからいくつかのレイヤーをロードします。DBには、adminユーザーと「通常」ユーザーの両方があります。

それぞれのレイヤーのデフォルトスタイルとして、UIから2つのスタイルをDBに保存しました(保存するには、DB管理者権限が必要です)。

スタイルをdbに保存すると、スタイルが格納されている場所を確認できません。つまり、新しいテーブルを表示できません。(スタイルがテーブルに保存されることを期待していました)

QGISとプラグインを(管理者ユーザーとして)再度実行すると、レイヤースタイルが自動的に読み込まれます。

しかし、QGISとプラグインを再度実行すると(通常のユーザーrndとして)、それらは自動的にロードされません。次に、DBから(GUIから)スタイルをロードしようとしましたが、スタイルがロードされていません。

2つの質問。

  1. レイヤースタイルはどのようにDBに保存されますか?
  2. DB管理者権限なしでレイヤースタイルをロードする方法はありますか?

通常のユーザーにテーブルへのアクセスが許可されていますか?あなたのスタイルテーブルはどうですか?
Alexandre Neto 14

通常のユーザーはレイヤーテーブルにアクセスできます。彼らは必要に応じてロードされます。スタイルテーブルに関しては、それが問題です。スタイルテーブルがあると思っていましたが、pgAdminを使用してDBに表示できません。スタイルが別の方法で保存されている可能性がありますが、どうやって?スタイルテーブルを見つけることができれば、通常のユーザーにタイツへのアクセスタイツを提供できます。
user28233 14

回答:


11

スタイルは通常public.layer_stylesに保存されます。

パブリックスキーマであるため、すべてのユーザーがアクセスできる必要があります。そうでない場合は、次のようになっていることを確認してください。

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users

スタイルが保存されていることに気付きませんでしたpublic(複数のスキーマを持つデータベースで作業している)。
user28233 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.