Ir para conteúdo
Fórum Script Brasil

Fabius Lovato

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre Fabius Lovato

Fabius Lovato's Achievements

0

Reputação

  1. E aí galera, ninguém sabe como fazer com que operações INSERT e UPDATE sejam feitas apenas por stored procedure? Não quero que o usuário "public" realise, por exemplo, UPDATE "teste" SET ... Em vez isso, haverá uma stored procedure para realizar tal operação. Humm? E aí, alguma dica?
  2. Tenho uma tabela que quero impedir que SELECTs, INSERTs e UPDATEs sejam feitos diretamente. Minha intenção é que o usuário "public" só possa acessar essa tabela através de stored procedures. Para impedir o acesso à tabela é tranqüilo, basta usar REVOKE SELECT, INSERT, UPDATE ON TABLE ... No entanto, ao remover os privilégios de acesso do usuário "public", ao executar, por exemplo, a stored procedure que realiza um INSERT o postgres impedirá sua execução justamente porque o privilégio foi revogado. No SELECT eu consigo resolver usando uma VIEW com dados "mascarados", mas o INSERT e o UPDATE está sendo um problema para mim. Pior ainda, para fazer um UPDATE o usuário deve ter privilégio para SELECT (além de UPDATE)! Alguém tem uma dica para contornar esse problema? Obrigado pela ajuda.
  3. Fiz algumas pesquisas no forum do zeoslib e notei que componente TZStoredProc realmente não dá suporte ao Postgres. Para resolver esse problema deve-se utilizar o componente TZQuery com o seguinte comando: SELECT * FROM "sp_get_access"(PARAM1, PARAM2, PARAM3); Espero que ajude mais alguém.
  4. Não estou conseguindo fazer a chamada a uma stored procedure utilizando o componente TZStoredProc. Utilizo o Delphi 2007 e tenho instalado o Postgres 8.3.3. Já utilizei em outro momento os componentes ZeosDBO e nunca tive problemas. Atualmente estou usando a versão 6.6.3 desse pack e não consigo fazer a chamada a uma stored procedure. O componente informa que a operação não é suportada. A estrutura da stored procedure é: CREATE OR REPLACE FUNCTION "s_log"."sp_get_access" ( IN Param1 TEXT, IN Param2 TEXT, IN Param3 BOOLEAN, OUT Return1 INTEGER, OUT Return2 TEXT, OUT Retorn3 TEXT, ) RETURNS RECORD AS $body$ DECLARE BEGIN END; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; Agradeço a qualquer ajuda.
×
×
  • Criar Novo...