Pessoal grato pela ajuda Consegui resolver usando o parametro "EXTERNAL SECURITY DEFINER" na definição da function. Jota, foi claro sim irei usar sua recomendação.
Valeu 2009/11/30 JotaComm <[email protected]> > Olá, > > 2009/11/30 Tiago Valério <[email protected]> > >> Fiz da seguinte forma >> >> >> CREATE OR REPLACE VIEW vw_tabela as >> select id,nmcliente,endereco,tel from esquema.tabela >> order by id >> limit 1; >> >> Então fiz o seguinte consulta na view >> >> select * from vw_tabela >> where id=1234; >> >> Na situacao acima o resultado gerado é zero. >> > > Você não pode fazer o limit 1 na chamada da view? > > Ao fazer dentro da view quando você faz limit 1 você vai trazer apenas o > primeiro registro, se você fizer teste com o primeiro registro da tabela > você verá que vai funcionar, se fizer com qualquer outro não. > > Recomendaria você usar o limit na chamada da view. > > PS: Não sei se minha explicação ficou clara. > >> >> Porem se faço a consulta direto na tabela conforme abaixo, o registro é >> retornado. >> >> >> select * from esquema.tabela >> where id=1234; >> >> Será alguma restrição do limit isto? >> >> Desde obrigado pela força. >> >> >> >> >> >> >> 2009/11/30 JotaComm <[email protected]> >> >> Opa, >>> >>> 2009/11/30 Tiago Valério <[email protected]> >>> >>>> Leo >>>> >>>> Obrigado pela ajuda e aproveitando, para colocar em pratica os >>>> conhecimentos adquiridos. >>>> >>>> Tentei com a criação da view e definindo limit 1.Porem quando uso o >>>> where junto com a view a consulta retorna zerada, e o registro está na >>>> tabela.Pode haver restrição do limit neste caso? >>>> >>>> >>>> Você pode mandar a definição da view e um exemplo dos dados, podem ser >>>> ficticios. >>>> >>>> >>>> >>>> >>>> >>>> 2009/11/30 Leonardo Cezar <[email protected]> >>>> >>>> 2009/11/30 Tiago Valério <[email protected]>: >>>>> <corte> >>>>> >>>>> > 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"? >>>>> >>>>> CREATE FUNCTION seleciona_tabela(...) >>>>> RETURNS tabela >>>>> LANGUAGE PLPGSQL >>>>> AS $selection_tabela$ >>>>> >>>>> [....] >>>>> >>>>> END; >>>>> $selecion_tabela$ >>>>> EXTERNAL SECURITY DEFINER; >>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>>> Utilize a opção SECURITY na definição da procedure. >>>>> >>>>> Por outro lado, uma visão resolveria seu problema de forma mais >>>>> simples. >>>>> >>>>> -Leo >>>>> -- >>>>> Leonardo Cezar >>>>> http://www.aslid.org.br >>>>> http://postgreslogia.wordpress.com >>>>> http://www.dextra.com.br/postgres >>>>> _______________________________________________ >>>>> pgbr-geral mailing list >>>>> [email protected] >>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>>> >>>> >>>> >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> [email protected] >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>>> >>> >>> []s >>> -- >>> JotaComm >>> http://jotacomm.wordpress.com >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > []s > -- > JotaComm > http://jotacomm.wordpress.com > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
