use security definer... isso fara com que a funcao rode com direitos de quem criou a funcao e nao de quem executou, que eh o seu problema no momento e sim, usar funcoes para acesso aos objetos do banco eh uma maneira segura de impedir que pessoas realizem tarefas nao autorizadas.
2008/7/4 Yoshio <[EMAIL PROTECTED]>: > Olá pessoal. > > Li em um artigo que é mais seguro encapsular operações no db através > de funções onde o usuário não tenha acesso a tabela diretamente. Estou > tentando fazer isso mas sem sucesso. Eu criei uma tabela, função e > usuário do db (role) de teste. A função apenas insere dados na tabela > e o usuário tem privilegio somente para executar a função, mas na hora > de executar da "permission denied" para a tabela de teste, pois a > função faz um "insert into teste" e o usuário não tem permissão para > teste. Só funciona se eu der privilegio para o usuário inserir na > tabela, mas acho que isso não ajuda muito na questão da segurança pois > permite que o usuário insira dados na tabela diretamente sem utilizar > a função que faz algumas verificações antes de inserir. Como posso > resolver isso? > > Obrigado. > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Ivo Nascimento - Iann -------------------------------- iannsp at gmail dot com ivo at ccppbrasil dot org ---------------------------------- _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
