En Interbase /Firebird no es posible cerrar la base de datos para que nadie tenga acceso al diseño (tablas, llaves, indicces, etc).
Lo unico que se puede hacer como comento kinobi (quien hace años no pasa por aca) y de hecho yo lo hago es eliminar el codigo fuente de los triggers y procedimientos almacenados.
Kinobi elaboro un documento para eso, me tomo el atrevimiento de copiar el codigo sql para eso:
Código SQL
[-]
update rdb$procedures
set rdb$procedure_source = null
where (rdb$system_flag = 0);
update rdb$triggers
SET rdb$trigger_source = NULL
WHERE (((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))
AND (rdb$trigger_name NOT IN (SELECT rdb$trigger_name
FROM rdb$check_constraints)));