2009/4/23 Leandro Cavalari Soares <[email protected]>: > Bom Dia Comunidade! > > Estou estudando a respeito de Roles no Postgres e cheguei à seguinte > situação: > > Preciso de um usuário com permissões restritas - seleção de dados e > execução de algumas funções que alteram os dados. Pra isso, concedi as > segunites permissões: > > * GRANT USAGE ON SCHEMA esquema TO usuario; > * GRANT SELECT ON TABLE esquema.tabela TO usuario; > * GRANT EXECUTE ON FUNCTION esquema.funcao(integer, integer) TO usuario; > > Ao executar a função acima, o erro (ERROR: permission denied for > relation tabela) é emitido, pois o usuário só tem permissão de seleção dos > dados. > > Como posso permitir a alteração dos dados somente via execução de função, > impedindo que um UPDADE seja executado manualmente? >
Creio que você deseja que a função seja executada com outras permissões. O default na criação de funções é SECURITY INVOKER, isto é, leva em conta as permissões do usuário que está executando a função. Creio que o que você deseja é SECURITY DEFINER para, na execução, considerar as permissões de quem criou a função. http://www.postgresql.org/docs/current/interactive/sql-createfunction.html Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
