Embedded Firebird Server
There is a special version of the Firebird server referred to as “embedded”. This is a special client library that
includes the server itself. When an application links to this library it
loads the server and allows direct
access to any database that is accessible on the local computer. This version of the server does not use a security database. The user name specified during the “logon” (no password authentication occurs) is used to manage user
access to database objects (via
SQL permissions) but if that user name is SYSDBA (or the owner of the database) then unrestricted
access is possible.
The features of embedded are useful for developers wanting to create easy to distribute single-user applications that do not need security.
From that brief description it appears that having an
embedded server client installed on a server hosting other databases could present itself as a major security risk. In reality the risk is no greater than if the embedded client did not exist.
When an application loads the
embedded server, the
server operates in the application (and therefore the user's) security context. This means that the
embedded server will only be able to
access database files that the user could
access directly through the operating system. Giving an untrusted user
access to install programs on a secure server is bad news in any case, but provided you have specified appropriate file permissions on secure databases, the
embedded server itself is no threat.
The threat comes from all the other things that the user could install.
The fact that the
embedded server exists only serves to highlight what is possible given direct
access to a database file, especially in an open source environment. If it did not already exist then it would certainly be possible for someone to compile an equivalent capability.