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.