[pgbr-geral] RES: Dúvida sobre permissões

2012-02-24 Por tôpico Rubens José Rodrigues
Obrigado pela interação!

 Estou com uma dúvida sobre permissões e talvez até mesmo do conceito 
 de papéis, e para ilustrar eu postei o seguinte código:

 http://pastebin.com/NzJ1Y4AD

 Minha necessidade é:

 a) criar vários grupos
 b) criar vários usuários
 c) criar permissões para os grupos
 d) deixar que os usuários herdem dos grupos as permissões conforme 
 nossa necessidade

Essa idéia é ótima!
Facilita muito a administração.

E muito, não tenham dúvidas!
Enfrentamos nesse momento um problema aqui na empresa, onde esse controle
era via aplicação + ldap e agora vai mudar, tudo porque estamos finalmente
substituindo um excelente Oracle por um excelente PostgreSQL.

 Minhas dúvidas são:

 a)  O papel/grupo chamado grupo_super foi criado como superuser, e 
 pelo que eu entendi o superuser não precisa de permissões, ou seja ele 
 poderia fazer tudo select, update, delete, criar papeis, criar 
 usuários, database, triggers, schemas etc..., ou estou errado!?

A flag superuser é, como o nome diz, uma flag.
Se ela estiver setada, todas as outras permissões existentes serão
simplesmente ignoradas. Quem tiver essa flag (role de usuário ou de grupo,
tanto faz) tem acesso a tudo, e a fazer qualquer coisa.
Se a flag for desligada, todas as permissões ordinárias existentes serão
respeitadas.

Aí é que está! Mesmo eu não informando ordinariamente as permissões ou seja
apenas usando o  atributo superuser do grupo_suporte e do usuário_super, e
ao entrar no psql exemplo e tentar um select em qualquer tabela, recebo a
informação de ...denied


 b) Na linha 48, eu coloquei o papel usuario_super como membro para 
 grupo_super, logo, ele não deveria herdar as permissões do papel 
 grupo_super?

Sim.


 c) A pergunta acima é devido ao fato de que, após essa associação, eu 
 pensei que ao entrar no psql por exemplo, como o usuário 
 usuario_super, por esse ter herdado o atributo de superuser ele 
 poderia fazer tudo sem ter que explicitamente dizer o que, certo!?

Certo.
Mas não funcionou apenas usando o código da linha 48 do código e sim após
rodar:
alter role usuário_super set role grupo_super .


 d) O comando grant all on schema.entidade to papel é diferente de 
 alter role  set role y ?

Não conheço ALTER ROLE  SET ROLE .
A cláusula SET do ALTER ROLE serve para parâmetros de configuração.
Uai, talvez aqui esteja o meu ponto crítico, pois o comando alter role
usuário_super set role grupo_super *teoricamente* estaria associando
imediatamente a role grupo_suporte na sessão e daí passa a funcionar a
herança desejada.


 e) Eu não consigo usar o comando alter role xxx set role yyy, zzz, 
 tem alguma forma!?

Simplesmente, não existe.
O que você quer fazer exatamente?
Eu desejo associar a vários grupos um usuário de uma única vez, porém com o
comando alter role xxx set role yyy somente permite uma única associação
pelo menos é que eu percebi na prática.

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Dúvida sobre permissões

2012-02-24 Por tôpico Euler Taveira de Oliveira
On 24-02-2012 07:06, Rubens José Rodrigues wrote:
 Aí é que está! Mesmo eu não informando ordinariamente as permissões ou seja
 apenas usando o  atributo superuser do grupo_suporte e do usuário_super, e
 ao entrar no psql exemplo e tentar um select em qualquer tabela, recebo a
 informação de ...denied
 
Você está confundindo permissões com atributos (vide o manual [1]). Atributos
[2] (por ex., superuser, createrole, createdb não são herdados); permissões
[3] podem ser (vide [4]).

 b) Na linha 48, eu coloquei o papel usuario_super como membro para 
 grupo_super, logo, ele não deveria herdar as permissões do papel 
 grupo_super?
 
 Sim.
 
Não. Não confundam atributos com permissões.

 Eu desejo associar a vários grupos um usuário de uma única vez, porém com o
 comando alter role xxx set role yyy somente permite uma única associação
 pelo menos é que eu percebi na prática.
 
Vide comando GRANT [3]. O comando é: GRANT ROLE foo TO bar.


[1] http://www.postgresql.org/docs/current/static/user-manag.html
[2] http://www.postgresql.org/docs/current/static/role-attributes.html
[3] http://www.postgresql.org/docs/current/static/sql-grant.html
[4] http://www.postgresql.org/docs/current/static/role-membership.html


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Dúvida sobre permissões

2012-02-24 Por tôpico Flavio Henrique Araque Gurgel
 Não. Não confundam atributos com permissões.

My bad. Sorry :(

[]s
Flavio
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral