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