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 xxxx set role yyyyy" ?

>Não conheço ALTER ROLE xxxx SET ROLE yyyy.
>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

Responder a