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