2009/11/30 Tiago Valério <[email protected]>: > > Boa tarde, estou com a seguinte situação: > > Preciso limitar a quantidade de registro acessados por um determinado > usuario fiz a seguinte function: > > > CREATE or replace FUNCTION seleciona_tabela( bigint) > returns tabela as > > $seleciona_tabela$ > > select * from tabela > where id_tabela=$1 > limit 1; > > $seleciona_tabela$ > > language sql > > > Porem não gostaria de dar o grant de select para o usuario em "tabela", > pois somente assim a function funcionaria. > > Neste caso teria como resolver esta questão sem o grant de select em > "tabela"? > > > Obs!!! Tentei fazer isto criando uma view e limit 1 para "tabela" porem > quando uso o where ele nao retorna o registro.Agora se eu > não usar a view e for direto na tabela usando o where sem limit o registro é > retornado.Será que isto pode ser um problema relacionado ao limit? >
Creio que o que procura é SECURITY DEFINER. http://www.postgresql.org/docs/current/interactive/sql-createfunction.html Isto é, executar a função com os privilégios de quem criou a função e não de quem está executando a função. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
