Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Хранимые процедуры

Язык процедур Firebird (PSQL) реализует расширения его языка SQL, предоставляя логику условий, структуры управления потоками выполнения, обработку исключений (как встроенных, так и определенных пользователем), локальные переменные, механизм событий и возможность получать входные аргументы почти всех типов данных, существующих в Firebird. Он реализует мощную структуру управления потоком для обработки курсоров, что позволяет помещать наборы данных напрямую в память клиента без необходимости создания временных таблиц. Такие процедуры вызываются клиентом оператором SELECT; разработчикам они известны

как селективные процедуры.

Хранимые процедуры могут включать другие хранимые процедуры и могут быть рекурсивными. Все выполнение хранимой процедуры, включая выбор набора данных из процедур и внутренние вызовы других процедур, находится под управлением одной транзакции, которая вызвала процедуру. Соответственно, вся работа, выполненная при вызове хранимой процедуры, может быть отменена при откате клиентом этой транзакции.

Триггеры

Триггеры являются особыми процедурами, созданными для определенных таблиц с целью автоматического выполнения в процессе завершения добавлений, изменений или удалений на сервере. Любая таблица может иметь произвольное количество триггеров, которые будут выполняться до или после добавлений, изменений или удалений. Порядок выполнения определяется параметром позиции в объявлении триггера. Триггеры имеют некоторые расширения языка, недоступные для хранимых процедур или в динамическом SQL. Например, контекстные переменные OLD и NEW, при использовании которых в качестве префикса к имени столбца можно получить доступ к существующему (старому, old) и требуемому (новому, new) значению столбца. Триггеры могут вызывать хранимые процедуры, но не другие триггеры.

Работа, выполненная триггерами, будет отменена, если транзакция, явившаяся причиной вызова триггера, будет отменена.

Функции, определенные пользователем

Для сохранения своего малого объема Firebird поставляется с весьма скромным арсеналом встроенных (родных) функций трансформации данных. Пользователи могут писать свои собственные функции на известном им языке, таком как C/C++, Pascal или Object Pascal, для получения аргументов и возвращения единственного результата. Как только внешняя функция (UDF) будет определена в базе данных, она тут же станет доступной как допустимая функция SQL для приложений, хранимых процедур и триггеров.

Firebird поставляет две готовые к использованию библиотеки UDF: ib udf, доступную как для Windows, так и для Linux, и fbudf, доступную в настоящий момент для Windows и Linux в версии 1.5 и доступную только для Windows в версии 1.0.x. Firebird отыскивает UDF в библиотеках, находящихся в каталоге /udf каталога инсталляции или в других каталогах, указанных в параметре udfAccess (версия 1.5) или externai_function_directory (версия 1.0.x) в файле конфигурации Firebird.

Приложения, работающие с несколькими базами данных

В отличие от многих реляционных баз данных приложения Firebird могут быть одновременно соединены более чем с одной базой данных. Клиент Firebird может открывать и иметь доступ к любому количеству баз данных в одно и то же время. Таблицы из разных баз данных не могут быть объединены для получения связанного набора данных, но для комбинирования информации могут использоваться курсоры.

Если требуется согласованность между базами данных, Firebird может управлять выходными наборами данных, выполняя

запросы к нескольким базам данных в контексте одной транзакции. Firebird обеспечивает автоматическое двухфазное подтверждение транзакции (2РС) при изменениях в данных, чтобы гарантировать, что изменения не будут применены в одной базе данных, если изменения в другой базе данных в контексте той же транзакции были отменены или потеряны из-за ошибок в сети.

Безопасность сервера

Для управления доступом пользователей к серверу Firebird использует базу данных безопасности security.fdb (isc4.gdb в версии 1.0.x). Во время инсталляции эта база данных содержит одного пользователя - SYSDBA.

* В инсталляции Windows пароль пользователя SYSDBA masterkey. Настоятельно рекомендуется немедленно после инсталляции запустить программу gsec.exe (в каталоге инсталляции, подкаталоге /bin) и изменить этот пароль. Это один из наиболее известных паролей в мире баз данных!

* Инсталляторы RPM версии 1.5 для Linux генерируют случайный пароль для SYSDBA и заменяют в базе данных старый пароль masterkey. Этот пароль сохраняется в корневом каталоге инсталляции в текстовом файле с именем firebird.PASSWORD. Если вы собираетесь использовать данный пароль, то удалите этот файл.

Пользователь SYSDBA имеет полные привилегии ко всем базам данных на сервере; в текущей модели безопасности он не может быть изменен. Пользователь root в Linux/UNIX получает привилегии SYSDBA автоматически. Владелец базы данных (пользователь, создавший базу данных) имеет полные права на эту базу данных. Для всех других пользователей доступ к объектам базы данных возможен только через предоставление им привилегий SQL.

Безопасность базы данных

Все пользователи, за исключением тех, кто имеет полные привилегии, должны получить права к каждому объекту, к которому они должны иметь доступ. SQL-оператор GRANT используется для назначения привилегий.

Firebird поддерживает роли SQL. Вначале роль должна быть создана с использованием оператора CREATE ROLE и подтверждена (commit). Группа привилегий может быть назначена роли, а затем роль может быть назначена пользователю. Для использования этих привилегий пользователь должен при соединении с базой данных указывать и имя пользователя, и имя роли.

Более подробную информацию о безопасности баз данных см. в главе 35.

Пора дальше

В главе 7 мы более внимательно рассмотрим клиентскую сторону в архитектуре клиент-сервер Firebird: библиотеку функций, которая предоставляет приложениям такие уровни системы, как средства связи и язык SQL. Если вам нужна помощь в инсталляции удаленного клиента, перейдите к последнему разделу этой главы.

ГЛАВА 7. Клиенты Firebird.

Клиенту на удаленной рабочей станции требуется клиентская библиотека и приложение (программа), которое может взаимодействовать с интерфейсом прикладного программирования (Application Programming Interface, API), объявленным в этой библиотеке.

Клиентская библиотека предоставляет протокол соединения и транспортный уровень, которые ваше клиентское приложение использует для связи с сервером. Стандартная библиотека для клиентов Windows - это Windows DLL. Для клиентов POSIX это совместно используемый объект (библиотека SO). Размер стандартной клиентской библиотеки приблизительно 350 Кбайт.

Поделиться:
Популярные книги

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Попаданка 3

Ахминеева Нина
3. Двойная звезда
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка 3

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Призыватель нулевого ранга. Том 3

Дубов Дмитрий
3. Эпоха Гардара
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга. Том 3

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Бестужев. Служба Государевой Безопасности. Книга четвертая

Измайлов Сергей
4. Граф Бестужев
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга четвертая

Локки 5. Потомок бога

Решетов Евгений Валерьевич
5. Локки
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Локки 5. Потомок бога

На границе империй. Том 10. Часть 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 4