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

Responder a