Pequeno exemplo ilustrando de como escondo o código das procedures, triggers e views.
Este método e muito mais profissional que criar uma role com o nome SYSDBA.
Você deve estar se perguntando, mas o qualquer pessoa pode ver meu banco de qualquer jeito acessando com SYSDBA, na maioria dos casos esta não e a grande preocupação, lógico que gostaríamos que o FB em versões futuras contasse com um recurso de proteção do banco.
No meu caso este comando e bastante útil.
Vamos lá então.
Escondendo código de stored procedures.
Escondendo código de stored procedures.
UPDATE rdb$procedures
SET rdb$procedure_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))
SET rdb$procedure_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))
Veja uma imagem antes e depois do comando.
Procedure antes.
Procedure depois.
Para que um usuário altere ou copie a estrutura original do banco, ele precisa saber o código original. Ele ate pode refazer, mas seu sistema depende do código original.
Ocultando codigo das triggers
UPDATE rdb$triggers a
SET rdb$trigger_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0)
OR (rdb$system_flag IS NULL))
AND NOT EXISTS(
SELECT rdb$trigger_name FROM rdb$check_constraints
WHERE rdb$trigger_name=a.rdb$trigger_name)
SET rdb$trigger_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0)
OR (rdb$system_flag IS NULL))
AND NOT EXISTS(
SELECT rdb$trigger_name FROM rdb$check_constraints
WHERE rdb$trigger_name=a.rdb$trigger_name)
Ocultando codigo das views,
UPDATE rdb$relations
SET rdb$view_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))
SET rdb$view_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))
Importantíssimo: Rode este comando sempre no banco do seu cliente, e tenha sempre o código de todo seu banco, uma vez utilizado este comando não e mais possível desfazer.
Espero que tenha ajudado...
John K.
John K.
Um comentário:
Bom post, obrigado:).
Postar um comentário