QGIS / PostGIS 레이어 스타일


9

DB에 로그인 자격 증명을 요청하는 플러그인을 만들었습니다. 로그인하면 플러그인이 DB에서 일부 레이어를로드합니다. DB에는 관리자 및 "일반"사용자가 모두 있습니다.

레이어의 기본 스타일로 UI에서 DB에 두 가지 스타일을 각각 저장했습니다 (저장하려면 DB 관리자 권한이 있어야합니다).

스타일을 db에 저장하면 스타일이 저장된 위치를 볼 수 없습니다. 즉, 새 테이블을 볼 수 없습니다. (스타일이 테이블에 저장 될 것으로 예상했습니다)

관리자 권한으로 QGIS와 플러그인을 다시 실행하면 레이어 스타일이 자동으로로드됩니다.

그러나 QGIS와 플러그인을 다시 실행하면 (일반 사용자 rnd로) 자동으로로드되지 않습니다. 그런 다음 (GUI에서) DB에서 스타일을로드하려고 시도하지만 스타일이로드되지 않습니다.

두 가지 질문이 있습니다.

  1. 레이어 스타일은 DB에 어떻게 저장됩니까?
  2. DB 관리자 권한없이 레이어 스타일을로드하는 방법이 있습니까?

일반 사용자에게 테이블에 대한 액세스 권한이 부여 되었습니까? 스타일 테이블은 어떻습니까?
Alexandre Neto

일반 사용자는 레이어 테이블에 액세스 할 수 있습니다. 필요한대로로드됩니다. 스타일 테이블에 관해서는 이것이 문제입니다. 스타일 테이블이있을 것으로 예상했지만 pgAdmin을 사용하여 DB에서 볼 수 없습니다. 스타일이 다른 방식으로 저장 될 수는 있지만 어떻게? 스타일 테이블을 찾을 수 있으면 일반 사용자에게 타이트한 액세스 권한을 부여 할 수 있습니다.
user28233

답변:


11

스타일은 일반적으로 public.layer_styles에 저장됩니다.

공개 스키마에 있기 때문에 모든 사용자가 액세스 할 수 있어야합니다. 그렇지 않은 경우 다음을 사용하는지 확인하십시오.

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

스타일이 저장되었다는 것을 알지 못했습니다 public(여러 스키마가있는 db로 작업).
user28233
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.