You don’t have the point of thinking about the password for the Firebird database - an open source server, so there is no way to do what you want. The user can simply recompile the server with password verification.
Basically you can only do two things:
Write your own changes to the Firebird server so that it writes a database file that is incompatible with all other servers. It doesn’t matter that people can transfer the database to another machine, because the standard server executable files will not be able to access the data in the database.
Only encrypted data is written to the file, so it does not matter that access to the database is possible.
Both, of course, are not perfect, as a certain cracker can simply use your own application to access data. Permission to attach a debugger to a running process may be enough to stop the execution of your application at any time and examine the (decrypted) data in RAM. See also SO question "How to increase memory security in Delphi?" , especially this answer , for more information on this topic.
BTW: this is what you can do with any database engine you choose to answer the last part of your question.
mghie source share