On 26-03-2015 14:28, Euler Taveira wrote: > On 26-03-2015 11:43, Márcio A. Sepp wrote: >> Procuro fazê-lo sim. Posso não estar respondendo o último email da >> thread, pq o meu questionamento ou minha resposta está mais focada neste >> ponto e não no rumo que acabou tomando o assunto. >> > Responda no contexto *sempre* e remova o texto desnecessário. > >> Teve um caso de desenvolvimento de sistemas comerciais onde o fisco >> "pegou" clientes utilizando o mesmo sistema, porém com comportamentos >> bem distintos. Neste caso específico, a pessoa que foi implantar o >> sistema alterou funções do sistema de modo a permitir um "caixa 2". Este >> sistema era desenvolvido em Firebird e depois desse fato, a empresa >> desenvolvedora optou por ocultar o código fonte dos procedimentos do >> banco... >> > ... uma opção que não informaram é que se as suas funções foram feitas > em C, você pode "esconder" o código fonte. > >> Pelo que vi Oracle implementa algo neste sentido tbm. Mas não sei se >> é um anseio de outros usuários isso ou se eu estou divagando... >> > O "wrap" não previne que você consiga fazer uma engenharia reversa no > código da PL; ele apenas torna a missão difícil. > >> Observe que eu não estou me referindo a ocultar o código fonte de >> procedures/functions/triggers... e não em "fechar" o código fonte do >> postgresql. >> > Isso se chama ofuscação do código. Bom, como se trata de um produto de > código aberto, não vai ser tão difícil fazer um decompilador para o > código ofuscado. Por essa e outras razões, tal funcionalidade está > listada como "não será implementada" [1]. > > No seu caso, o ideal é proteger por contrato qualquer mudança no seu > produto (como já foi dito pelo Dutra). Talvez algum módulo de auditoria > em C para lhe proteger contra mudanças que visam burlar o seu sistema. > > > [1] https://wiki.postgresql.org/wiki/Todo#Features_We_Do_Not_Want >
Não sei se ajuda, mas uma vez gerei um hash da definição de cada PL e no procedimento de atualização de versão da estrutura do banco eu verificar esse hash, se não batia não atualizava a versão e gerava um alerta. O contexto era outro mas poderia ser feito um controle similar e vc periodicamente executar em seus clientes. Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral