QGIS + Postgresql Regras

35 views
Skip to first unread message

Davi Spalla

unread,
Sep 6, 2022, 10:14:27 AM9/6/22
to qgisb...@googlegroups.com
Olá turma, bom dia e uma ótima terça!

Estou desenvolvendo um ambiente integrado Postgresql/Postgis + QGIS. Consegui estabelecer a conexão entre os 2. A minha necessidade agora é aplicar uma determinada regra para um determinado usuário (grantee). As regras que preciso aplicar para esse usuario (usuario para revisar) são: 
[NAO PERMITIDO]
- Nao importar camadas para o banco
- Nao excluir camadas do banco

[PERMITIDO]
- Editar/criar shapes e seus atributos
- Se criou novo shape tem permissão para excluir, se é um já existente, não pode excluir. 

É possível? Estou iniciando nessa etapa, qualquer ajuda será muito bem vinda. 
anexo alguns prints dos ambientes qgis e postgresql
Grande abraço, desde ja Obrigado!
image.png
image.png

Anderson Roberto da Silva

unread,
Sep 7, 2022, 8:31:33 PM9/7/22
to qgisb...@googlegroups.com
Olá,
Recomendo ler na documentação sobre o banco de dados PostgreSQL sobre as regras de usuários.
Isso em nada tem a ver com o QGIS, mas com as permissões que você configura no banco.

-- 
Anderson Roberto da Silva
Engenheiro Cartógrafo





--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
You received this message because you are subscribed to the Google Groups "qgisbrasil" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qgisbrasil+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qgisbrasil/CALm%3Dg1tD6BoxwCcH%3D%3DAuTy%3DTyCSU7Jhxs79mHs-UL1%2Boy64Xmw%40mail.gmail.com.

Eduardo Bieñkowski

unread,
Sep 8, 2022, 10:40:25 AM9/8/22
to qgisb...@googlegroups.com
Davi
As regras devem ser definidas no servidor de banco de dados não no QGIS

Las reglas deben ser establecidas en el servidor de la base de datos y no en el Qgis

Eduardo



--
Eduardo

Kyle Felipe

unread,
Sep 15, 2022, 2:31:51 PM9/15/22
to qgisbrasil
Olá @davipsf Bem vindo ao mundo dos SGDBG....
QGIS e PostgreSQL/POSTGIS é um caso de amor eterno....
Vc precisa fazer  GRANT e REVOKE no banco para as regras desse usuário

Uma boa prática nesse caso seria, primeiro criar um grupo (group_role) de usuário (role) com tais regras e colocar o usuário dentro desse grupo.
vc pode fazer, primeiro um REVOKE ALL no usuário...

```
REVOKE ALL PRIVILEGES ON [<nome_do_schema>.]<nome_da_tabela> FROM <usuario_ou_grupo>;

```
Após isso pode começar com as regras que deseja para o grupo ou usuário

```
GRANT SELECT, INSERT, UPDATE TO USER <usuario_ou_grupo>;
```
Na sua pergunta
vc valou sobre criar shape, essas permissões são apenas no banco de dados, não inlfuenciam se o usuário pode ou não criar um arquivo shape localmente em sua máquina, mas se ele quiser fazer o upload dessa camada para o banco, a regra que não permite importar camadas para o banco vai rejeitar a ação, bem como a regra de não poder remover camadas vai rejeitar a ação..
Mas terá as regras que permitem ele inserir FEIÇÔES nas tabelas e novas GEOMETRIAS, pois está GARANTIDO (GRANT) que ele tenha a opção de SELECT (para ler os dados da tabela) INSERT (inserção de novo dados) e UPDATE (alteração dos dados na tabela).

Até então essas regras estão operando no nível de tabela..... para fazer isso no nível de dado (feição), vai precisar um pouco mais de estudo do PostgreSQL.
pois precisa criar uma TRIGGER no banco para a tabela que rode ANTES DO DELETE, ela vai verificar se o usuário que criou a feição é o mesmo que está removendo, e assim aceitar ou não a ação...
vc pode ter um campo na tabela que recebe o nome do usuário que está criando o dado.

Só uma coisinha...
Não confunda shapes (formato de dado vetorial criado pela ESRI) com FEIÇÃO, GEOMETRIA ou CAMADA (que pode ser um shape, ou uma tabela de um banco ou um arquivo CSV).
Isso pode evitar algumas confusões até mesmo na hora de tirar dúvidas.

Davi Spalla

unread,
Sep 15, 2022, 2:36:55 PM9/15/22
to qgisb...@googlegroups.com
Kyle, boa tarde! 
Muitíssimo obrigado pelo nível de detalhes na sua resposta, não que os outros que dedicaram um pouco do tempo em responder não tenham sido válidos, mas a sua resposta esclarece muitas coisas além do necessário.
Obrigado a você e a toda a comunidade.


--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
You received this message because you are subscribed to the Google Groups "qgisbrasil" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qgisbrasil+...@googlegroups.com.

Kyle Felipe

unread,
Sep 19, 2022, 12:08:04 PM9/19/22
to qgisbrasil
@Davi
Dá uma olhada nessa documentação do PostgreSQL sobre Row Security

https://www.postgresql.org/docs/current/ddl-rowsecurity.html
Reply all
Reply to author
Forward
0 new messages