Если база данных еще не существует, и вы запустили из командной строки isql без параметров, то произойдут две вещи:
* вы соединяетесь с сервером;
* пока вы не отправите на сервер запрос CONNECT или CREATE DATABASE, программа не будет соединена с базой данных.
Пароль доступа всегда требуется для соединения с сервером. После этого вы можете соединяться с любой базой данных. Что вы можете делать, соединившись с базой данных, зависит от привилегий SQL, которые хранятся в базе данных. Пользователь SYSDBA имеет полные разрушительные права к любой базе данных и к любому ее объекту. Владелец (пользователь, создавший базу данных) имеет автоматические права к базе данных, но не к объектам, которые были созданы другими пользователями. Хотя любой пользователь, соединившись с сервером, может соединяться с любой базой данных, у него не будет прав делать что угодно с чем угодно, отличных от прав, которые были предоставлены ему явно или неявно владельцем базы данных операторами GRANT.
Вопросы доступа к серверу и безопасности базы данных подробно обсуждаются в части VIII.
На сервере можно установить две переменные окружения: ISC_USER и ISC_PASSWORD, чтобы избежать необходимости явно записывать пароли в скриптах. Вы можете делать все, что разрешено указанному пользователю. Эта возможность удобна для административных задач, однако она должна быть использована с большой осторожностью, потому что оставляет доступ к вашей базе данных открытым для любого локального пользователя, кто случайно натолкнется на ваше окно командной строки.
Если вы хотите играть с огнем, сделайте эти две переменные постоянными. Если же вы хотите иметь высокий уровень удобства и защищенности скриптов, временно устанавливайте их каждый раз при работе и не забывайте отменять установку при завершении работы с окном командной строки.
В Linux в том же окне командной строки, из которого вы запускали приложение, введите:
]# setenv ISC_USER=SYSDBA
]# setenv ISC_PASSWORD=masterkey
Для отмены установок используйте следующее:
]# setenv ISC_USER=
]# setenv ISC_PASSWORD=
или просто закройте окно.
В Windows в командной строке введите:
set ISC_USER=SYSDBA
set ISC_PASSWORD=masterkey
Для отмены введите:
set ISC_USER=
set ISC_PASSWORD=
Вы можете создавать базу данных интерактивно в isql. Некоторые другие инструменты администрирования баз данных могут отвечать требованиям API, перечисленным в этом разделе, и позволяют создавать базу данных интерактивно, в то время как другие требуют использования скрипта.
В любом случае более предпочтительным является использование файла определения данных (скрипта DDL), потому что он предоставляет простой способ "проиграть снова" ваши операторы при ошибочном выполнении скрипта. Проще запустить исходный файл, чем заново вводить интерактивные операторы SQL.
По умолчанию Firebird создает базу данных диалекта 3. Если вы хотите создать базу данных диалекта 1, первым оператором в вашем скрипте (или первым действием в вашем инструменте администратора) должен быть:
SET SQL DIALECT 1;
! ! !
ВНИМАНИЕ! Если isql в настоящий момент соединен с базой данных, он предложит вам подтвердить текущую транзакцию. Ответьте Yes (Да) для продолжения создания новой базы данных. Некоторые инструменты сторонних разработчиков вначале могут потребовать, чтобы вы отсоединились от базы данных.
. ! .
Следующий оператор - или первый для базы данных диалекта 3 - должен быть оператором CREATE DATABASE или CREATE SCHEMA такого синтаксиса [34] Замечание для программистов API. В динамическом SQL (DSQL) оператор CREATE DATABASE или CREATE SCHEMA должен быть выполнен с EXECUTE IMMEDIATE. Дескриптор базы данных и имя транзакции, если присутствуют, должны быть инициализированы нулем до использования.
:
CREATE {DATABASE | SCHEMA} 'спецификация-файла '
[USER 'имя-пользователя' [PASSWORD 'пароль']]
[PAGE_SIZE [=] целое]
[LENGTH [=] целое [PAGE[S]]]
[DEFAULT CHARACTER SET набор-символов]
[<���вторичный-файл>] ;
<���информация-о-файле> = LENGTH [=] целое [PAGE[S]]
STARTING [AT [PAGE]] целое [<���информация-о-файле>]
<���вторичный-файл> = FILE 'спецификация-файла' [<���информация-о-файле>]
[<���вторичный-файл> ]
! ! !
СОВЕТ. Используйте одиночные кавычки (апострофы) для таких строк, как имена файлов, имена пользователей и пароли.
. ! .
DATABASE или SCHEMA?
CREATE DATABASE и CREATE SCHEMA являются одним и тем же оператором. Это только вопрос ваших предпочтений.
Обязательные и необязательные атрибуты
Читать дальше