Firebird 2.5 Quick Start Guide: Ibphoenix Editors Firebird Project Members
Firebird 2.5 Quick Start Guide: Ibphoenix Editors Firebird Project Members
Firebird 2.5 Quick Start Guide: Ibphoenix Editors Firebird Project Members
2
About this guide
The Firebird Quick Start Guide is an introduction for the complete newcomer to a few essentials for getting
off to a quick start with a Firebird binary kit. The guide first saw the light as Chapter 1 of the Using Firebird
manual, sold on CD by IBPhoenix. Later it was published separately on the Internet. In June 2004, IBPhoenix
donated it to the Firebird Project. Since then it is maintained, and regularly updated, by members of the Firebird
documentation project.
Important
Before you read on, verify that this guide matches your Firebird version. This guide covers version 2.5. For all
other Firebird versions, get the corresponding Quick Start Guide at http://www.firebirdsql.org/?op=doc.
• A sample database.
3
Firebird 2.5 Quick Start
Processes
Classic uses a separate process for each connection; SuperClassic and Superserver use a single process.
Thus, if a Classic server process crashes, the other connections remain unaffected. With SuperClassic and
Superserver, a crash take down all the connections.
Guardian
Superserver can run under the control of the Firebird Guardian, which automatically restarts it in case of a
crash. SuperClassic only offers the Guardian option under Linux. Classic doesn't offer it at all.
Resources
Being single-process, SuperClassic and Superserver use system resources more efficiently than Classic if
the number of simultaneous connections grows. Superserver is the most efficient of the three, because it also
has a shared cache space.
Local connections
Classic and SuperClassic offer an “embedded” local connection mode on Linux which is very fast, but not
as secure as a regular network connection. On Windows, a separate Embedded Server is available which is
even less secure, but can be very practical if you want to ship Firebird with your applications.
Simultaneous connections
Only Classic and SuperClassic allow simultaneous connections to a database from the regular server and
one or more embedded servers. Thus, if you use the Windows Embedded Server, it may be advantageous
to have Classic or SuperClassic as your regular server.
Multiprocessing
On Windows, Superserver defaults to using only the first processor or core in your computer. To make
it use all the available CPU power, you must change the CpuAffinityMask parameter in firebird.
conf. All other servers (including Superserver for Linux) support multiprocessing out of the box and ignore
CpuAffinityMask.
As you can see, none of the three models is best in all respects. If you're not sure which is best for you, Super-
Classic may be a good pick. Notice that you can always switch to another model later; your applications and
databases will keep functioning like before. The differences are in the servers, not in the databases.
For a more detailed look at the various server models, consult the appendix Firebird server architectures.
4
Firebird 2.5 Quick Start
Installation packages
For Linux, Superserver download packages start with FirebirdSS, Classic/SuperClassic packages with Fire-
birdCS. For Windows, there is a combined installation package; you choose the architecture (Superserver or
Classic) on one of the first screens. If you choose Classic, you can enable SuperClassic mode a couple of screens
later.
http://www.firebirdsql.org/manual/ufb-cs-embedded.html (HTML)
http://www.firebirdsql.org/pdfmanual/Using-Firebird_(wip).pdf (PDF)
Please notice! At the time of this writing, the information at the URLs above is not yet up to date with the
situation in Firebird 2.5. The most important change is:
• Windows Embedded now contains a SuperClassic instead of a SuperServer engine. File locks are shared, so
a database can be accessed by one or more Embedded servers and a regular Classic or SuperClassic server
at the same time.
5
Firebird 2.5 Quick Start
Linux
The following table shows the default component locations of a Firebird installation on Linux. Some of the
locations may be different on other Unix-like systems.
6
Firebird 2.5 Quick Start
Windows
In the table below, <ProgramDir> refers to the Windows programs folder. This is usually “C:\Program
Files” but may also be a different path, e.g. “D:\Programmi”. Likewise, <SystemDir> refers to the Win-
dows system directory. Be sure to read the notes below the table, especially if you're running Firebird on a 64-
bit Windows system.
The exact path to the Windows System directory depends on your Windows version. Typical locations on 32-
bit systems are:
7
Firebird 2.5 Quick Start
On 64-bit Windows systems, the “Program Files” directory is reserved for 64-bit programs. If you try to
install a 32-bit application into that folder, it will be auto-redirected to a directory which – in English versions
– is called “Program Files (x86)”. In other language versions the name may be different.
In the same vein, the System32 directory is reserved for 64-bit libraries. 32-bit libraries go into SysWOW64.
That's right: 64-bit libraries are in System32, 32-bit libraries in SysWOW64.
If you're not aware of this, you may have a hard time locating your 32-bit Firebird components on a 64-bit
Windows system.
(Incidentally, WOW stands for Windows on Windows. Now you can also work out what LOL means.)
Installing Firebird
The instructions given below for the installation of Firebird on Windows and Linux should be sufficient for the
vast majority of cases. However, if you experience problems or if you have special needs not covered here, be
sure to read the INSTALLATION NOTES chapter in the Release Notes. This is especially important if you are
upgrading from a previous version or if there are remnants of an old (and maybe long gone) InterBase or Firebird
installation floating around your system (DLLs, Registry entries, environment variables...)
Installation drives
Firebird server – and any databases you create or connect to – must reside on a hard drive that is physically
connected to the host machine. You cannot locate components of the server, or any database, on a mapped drive,
a filesystem share or a network filesystem.
Note
You can mount a read-only database on a CD-ROM drive but you cannot run Firebird server from one.
Although it is possible to install Firebird by a filesystem copying method – such as “untarring” a snapshot
build or decompressing a structured .zip archive – it is strongly recommended that you use the distributed
release kit (.exe for Windows, .rpm for Linux), especially if this is the first time you install Firebird. The
Windows installation executable, the Linux rpm program and the install.sh script in the official .tar.gz for
various Posix platforms all perform some essential setup tasks. Provided you follow the installation instructions
correctly, there should be nothing for you to do upon completion but log in and go!
8
Firebird 2.5 Quick Start
Installing on Windows
The Firebird installer lets you choose between Superserver and Classic/SuperClassic. Each model is fully stable
and there is no reason to categorically prefer one to the other. Of course you may have your own specific
considerations. When in doubt, consult the Classic, SuperClassic or Superserver chapter again.
If you install Firebird under Windows 95/98/ME, uncheck the option to install the Control Panel applet. It doesn't
work on these platforms. You'll find a link to a usable applet further down. (Note: the option to install the applet
is only available for Superserver.)
On Windows server platforms – NT, 2000/3/8, XP, Vista and 7 – Firebird will run as a system service by default,
but during the installation you can also choose to let it run as an application. Non-server Windows systems –
95, 98 and ME – don't support services; running as an application is the only option there.
The Firebird Guardian is a utility that monitors the server process and tries to restart it if it terminates abnormally.
The Guardian does not work with Firebird Classic Server on Windows if run as an application. This is due to a
known bug, which may be fixed later. Currently the Firebird 2.5 installer doesn't give you the option to include
the Guardian at all with a Classic Server, even if you install it as a service.
The Guardian works correctly with Superserver, whether run as an application or as a service.
If you run Firebird as a service on Windows 2000 or newer, the Guardian is a convenience rather than a necessity,
since these operating systems have the facility to watch and restart services. It is recommended that you keep
the Guardian option on (if possible) in all other situations.
If you have a Linux distribution that supports rpm installs, consult the appropriate platform documentation for
instructions about using RPM Package Manager. In most distributions you will have the choice of performing
the install from a command shell or through a GUI interface.
For Linux distributions that cannot process rpm programs, and for Unix flavours for which no .rpm kit is
provided, use the .tar.gz kit. You will find detailed instructions in the Release Notes.
Shell scripts have been provided. In some cases, the Release Notes may instruct you to edit the scripts and make
some manual adjustments.
9
Firebird 2.5 Quick Start
Before testing the Firebird server itself, it is advisable to verify if the server machine is reachable from the client
at all. At this point, it is assumed that you will use the recommended TCP/IP network protocol for your Firebird
client/server connections.
Notes
• If you have installed a Classic/SuperClassic Server on Linux/Unix or any Firebird server on Windows, it is
possible to connect directly to the local server, without using a network layer. If you intend to use Firebird
for this type of connection only, you can skip the “Pinging the server” section below.
• For information about using the NetBEUI protocol in an all-Windows environment, refer to the Network
Configuration chapter in the Using Firebird manual sold by IBPhoenix, or consult the InterBase 6 Opera-
tions Guide (http://www.ibphoenix.com/downloads/60OpGuide.zip).
ping 192.13.14.1
substituting this example IP address with the IP address that your server is broadcasting. If you are on a managed
network and you don't know the server's IP address, ask your system administrator. Of course you can also ping
the server by its name, if you know it:
ping vercingetorix
If you are connecting to the server from a local client – that is, a client running on the same machine as the
server – you can ping the virtual TCP/IP loopback server:
If you have a simple network of two machines linked by a crossover cable, you can set up your server with
any IP address you like except 127.0.0.1 (which is reserved for a local loopback server) and, of course, the IP
address which you are using for your client machine. If you know the “native” IP addresses of your network
cards, and they are different, you can simply use those.
Once you have verified that the server machine is reachable from the client, you can go on to the next step.
10
Firebird 2.5 Quick Start
The following sections show you how to test the server in each of these situations.
Use the top command in a command shell to inspect the running processes interactively. If a Firebird Superserver
is running, you should see a process named fbguard. This is the Guardian process. Further, there will be one
main and zero or more child processes named fbserver.
The following screen shows the output of top, restricted by grep to show only lines containing the characters fb:
As an alternative to top, you can use ps -ax or ps -aux and pipe the output to grep.
For Classic Server, the process name is fb_inet_server. There will be one instance of this process running for
each network connection. Note that if there are no active connections, or if there are only direct local connections,
you won't find fb_inet_server in the process list. fb_lock_mgr should be present though as soon as any
kind of Classic connection has been established.
For SuperClassic, the process name is fb_smp_server and it will visible as soon as the service is started.
SuperClassic, just like Superserver, does its own port-listening, so it will be running even if there are no con-
nections.
Other ways to test a Firebird server immediately after installation include connecting to a database, creating a
database, and launching the gsec utility. All these operations are described later on in this guide.
Open Control Panel -> Services (NT) or Control Panel -> Administrative Tools -> Services (2000/3/8, XP,
Vista, 7).
This illustration shows the Services applet display on Windows 2000. The appearance may vary from one Win-
dows server edition to another. Also, service names may vary with the Firebird version.
11
Firebird 2.5 Quick Start
You should at least find the Firebird server in the services listing. The Guardian may or may not be running,
depending on the choices you made during installation.
A flashing icon indicates that the server is in the process of starting up (or at least trying to do so). A red icon,
or an icon with an overlying red stop sign, indicates that startup has failed.
One way to make 100% sure if the server is running or not is to press Ctrl-Alt-Del and look for the fbserver
or fb_inet_server process (and possibly fbguard) in the task list.
On some occasions, you may need to start the Guardian or server once explicitly via the Start menu even if you
opted for “Start Firebird now” at the end of the installation process. Sometimes a reboot is necessary.
If you're desperately trying to start Firebird and nothing seems to work, ask yourself if you've installed Firebird
2.5 (Super)Classic server with the Guardian option enabled (the installation program doesn't offer this possibil-
ity anymore, but there are other ways). As said before, the combination (Super)Classic + Guardian currently
doesn't work if Firebird runs as an application. Uninstall Firebird if necessary and reinstall (Super)Classic with-
out Guardian, or Superserver with or without Guardian.
You can shut the server down via the menu that appears if you right-click on the tray icon. Notice that this also
makes the icon disappear; you can restart Firebird via the Start menu.
Note
Windows Classic Server (but not SuperClassic!) launches a new process for every connection, so the number
of fb_inet_server processes will always equal the number of client connections plus one. Shutdown via
the tray icon menu only terminates the first process (the listener). Other processes, if present, will continue to
function normally, each terminating when the client disconnects from the database. Of course, once the listener
has been shut down, new connections can't be made.
12
Firebird 2.5 Quick Start
In the case of Superserver you can also use a Control Panel applet to check and alter the Firebird server status.
Some available applets will be presented a little later in this guide.
Firebird versions from 1.5 onward can install symlinks or copies named after the 1.0 libs (with the “old” Inter-
Base names), to maintain compatibility with third-party products which need these files.
Some extra pieces are also needed for the client-only install.
Windows
At present, no separate installation program is available to install only the client pieces on a Windows machine.
If you are in the common situation of running Windows clients to a Linux or other Unix-like Firebird server
(or another Windows machine), you need to download the full Windows installation kit that corresponds to the
version of Firebird server you install on your server machine.
Fortunately, once you have the kit, the Windows client-only install is easy to do. Just run the installation program,
and when you arrive at at the “Select Components” screen, choose one of the client-only options from the drop-
down list or uncheck the “Server Components” checkbox.
For most Linux flavours, the following procedure is suggested for a Firebird client-only install. Log in as root
for this.
1. Look for libfbclient.so.2.5.n (n being the patch version number) in /opt/firebird/lib on the
machine where the Firebird server is installed. Copy it to /usr/lib on the client (or /usr/lib64 if both
server and client are 64-bits).
ln -s /usr/lib/libfbclient.so.2.5.n /usr/lib/libfbclient.so.2
ln -s /usr/lib/libfbclient.so.2 /usr/lib/libfbclient.so
If you're running applications that expect the legacy libraries to be present, also create the following sym-
links:
ln -s /usr/lib/libfbclient.so /usr/lib/libgds.so.0
ln -s /usr/lib/libfbclient.so /usr/lib/libgds.so
13
Firebird 2.5 Quick Start
3. Copy firebird.msg to the client machine, preferably into the /opt/firebird directory. If you place
it somewhere else, create a system-wide permanent FIREBIRD environment variable pointing to the right
directory, so that the API routines can locate the messages.
4. Optionally copy some of the Firebird command-line tools – e.g. isql – to the client machine. Note: always
copy the tools from a Superserver kit, regardless of the architecture of the server(s) you're planning to
connect to. Tools from Classic distributions terminate immediately if they can't find the libfbembed
library (which is useless for network connections) upon program start.
Instead of copying the files from a server, you can also pull them out of a Firebird tar.gz kit. Everything you
need is located in the /opt/firebird tree within the buildroot.tar.gz archive that's packed inside the kit.
• You may be running Firebird on Windows and for some reason the local protocol isn't working. One rather
common cause for this is running Windows with Terminal Services (Remote Desktop Services) enabled
and connecting to the server from a different session. To enable the local protocol, open firebird.
conf, uncomment the IpcName parameter and set it to Global\FIREBIRD. Then restart the server.
Note
In Firebird 2.0.1 and up, Firebird automatically prepends Global\ to the IPCname if the connection
fails because of insufficient permissions, so this should not happen anymore.
• If the above doesn't apply to you, you can at least circumvent the problem by “tricking” gsec into using
TCP/IP. Add the following parameter to the command line, adjusting the path if necessary:
14
Firebird 2.5 Quick Start
The file security2.fdb is the security database, where Firebird keeps its user account details. It is
located in your Firebird installation directory.
• Maybe your security database is a renamed security.fdb from Firebird 1.5 or earlier. Of course this
can't be the case immediately after installation. Someone (you?) must have put it there, in order to keep
the existing accounts available. Consult the Release Notes for instructions on how to upgrade old security
databases.
If the error message starts with “Cannot attach to services manager”, the server may not be
running at all. In that case, go back to Testing your installation and fix the problem.
• install the SYSDBA user with the password masterkey (actually, masterke: characters after the eighth are
ignored), or
• generate a random password and store that in the file SYSDBA.password within your Firebird installation
directory.
If the password is masterkey and your server is exposed to the Internet at all – or even to a local network,
unless you trust every user with the SYSDBA password – you should change it immediately using the gsec
command-line utility. Go to a command shell, cd to the Firebird bin subdirectory and issue the following
command to change the password to (as an example) icuryy4me:
• With the -user parameter you identify yourself as SYSDBA. You also provide SYSDBA's current password
in the -pass parameter.
• The -mo[dify] parameter tells gsec that you want to modify an account – which happens to be SYSDBA
again. Lastly, -pw specifies the type of modification: the password.
If all has gone well, the new password icuryy4me is now encrypted and stored, and masterkey is no longer
valid. Please be aware that unlike Firebird user names, passwords are case-sensitive.
Using gsec, you can add a user account as follows from the command line in the Firebird bin subdirectory:
15
Firebird 2.5 Quick Start
Provided that you've supplied the correct password for SYSDBA, a user account called billyboy will now have
been created with password sekrit66. Remember that passwords are case-sensitive.
Firebird 2.5 also introduces SQL commands for user management. While attached to any database, SYSDBA (or
co-admins, see below) can create, alter and drop users like this:
Other parameters for CREATE/ALTER USER are FIRSTNAME, MIDDLENAME and LASTNAME. Like PASS-
WORD, they all take a string argument.
Ordinary Firebird users can alter their own account details with gsec (“gsec -user toby -pass hEltoPay -mo
toby -pw purgaToby”) and with SQL (“alter user toby password 'purgaToby'”). Only the account name itself
can never be changed, not even by SYSDBA.
Appointing co-administrators
Note: What follows here is not essential knowledge for beginners. You can skip it if you like and go on to the
Security section.
In Firebird 2.5 and up, SYSDBA (and others with administrator rights) can appoint co-administrators. In gsec
this is done by adding the -admin parameter:
gsec -user sysdba -pass masterkey -add bigbill -pw bigsekrit -admin yes
The first command creates user bigbill as a Firebird administrator, who can add, alter and drop users. The
second command grants administrator privileges to the existing user littlejohn.
To revoke administrator privileges with gsec, use -admin no. In SQL, use REVOKE ADMIN ROLE.
Notes
• GRANT ADMIN ROLE and REVOKE ADMIN ROLE are not GRANT and REVOKE statements, although they
look that way. They are parameters to the CREATE and ALTER USER statements. The actual role name
involved here is RDB$ADMIN. This role also exists in regular databases; more about that in a minute.
• Every user who has received administrator rights can pass them on to others. Therefore, there is no explicit
WITH ADMIN OPTION.
• Co-admins can create, alter and drop users, but they have no automatic privileges in regular databases, like
SYSDBA has.
16
Firebird 2.5 Quick Start
• Co-admins must specify the extra parameter -role rdb$admin every time they invoke gsec to add, modify,
drop or view users.
• Co-admins must be connected with the RDB$ADMIN role if they want to add, modify or drop users through
SQL. Since nobody can attach to the security database, for this to work there must be at least one other
database where the co-admin has been granted that role. In regular databases, this is done with the standard
GRANT statement:
Grantors can be the database owner, SYSDBA, and every other user who has already received the RDB$ADMIN
role for that database and has specified it while connecting. Everybody who is granted the RDB$ADMIN role
in a database can pass it on to others, so again there is no WITH ADMIN OPTION.
Please remember:
The RDB$ADMIN role in a database gives the grantee SYSDBA rights in that database only!
• If it is the security database, the grantee can manage user accounts, but gets no special privileges in other
databases.
• If it is a regular database, the grantee can control that database like he was SYSDBA, but again gets no special
privileges in other databases, and gets no user administation privileges.
Of course it is possible to grant a user the RDB$ADMIN role in several databases, including the security database.
Security
Firebird 2.5 offers a number of security options, designed to make unauthorised access as difficult as possible.
Be warned however that some configurable security features default to the old, “insecure” behaviour inherited
from InterBase and Firebird 1.0, in order not to break existing applications.
It pays to familiarise yourself with Firebird's security-related configuration parameters. You can significantly
enhance your system's security if you raise the protection level wherever possible. This is not only a matter of
setting parameters, by the way: other measures involve tuning filesystem access permissions, an intelligent user
accounts policy, etc.
Below are some guidelines for protecting your Firebird server and databases.
17
Firebird 2.5 Quick Start
their account names and passwords to your users as needed. You can do this with gsec as shown above, or
with any third-party Firebird administration tool.
As a rule, only the Firebird server process should have access to the database files. Users don't need, and
should not have, access to the files – not even read-only. They query databases via the server, and the server
makes sure that users only get the allowed type of access (if at all) to any objects within the database.
An exception to this rule is the Windows Embedded Server, which requires that users have proper access
rights to the database file itself.
Aliases are listed in the file aliases.conf, in this format on Windows machines:
poker = E:\Games\Data\PokerBase.fdb
blackjack.fdb = C:\Firebird\Databases\cardgames\blkjk_2.fdb
And on Linux:
books = /home/bookworm/database/books.fdb
zappa = /var/firebird/music/underground/mothers_of_invention.fdb
Giving the alias an .fdb (or any other) extension is fully optional. Of course if you do include it, you must
also specify it when you use the alias to connect to the database.
Aliases, once entered and saved, take effect immediately. There is no need to restart the server.
Note that this is not the same thing as the filesystem-level access protection discussed earlier: when
DatabaseAccess is anything other than All, the server will refuse to open any databases outside the de-
fined scope even if it has sufficient rights on the database files.
18
Firebird 2.5 Quick Start
1. Native: The user must identify him/herself with a Firebird username and password, which the server
checks against the security database.
3. Mixed: The user either supplies a Firebird username and password, or is logged in with his OS account
name.
On Linux, the mixed model is in effect. On Windows, native authentication is the default, but you can change
it to trusted or mixed by setting the Authentication parameter in firebird.conf.
Depending on your Windows system configuration and the way Firebird is used, trusted may be the most
secure option.
If you want to give individual administrators SYSDBA power in the security database and/or regular databas-
es, you can grant them the RDB$ADMIN role as described in the section Appointing co-administrators. If,
on the other hand, you want to restore the automatic SYSDBA mapping as it was in Firebird 2.1, read the
following instructions.
To give all the administrators automatic SYSDBA rights in the security database so they can manage Firebird
user accounts, give the command:
You must do this as SYSDBA - a co-admin account won't do. To reverse the command, use -mapping drop.
To give all the administrators SYSDBA rights in an ordinary database, log into the database as the owner,
SYSDBA or someone who has the RDB$ADMIN role in that database, and issue the following SQL statement:
You must repeat this in every database where you want Windows administrators to have automatic SYSDBA
rights. To turn the mapping off again, use DROP instead of SET.
If automatic mapping is on, Windows administrators must not specify the RDB$ADMIN role when invoking
gsec or connecting to a database – at least not if they want to make use of their SYSDBA rights. If they specify
any role at all – even an unexisting one – the automatic mapping will not work.
There are more security parameters, but the ones not mentioned here are already set to an adequate protection
level by default. You can read about them in the 1.5 through 2.5 Release Notes and in the comments in fire-
bird.conf itself.
19
Firebird 2.5 Quick Start
Note
The applet is also usable for (Super)Classic, provided that Firebird runs as a service, not as an application.
Since the installation dialogue won't give you the option to include the applet with a Classic server, you must,
if you really want it:
This is a screenshot of the activated applet. Notice that the title bar says “Firebird Server Control”, although it
is listed in the Control Panel as Firebird Server Manager.
Unfortunately, the bundled applet only works on Windows NT, 2000/3/8, XP, Vista and 7.
20
Firebird 2.5 Quick Start
http://www.achim-kalwa.de/fbcc.phtml
...and download the Firebird Control Center fbcc-0.2.7.exe. Please note that, unlike the applet included with
Firebird, the Firebird Control Center will not work with Classic servers at all. It also doesn't seem to work on
Windows 7 (Vista unknown).
Notice
At this moment, version 0.2.7 is outdated. The author of the applet has announced that a new version will be
made available very soon, probably within a week. Watch the webpage.
The Control Center doesn't look anything like the Firebird applet shown in the screenshot, but offers the same
functionality, and then some. Attention: if you run Firebird as a service and without the Guardian, the Start/
Stop button will be labeled “Start” all the time, even when the server is already running. It functions as it should
though. In all other configurations the button will say “Start” or “Stop” according to the situation.
Administration tools
The Firebird kit does not come with a GUI admin tool. It does have a set of command-line tools – executable
programs which are located in the bin subdirectory of your Firebird installation. One of them, gsec, has already
been introduced to you.
The range of excellent GUI tools available for use with a Windows client machine is too numerous to describe
here. A few GUI tools written in Borland Kylix, for use on Linux client machines, are also in various stages
of completion.
Inspect the Downloads > Contributed > Administration Tools page at http://www.ibphoenix.com for all of the
options.
Note
Remember: you can use a Windows client to access a Linux server and vice-versa.
21
Firebird 2.5 Quick Start
In as much as remote connections are involved, we will use the recommended TCP/IP protocol.
Connection strings
If you want to connect to a database or create one you have to supply, amongst other things, a connection string to
the client application (or, if you are a programmer, to the routines you are calling). A connection string uniquely
identifies the location of the database on your computer, local network, or even the Internet.
An explicit local connection string consists of the path + filename specification in the native format of the
filesystem used on the server machine, for example
/opt/firebird/examples/empbuild/employee.fdb
• on a Windows server:
C:\Biology\Data\Primates\Apes\populations.fdb
Many clients also allow relative path strings (e.g. “..\examples\empbuild\employee.fdb”) but you
should use them with caution, as it's not always obvious how they will be expanded. Getting an error message
is annoying enough, but applying changes to another database than you thought you were connected to may
be disastrous.
Instead of a file path, the local connection string may also be a database alias that is defined in aliases.
conf, as mentioned earlier. The format of the alias depends only on how it's defined in the aliases file, not on
the server filesystem. Examples are:
• zappa
• blackjack.fdb
• poker
22
Firebird 2.5 Quick Start
Tip
If your local connections fail, it may be because the local protocol isn't working properly on your machine. If
you're running Windows Vista, 2003 or XP with terminal services enabled, this can often be fixed by setting
IpcName to Global\FIREBIRD in the configuration file firebird.conf (don't forget to uncomment the
parameter and restart the server).
If setting IpcName doesn't help and you don't get the local protocol enabled, you can always work around
the problem by putting “localhost:” before your database paths or aliases, thus turning them into TCP/IP
connection strings (discussed below).
Examples:
• On Linux/Unix:
pongo:/opt/firebird/examples/empbuild/employee.fdb
bongo:fury
112.179.0.1:/var/Firebird/databases/butterflies.fdb
localhost:blackjack.fdb
• On Windows:
siamang:C:\Biology\Data\Primates\Apes\populations.fdb
sofa:D:\Misc\Friends\Rich\Lenders.fdb
127.0.0.1:Borrowers
Notice how the aliased connection strings don't give any clue about the server OS. And they don't have to, either:
you talk to a Linux Firebird server just like you talk to a Windows Firebird server. In fact, specifying an explicit
database path is one of the rare occasions where you have to be aware of the difference.
Third-party programs
Please note that some third-party client programs may have different requirements for the composition of con-
nection strings. Refer to their documentation or online help to find out.
23
Firebird 2.5 Quick Start
If you move or copy the sample database, be sure to place it on a hard disk that is physically attached to your
server machine. Shares, mapped drives or (on Unix) mounted SMB (Samba) filesystems will not work. The
same rule applies to any databases that you create or use.
Connecting to a Firebird database requires the user to authenticate with a user name and a valid password. In
order to work with objects inside the database – such as tables, views, etc. – you also need explicit permissions
on those objects, unless you own them (you own an object if you have created it) or if you're connected as
SYSDBA. In the example database employee.fdb, sufficient permissions have been granted to PUBLIC (i.e.
anybody who cares to connect) to enable you to view and modify data to your heart's content.
For simplicity here, we will look at authenticating as SYSDBA using the password masterkey. Also, to keep
the lines in the examples from running off the right edge, we will work with local databases and use relative
paths. Of course everything you'll learn in these sections can also be applied to remote databases, simply by
supplying a full TCP/IP connection string.
C:\Program Files\Firebird\Firebird_2_5\bin>isql#
Use CONNECT or CREATE DATABASE to specify a database
SQL>CONNECT ..\examples\empbuild\employee.fdb user SYSDBA password masterkey;#
Important
• In isql, every SQL statement must end with a semicolon. If you hit Enter and the line doesn't end with a
semicolon, isql assumes that the statement continues on the next line and the prompt will change from SQL>
to CON>. This enables you to split long statements over multiple lines. If you hit Enter after your statement
and you've forgotten the semicolon, just type it after the CON> prompt on the next line and press Enter again.
• If you run a (Super)Classic Server on Linux, a fast, direct local connection is attempted if the database path
does not start with a hostname. This may fail if your Linux login doesn't have sufficient access rights to the
database file. In that case, connect to localhost:<path>. Then the server process (usually running as
user firebird) will open the file. On the other hand, network-style connections may fail if a user created
the database in Classic local mode and the server doesn't have enough access rights.
Note
You can optionally enclose the path, the user name and/or the password in single (') or double (") quotes. If
the path contains spaces, quoting is mandatory.
At this point, isql will inform you that you are connected:
You can now continue to play about with the employee.fdb database. With isql you can query data, get
information about the metadata, create database objects, run data definition scripts and much more.
24
Firebird 2.5 Quick Start
SQL>QUIT;#
You can also type EXIT instead of QUIT, the difference being that EXIT will first commit any open transactions,
making your modifications permanent.
Notes
• It is quite common for such tools to expect the entire server + path/alias as a single connection string – just
like isql does.
• Remember that file names and commands on Linux and other “Unix-ish” platforms are case-sensitive.
Starting isql
To create a database interactively using the isql command shell, get to a command prompt in Firebird's bin
subdirectory and type isql (Windows) or ./isql (Linux):
C:\Program Files\Firebird\Firebird_2_5\bin>isql#
Use CONNECT or CREATE DATABASE to specify a database
Important
• In the CREATE DATABASE statement it is mandatory to place quote characters (single or double) around
path, username and password. This is different from the CONNECT statement.
• If you run a (Super)Classic Server on Linux and you don't start the database path with a hostname, creation
of the database file is attempted with your Linux login as the owner. This may or may not be what you want
(think of access rights if you want others to be able to connect). If you prepend localhost: to the path,
the server process (usually running as user firebird) will create and own the file.
25
Firebird 2.5 Quick Start
The database will be created and, after a few moments, the SQL prompt will reappear. You are now connected
to the new database and can proceed to create some test objects in it.
But to verify that there really is a database there, let's first type in this query:
Although you haven't created any tables yet, the screen will fill up with a large amount of data! This query
selects all of the rows in the system table RDB$RELATIONS, where Firebird stores the metadata for tables. An
“empty” database is not really empty: it contains a number of system tables and other objects. The system tables
will grow as you add more user objects to your database.
To get back to the command prompt type QUIT or EXIT, as explained in the section on connecting.
Firebird SQL
Every database management system has its own idiosyncrasies in the ways it implements SQL. Firebird adheres
to the SQL standard more rigorously than most other RDBMSes. Developers migrating from products that are
less standards-compliant often wrongly suppose that Firebird is quirky, whereas many of its apparent quirks
are not quirky at all.
1 / 3 = 0
If you are upgrading from an RDBMS which resolves integer/integer division to a float quotient, you will need
to alter any affected expressions to use a float or scaled numeric type for either dividend, divisor, or both.
For example, the calculation above could be modified thus in order to produce a non-zero result:
1.000 / 3 = 0.333
Strings in Firebird are delimited by a pair of single quote (apostrophe) symbols: 'I am a string' (ASCII
code 39, not 96). If you used earlier versions of Firebird's relative, InterBase®, you might recall that double
and single quotes were interchangeable as string delimiters. Double quotes cannot be used as string delimiters
in Firebird SQL statements.
Apostrophes in strings
If you need to use an apostrophe inside a Firebird string, you can “escape” the apostrophe character by preceding
it with another apostrophe.
26
Firebird 2.5 Quick Start
'Joe's Emporium'
because the parser encounters the apostrophe and interprets the string as 'Joe' followed by some unknown
keywords. To make it a legal string, double the apostrophe character:
'Joe''s Emporium'
Concatenation of strings
The concatenation symbol in SQL is two “pipe” symbols (ASCII 124, in a pair with no space between). In SQL,
the “+” symbol is an arithmetic operator and it will cause an error if you attempt to use it for concatenating
strings. The following expression prefixes a character column value with the string “Reported by: ”:
Firebird will raise an error if the result of a string concatenation exceeds the maximum (var)char size of 32 Kb.
If only the potential result – based on variable or field size – is too long you'll get a warning, but the operation
will be completed successfully. (In pre-2.0 Firebird, this too would cause an error and halt execution.)
See also the section below, Expressions involving NULL, about concatenating in expressions involving NULL.
Double-quoted identifiers
Before the SQL-92 standard, it was not legal to have object names (identifiers) in a database that duplicated
keywords in the language, were case-sensitive or contained spaces. SQL-92 introduced a single new standard to
make any of them legal, provided that the identifiers were defined within pairs of double-quote symbols (ASCII
34) and were always referred to using double-quote delimiters.
The purpose of this “gift” was to make it easier to migrate metadata from non-standard RDBMSes to stan-
dards-compliant ones. The down-side is that, if you choose to define an identifier in double quotes, its case-
sensitivity and the enforced double-quoting will remain mandatory.
Firebird does permit a slight relaxation under a very limited set of conditions. If the identifier which was defined
in double-quotes:
...then it can be used in SQL unquoted and case-insensitively. (But as soon as you put double-quotes around
it, you must match the case again!)
Warning
Don't get too smart with this! For instance, if you have tables "TESTTABLE" and "TestTable", both defined
within double-quotes, and you issue the command:
27
Firebird 2.5 Quick Start
Unless you have a compelling reason to define quoted identifiers, it is usually recommended that you avoid
them. Firebird happily accepts a mix of quoted and unquoted identifiers – so there is no problem including that
keyword which you inherited from a legacy database, if you need to.
Warning
Some database admin tools enforce double-quoting of all identifiers by default. Try to choose a tool which
makes double-quoting optional.
Below are some examples of the types of surprises you will get if you try to perform calculations and comparisons
with NULL.
• 1 + 2 + 3 + NULL
• not (NULL)
You might have expected 6 from the first expression and “Home sweet ” from the third, but as we just said,
NULL is not like the number 0 or an empty string – it's far more destructive!
will return NULL if either FirstName or LastName is NULL. Otherwise it will nicely concatenate the two names
with a space in between – even if any one of the variables is an empty string.
Tip
Think of NULL as UNKNOWN and these strange results suddenly start to make sense! If the value of Number is
unknown, the outcome of '1 + 2 + 3 + Number' is also unknown (and therefore NULL). If the content of
MyString is unknown, then so is 'MyString || YourString' (even if YourString is non-NULL). Etcetera.
Now let's examine some PSQL (Procedural SQL) examples with if-constructs:
• if (a = b) then
MyVariable = 'Equal';
else
MyVariable = 'Not equal';
After executing this code, MyVariable will be 'Not equal' if both a and b are NULL. The reason is that
'a = b' yields NULL if at least one of them is NULL. If the test expression of an “if” statement is NULL, it
behaves like false: the 'then' block is skipped, and the 'else' block executed.
28
Firebird 2.5 Quick Start
Warning
Although the expression may behave like false in this case, it's still NULL. If you try to invert it using
not(), what you get is another NULL – not “true”.
• if (a <> b) then
MyVariable = 'Not equal';
else
MyVariable = 'Equal';
Here, MyVariable will be 'Equal' if a is NULL and b isn't, or vice versa. The explanation is analogous
to that of the previous example.
Firebird 2 and above implement a new use of the DISTINCT keyword allowing you to perform (in)equality tests
that take NULL into account. The semantics are as follows:
• Two expressions are DISTINCT if they have different values or if one is NULL and the other isn't;
• They are NOT DISTINCT if they have the same value or if both are NULL.
Notice that if neither operand is NULL, DISTINCT works exactly like the “<>” operator, and NOT DISTINCT
like the “=” operator.
DISTINCT and NOT DISTINCT always return true or false, never NULL.
Using DISTINCT, you can rewrite the first PSQL example as follows:
These versions will give you the results that a normal (i.e. not SQL-brainwashed) human being would expect,
whether there are NULLs involved or not.
A lot more information about NULL behaviour can be found in the Firebird Null Guide, at these locations:
http://www.firebirdsql.org/manual/nullguide.html (HTML)
http://www.firebirdsql.org/pdfmanual/Firebird-Null-Guide.pdf (PDF)
29
Firebird 2.5 Quick Start
Backup
Firebird comes with two utilities for backing up and restoring your databases: gbak and nbackup. Both can be
found in the bin subdirectory of your Firebird installation. Firebird databases can be backed up while users are
connected to the system and going about their normal work. The backup will be taken from a snapshot of the
database at the time the backup began.
Regular backups and occasional restores should be a scheduled part of your database management activity.
Warning
Except in nbackup's lock mode, do not use external proprietary backup utilities or file-copying tools such as
WinZip, tar, copy, xcopy, etc., on a database which is running. Not only will the backup be unreliable, but the
disk-level blocking used by these tools can corrupt a running database.
Important
Study the warnings in the next section about database activity during restores!
More information about gbak can be found here (HTML and PDF version, same content):
http://www.firebirdsql.org/manual/gbak.html
http://www.firebirdsql.org/pdfmanual/Firebird-gbak.pdf
The nbackup manual is here (again same content in HTML and PDF):
http://www.firebirdsql.org/manual/nbackup.html
http://www.firebirdsql.org/pdfmanual/Firebird-nbackup.pdf
Because these are ordinary database objects, they can be queried and manipulated just like your user-defined
objects. However, just because you can does not mean you should. The Firebird engine implements a high-level
30
Firebird 2.5 Quick Start
subset of SQL (DDL) for the purpose of defining and operating on metadata objects, typically through CREATE,
ALTER and DROP statements.
It cannot be recommended too strongly that you use DDL – not direct SQL operations on the system tables
– whenever you need to alter or remove metadata. Defer the “hot fix” stuff until your skills in SQL and your
knowledge of the Firebird engine become very advanced. A wrecked database is neither pretty to behold nor
cheap to repair.
It is possible to configure a database to use asynchronous data writes – whereby modified or new data are held in
the memory cache for periodic flushing to disk by the operating system's I/O subsystem. The common term for
this configuration is forced writes off (or disabled). It is sometimes resorted to in order to improve performance
during large batch operations.
The big warning here is: do not disable forced writes on a Windows server. It has been observed that the Win-
dows server platforms do not flush the write cache until the Firebird service is shut down. Apart from power
interruptions, there is just too much that can go wrong on a Windows server. If it should hang, the I/O system
goes out of reach and your users' work will be lost in the process of rebooting.
Note
Linux servers are safer for running an operation with forced writes disabled temporarily. Still, do not leave it
disabled once your large batch task is completed, unless you have a very robust fall-back power system.
Note
Notice that the shortest form of this command is gbak -rep, not gbak -r as it used to be in previous Firebird
versions. What happened to gbak -r? It is now short for gbak -recreate_database, which functions
the same as gbak -c[reate] and throws an error if the specified database already exists. You can force
overwriting of the existing database by adding the o[verwrite] flag though. This flag is only supported with
gbak -r, not with gbak -c.
These changes have been made because many users thought that the -r switch meant restore instead of replace
– and only found out otherwise when it was too late.
31
Firebird 2.5 Quick Start
Warning
Be aware that you will need to design your admin tools and procedures to prevent any possibility for any user
(including SYSDBA) to restore to your active database if any users are logged in.
If is practicable to do so, it is recommended to restore to spare disk space using the gbak -c[reate] option and
test the restored database using isql or your preferred admin tool. If the restored database is good, shut down the
old database (you can use the gfix command-line tool for this; see http://www.firebirdsql.org/manual/gfix.html
or http://www.firebirdsql.org/pdfmanual/Firebird-gfix.pdf). Make a filesystem copy of the old database just in
case and then copy the restored database file(s) over their existing counterparts.
32
Firebird 2.5 Quick Start
• Visit the official Firebird Project site at http://www.firebirdsql.org and join the user support lists, in particular
firebird-support. Look at http://www.firebirdsql.org/?op=lists for instructions.
• Visit the Firebird knowledge site at http://www.ibphoenix.com to look up a vast collection of information
about developing with and using Firebird. IBPhoenix also sells a Developer CD with the Firebird binaries
and lots of documentation.
• As a last resort – since our documentation is still incomplete – you can consult the InterBase 6.0 beta manu-
als (the files whose names start with 60 at http://www.ibphoenix.com/downloads/) in combination with the
Firebird 1.5 and 2.x Release Notes.
Note
The IBPhoenix publications Using Firebird and The Firebird Reference Guide, though still on the Developer
CD, are no longer actively maintained. However, much of the information contained in those documents is
currently being brought up to date and added, bit by bit, to the official project documentation.
33
Firebird 2.5 Quick Start
The Firebird Project developers and testers use an email list forum – firebird-devel@lists.source-
forge.net – as their “virtual laboratory” for communicating with one another about their work on enhance-
ments, bug-fixing and producing new versions of Firebird.
Anyone who is interested in watching their progress can join this forum. However, user support questions are
a distraction which they do not welcome. Please do not try to post your user support questions there! These
belong in the firebird-support group.
Happy Firebirding!
34
Firebird 2.5 Quick Start
Appendix A:
Firebird server architectures
This table gives a more detailed overview of the Firebird server architectures that were introduced in the section
Classic, SuperClassic or Superserver near the beginning of this guide.
35
Firebird 2.5 Quick Start
Guardian The Guardian isn't used: SuperClassic and Superserver are single-process servers,
(Linux) xinetd listens for incoming which can be watched over by the Guardian.
connections and creates serv-
er instances as needed.
Guardian When run as a Windows application (as opposed to a service), Can be used with the
(Windows) you can't use the Firebird Guardian. Note that running Firebird Guardian on Windows,
as an application is the only option on Windows 9x–ME. The whether run as an application
Windows installer doesn't offer the Guardian option at all for or as a service.
Classic/SuperClassic.
Events As of version 2.5, all models can use Fiebird events under all circumstances. If the server is
behind a firewall or if connections are made through a secure tunnel, a specific events port
has to be assigned to the RemoteAuxPort variable in firebird.conf, and the firewall or
tunnel configured accordingly.
The differences listed above result in the following pros and cons of the various models:
• If a traditional Classic server process crashes, the other connections remain unaffected. If a SuperClassic or
Superserver process crashes, all the connections go down with it.
• The Guardian gives some extra reliabilty because it automatically restarts a crashed server. On Windows,
this gives Superserver a little edge, especially if you run Firebird as an application (crashed services can be
restarted by the OS).
• Traditional Classic uses less resources if the number of connections is low. SuperClassic and Superserver are
more efficient if the number of simultaneous connections grows.
• The local access mode provided by Classic and SuperClassic on Linux, though very fast, doesn't offer full
security. You can disable it (see the Security chapter), but then you also lose the speed benefit.
• While working with a Windows Embedded application, it may be useful if you can open its database through
the regular server at the same time, e.g. for “live” inspection or to make a backup. This is only possible if
your regular server is a Classic or SuperClassic.
As you can see, none of the three models is better in all respects. If, after studying the above information, you're
still not sure which is best for you, SuperClassic may be a good choice—unless you need the additional connec-
tion-level robustness of traditional Classic, where a crashing server doesn't take down the other connections. All
this is not to say that Superserver is a bad choice – far from it.
As mentioned earlier, you can always switch models later. De-installing and installing another server is usually
a matter of minutes, and your applications and databases will keep functioning like before. The differences are
in the servers only, not in the databases. All Firebird databases have the same architecture and can be accessed
by any type of Firebird server.
36
Firebird 2.5 Quick Start
Appendix B:
Document History
The exact file history is recorded in the manual module in our CVS tree; see http://sourceforge.net/cvs/?group_
id=9028
Revision History
0.0 2002 IBP Published as Chapter One of Using Firebird.
2.2 2 Dec 2005 PV Removed "Using the books by IBPhoenix" as it doesn't make sense in
the QSG.
Promoted "How to get help" to 1st-level section and removed "Where
to next" shell.
Removed link to UFB and RefGuide; added a note instead explaining
their current status.
Updated/corrected classic-super comparison table.
Moved a number of sections on installing, working with databases, and
(un)safety into newly created top-level sections.
3.0 21 May 2006 PV Creation of 2.0 Quick Start Guide, still equal to previous revision ex-
cept for some version numbers, XML ids etc.
37
Firebird 2.5 Quick Start
3.3 15 Oct 2006 PV Default disk locations table: added isql to command line tools; added
row for additional server-side libs.
Added introductory paragraph to “Installing Firebird”. Changed first
sentence of “Installing on Linux...”
Changed and extended “Server check: Linux and other Unices”.
Corrected and extended the section on Linux client-only installs.
38
Firebird 2.5 Quick Start
3.4 25 Jan 2007 PV About this guide: Changed note about versions and replaced HTML and
PDF links with single link to new doc index page.
Classic or Superserver?: Replaced note on Embedded Server with a
proper subsection, containing more info and links to UFB.
Default disk locations: Created two subsections (for Linux and Win-
dows); also split table in two and removed first column. Introduced
placeholders <ProgramDir> and <SystemDir>. Changed text around
tables, changed existing note, and added note for Win64 users.
Security: Removed statement that 1.5 Release Notes are included with
2.x packages.
More about NULLs: Replaced note about the Null Guide being updated
with a para announcing the availability of the new version.
Backup: Updated information on UFB.
How to get help: Updated documentation links and changed text here
and there.
3.5 14 Mar 2007 PV About this guide and Important notice for 64-bit Windows users: Minor
rewordings.
User management: gsec and Connection strings: Added information on
enabling local protocol with IpcName=Global\FIREBIRD.
Security :: Use database aliases: Changed type from <database> to
<literal> to improve output.
3.6 21 Sep 2007 PV About this guide: Mentioned 2.0.3. Warned against 2.0.2.
Expressions involving NULL: Space added to expected concatenation
result: “Home sweet ”.
3.7 8 Apr 2008 PV About this guide: Added 2.0.4 and 2.1 to covered versions. Mentioned
forced writes bug.
Installing the Firebird server :: Use the Guardian?: Added warning
about Win installer not detecting existing server.
How to corrupt a database?: Gave subsections id attributes.
Disabling forced writes on Windows: Created new parent section Dis-
abling forced writes, with the Windows and Linux cases as subsections.
Warned against Linux forced writes bug.
License notice: Copyright end year now 2008.
3.8 18 Jan 2009 PV About this guide: Added 2.0.5 and 2.1.2 to covered versions.
Preventing data loss :: Backup: Mentioned nbackup's brokenness in
2.1.
39
Firebird 2.5 Quick Start
3.9 4 Sep 2010 PV About this guide: Added 2.0.6 and 2.1.3 to covered versions.
Working with databases :: Creating a database using isql :: Starting
isql: Added “# means Enter” note, like in Connecting with isql.
Preventing data loss :: Backup: Mentioned nbackup's still-brokenness
in 2.1.1 and complete fix in 2.1.2.
How to get help: Last list item: changed version ref. 2.0 to 2.x.
License notice: Copyright end year now 2010.
4.0 5 Sep 2010 PV Creation of 2.5 Quick Start Guide, still equal to previous revision ex-
cept for some version numbers, XML ids etc. Also removed erroneous
id from primary index term in Document History title.
4.2 21 Sep 2010 PV Classic, SuperClassic or Superserver: Moved the table into an ap-
pendix and left only a concise overview here so first-time users can
make a reasonable choice. Moved the paragraph about installation
packages into a separate subsection.
User management: gsec :: Trouble running gsec: Improved/corrected
first listitem.
Firebird server architectures: New appendix, containing the (slightly
edited) table that used to be in the Classic, SuperClassic or Superserver
section.
40
Firebird 2.5 Quick Start
Appendix C:
License notice
The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the “Li-
cense”); you may only use this Documentation if you comply with the terms of this License. Copies of the Li-
cense are available at http://www.firebirdsql.org/pdfmanual/pdl.pdf (PDF) and http://www.firebirdsql.org/man-
ual/pdl.html (HTML).
Copyright (C) 2002-2004. All Rights Reserved. Initial Writer contact: hborrie at ibphoenix dot com.
Portions created by Paul Vinkenoog are Copyright (C) 2004-2010. All Rights Reserved. Contributor contact:
paul at vinkenoog dot nl.
41
Alphabetical index
A F
Admin tools, 21 Firebird Book, 33
Administrators, 16, 19 Firebird Foundation, 33
Aliases, 18, 22, 23 Firebird Guardian, 9
Apostrophes in strings, 26 Firebird project, 34
Architectures, 35 Firebird SQL, 26
Authentication, 19 Forced writes, 31
Linux forced writes bug, 31
B
Backup, 30 G
Books gsec, 14
The Firebird Book, 33 Guardian, 9, 11
C H
Checking the server, 10 Help, 33, 33
Classic Server, 4, 35
Configuration, 14 I
Connecting, 23 Installation, 8
CONNECT statement, 24 Classic or Superserver, 4
connection strings, 22 client-only, 13
Control Panel applets, 20 drives, 8
CREATE DATABASE statement, 25 kit contents, 3
script or program, 8
D server, 8
Databases Integer division, 26
aliases, 18, 22, 23 isql
backup and restore, 30, 31, 32 connecting to a database, 24
connecting, 23 creating a database, 25
with a GUI client, 25
with isql, 24 L
corruption, 30 License notice, 41
creating with isql, 25
example database, 23 M
metadata, 26, 30 Management, 14
security, 17
system tables, 26, 30 N
working with databases, 22 NULL, 28
Disk locations, 6
Linux, 6 P
Windows, 7 Passwords
Document history, 37 changing, 15
Documentation, 33 Ping, 10
Double-quoted identifiers, 27 Project, 34
E R
Example database, 23 RDB$ADMIN role
42
Alphabetical index
in regular databases, 17
in the security database, 16
Restore, 30
to a running database, 31
user logins during restore, 32
S
Sample database, 23
Security, 17
Server architectures, 35
Server name and path, 23
Services (Windows), 11
SQL, 26
CONNECT statement, 24
CREATE DATABASE statement, 25
Strings, 26
apostrophes in strings, 26
concatenation, 27
delimiter symbol, 26
SuperClassic, 4, 35
Superserver, 4, 35
Support Firebird, 33
SYSDBA, 15, 17, 17
System tables, 26, 30
T
TCP/IP, 23
Testing, 10
top command (Linux), 11
U
User accounts, 15
43