PostGIS / QGIS에서 INSERT에 대한 권한


12

사용자가 데이터베이스에 대한 권한을 설정하여 사용자가 UPDATE, INSERT, DELETE 및 지리적 테이블에서 SELECT 만 할 수 있도록합니다.

내 ID에 일부 SERIAL 유형을 사용하고 있기 때문에 사용자에게이 필드를 수동으로 편집 할 수있는 가능성도 제공하지 않습니다. 따라서 열 단위의 권한을 정의하고 있습니다. UPDATE 부분에서는 잘 작동하지만 QGIS의 버튼을 사용하면 새 객체를 만들 수 있습니다. 그것이 작동하는 유일한 방법은 권한 정의에 필드를 지정하지 않은 경우입니다. 모든 필드를 선택하더라도 작동하지 않습니다 (열을 지정하지 않고 모든 항목을 지정하는 것이 동일하다고 생각하더라도).

내가 이해하지 못하는 것 같거나 DB와 QGIS 간의 적절한 상호 작용을위한 권한 정의에 제한이 있습니다. 누구든지 무슨 일이 일어나고 있는지 이해하는 데 도움이 될 수있는 정보 나 조언이 있습니까?

스타일 정의에서 필드를 편집 불가능으로 설정하여 항상 처리 할 수 ​​있지만 누구나 원하는대로 설정할 수 있으므로보다 안전한 대안을 선호합니다.

PostgreSQL 9.5 용 QGIS 2.14, PostGIS 2.3 실행


GRANT SQL 명령을 사용하여 사용자 권한 (권한)을 설정합니까? 테이블에 INSERT를 부여 했습니까?
Zoltan

@ Zoltan 예, 내 쿼리는 다음과 같습니다GRANT INSERT (col2, col3, col4) ON table TO users
GuiOm Clair

5
INSERT 권한이있는 사용자는 기본 키 열에 대한 모든 권한이 있어야합니다. 그렇지 않으면 삽입을 수행 할 수 없습니다. 나는 그 주위에 어떤 방법이 없다고 생각합니다. 이미 언급했듯이 QGIS에서 해당 열의 가시성 만 제한 할 수 있습니다.
Micha

1
@Micha Ok, 실제로 그것은 그렇게 말한 것이 합리적입니다 ... 열 삽입 트리거에 대한 또 다른 해결 방법이 있다고 생각합니다 .ON INSERT DO NOTHING 및 ON UPDATE DO NOTHING 기본 키에 대해 기본 키 감사.
GuiOm Clair

3
또는 SERIAL 열을 제외하고 테이블보기를 작성하고 해당보기에만 액세스 할 수 있습니다.
JoeBe

답변:


0

INSERT 권한이있는 사용자는 기본 키 열에 대한 모든 권한이 있어야합니다. 그렇지 않으면 삽입을 수행 할 수 없습니다. 나는 그 주위에 어떤 방법이 없다고 생각합니다. 이미 언급했듯이 QGIS에서 해당 열의 가시성 만 제한 할 수 있습니다.

귀하의 의견과 관련하여 : column-specific trigger ON INSERT DO NOTHING and ON UPDATE DO NOTHING for the primary key나는 그것이 효과가 있는지 확실하지 않습니다. 새 행을 삽입 할 때는 분명히 새로운 기본 키 작성 해야합니다 . 당신은 그것을 회피하고 싶지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.