Firebird connect database linux
В директории examples Вашей инсталляции Firebird лежит образец базы данных — employee.fdb, которую можно использовать « для пробы пера ».
Имя сервера и путь
Если Вы вдруг решили переместить образец базы данных на другой диск, убедитесь, что он физически подключен к компьютеру. Разделяемые (shared), присоединенные (mapped) диски или (на Unix) смонтированные (mounted) SMB (Samba) файловые системы не будут работать. Это правило касается любых создаваемых Вами баз данных.
При использовании TCP/IP строка подключения состоит из двух частей: имя сервера и путь к файлу. Формат строки имеет следующий вид:
Оператор CONNECT
Для подключения к базе данных Firebird пользователь должен аутентифицироваться с использованием имени пользователя и правильного пароля. Кроме того, любому пользователю отличному от SYSDBA , root (Posix — системы), или Administrator (на Windows-системах, если Firebird запущен от имени этого пользователя) необходимо иметь разрешения на доступ к объектам внутри самой базы данных (так называемые объектные привилегии). Для простоты, рассмотрим процедуру аутентификации пользователя SYSDBA с использованием пароля masterkey.
Используем isql
Существует несколько способов подключения к базе данных с использованием утилиты isql . Один из них — это использование isql в интерактивном режиме. Перейдите в подкаталог bin директории, в которой установлена Ваша версия Firebird, и в командной строке наберите isql (для Linux: ./isql ) [↵ означает « нажать клавишу Enter »]:
C:\Program Files\Firebird\Firebird_1_5\bin>isql↵ Use CONNECT or CREATE DATABASE to specify a database SQL>CONNECT "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb"↵ CON>user 'SYSDBA' password 'masterkey';↵
Важно
- В isql каждое SQL-выражение должно завершаться точкой с запятой. Если строка не заканчивается точкой с запятой, и Вы нажимаете клавишу Enter , isql будет считать, что выражение будет продолжаться на следующей строке и сменит приглашение с SQL> на CON>. Это позволяет разбивать длинные выражения на несколько строк. Если Вы нажали клавишу Enter , забыв указать точку с запятой, просто наберите символ после приглашения и нажмите Enter ещё раз.
- Если, используя Classic Server под Linux, не указать имя хоста, будет предпринята попытка организовать прямое локальное соединение. Что, в свою очередь, может закончиться неудачей в случае отсутствия у текущей учетной записи Linux необходимых прав доступа к файлу базы данных. В этом случае попробуйте подключиться к localhost:/. В этом случае файл будет открывать серверный процесс (который в Firebird 1.5 обычно работает от имени firebird). С другой стороны, попытка сетевого соединения может закончиться неудачно, если пользователь создавал базу данных при локальном подключении и у сервера нет необходимых прав.
- В случае использования Classic Server под Windows, Вы должны указывать имя хоста (это может быть localhost) и полный путь, в противном случае подключиться не получиться.
Замечание
Несмотря на то, что в Firebird « нормальными » символами разделения строк являются одинарные кавычки, в примере, при указании пути к базе данных, использовались двойные кавычки. Это необходимо, так же как и в некоторых других утилитах командной строки, при указании путей, содержащих пробелы. Одинарные кавычки будут работать для путей, не содержащих пробелы.
Кавычки вокруг « SYSDBA » и « masterkey » необязательны. Также не обязательно заключать в кавычки путь к базе данных, не содержащий пробелов.
Далее isql сообщит о том, что Вы подключились:
DATABASE "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb", User: sysdba SQL>
Теперь Вы можете продолжить эксперименты с базой employee.fdb. isql означает interactive SQL [utility] (интерактивный SQL). Вы можете использовать её для извлечения данных, получения метаинформации, создания объектов базы данных, запуска скриптов и многого другого.
Для того, чтобы вернуться в командную строку наберите
За дополнительной информацией об использовании isql обращайтесь к Using Firebird, глава 10: Interactive SQL Utility (isql).
Используем графические утилиты
Обычно, графические средства самостоятельно собирают строку соединения на основании информации, вводимой пользователем в отдельных полях — имя сервера, путь к базе данных, имя пользователя и пароль. Как их использовать должны быть понятно из информации, изложенной в предыдущем разделе.
Замечание
- Существуют средства, в которых имя сервера + полный путь ожидаются в виде одной строки
- Помните, что на Linux и других Posix-системах имена файлов и названия команд являются чувствительными к регистру
Firebird connect database linux
A sample database named employee.fdb is located in the examples/empbuild subdirectory of your Firebird installation. Users can use this database to experiment with Firebird. Note that on some POSIX systems, the example database may not be located in the location given above. Each Linux Distribution, for example, may have decided to relocate some files.
SQL> CONNECT database name [user username] [password password] [role role_name];
If any of the the parameters to the connect command contains spaces, you must wrap that parameter in single or double quotes.
If username or password are not supplied, then the current values in the ISC_USER and ISC_PASSWORD environment variables are used instead. There is no environment variable to preset the required role.
It is possible to connect to a database using isql in two ways: locally and remotely.
- To connect locally, on Windows XP, use the CONNECT statement with the full file path or an alias (for a local database): SQL> CONNECT «C:\DATABASES\FIREBIRD\MY_EMPLOYEE.FDB» On Linux, a similar example would be: SQL> CONNECT «/databases/firebird/MY_EMPLOYEE.FDB»
- If connecting remotely (using TCP/IP), use the CONNECT statement with the server name and complete file path of the database or, an alias. When using the full path, remember to ensure that the server name is separated from the database path with a colon. To connect to a database on a Linux/UNIX server named cosmos: SQL> CONNECT ‘cosmos:/usr/firebird/examples/employee.gdb’; To connect to a database on a Windows server named cosmos: SQL> CONNECT ‘cosmos:C:\DATABASES\FIREBIRD\MY_EMPLOYEE.FDB’
Note
Firebird is slash agnostic and automatically converts either type of slash to suit the relevant operating system.
Using Database Alias Names
In the examples above, we have been using the full path to the database file. This has a disadvantage in that all clients will be able to determine exactly where the database is to be found, or, may cause problems when the database has to be moved. To alleviate these problems, database aliases can be used.
Once Firebird has been installed, a file named aliases.conf can be found in the main installation folder. By adding an entry to this folder, the full path to the database can be simplified to an alias name. This makes connecting easier, hides the actual database path from inquisitive users and allows the database to be moved around as necessary without having to change all the clients to allow them to connect to the database at the new location.
To create an alias for the database currently known as /databases/firebird/MY_EMPLOYEE.FDB on the cosmos Linux server, we need to add the following to the aliases.conf file on the cosmos server. By default, this will be in the folder /opt/firebird . On Linux, this file is owned by the root user and so, must be updated by the root user. On Windows, you need to be either an administrator, a power user or SYSTEM to change the file.
my_employee = /databases/firebird/MY_EMPLOYEE.FDB
There should be no quotes around the path to the database file.
Regardless of where the database file is currently located, or if it has its physical filename renamed, etc, all the local users will refer to the database simply as my_employee . Remote users will refer to this database as cosmos:my_employee . The following example shows an isql session being connected locally to the database using the alias name rather than a full path:
cosmos> /opt/firebird/bin/isql my_employee Database: test, User: sysdba SQL>
Alternatively, a remote connection would be made as follows, specifying the server name and the database alias together:
C:\Program Files\Firebird\Firebird_2_0\bin>isql cosmos:my_employee Database: cosmos:my_employee SQL>
Because the alias is defined on the server where the database resides, then the remote client needs to supply the server name and the alias name (as defined on that server) in order to make a connection.
Using the CONNECT command in an existing isql session is equally as simple using alias names:
SQL> CONNECT 'cosmos:my_employee'; Database: cosmos:my_employee SQL>
Caution
Regarding the security aspect of using database alias names to hide the full path to the actual database file(s), it’s not really all that secure as the following SQL command shows:
SQL> select MON$DATABASE_NAME from mon$database; MON$DATABASE_NAME ================================= /data/databases/firebird/test.fdb