Шрифт:
Интервал:
Закладка:
Firebird поставляется с постоянно расширяющейся библиотекой поддержки интернациональных языков и последовательностей сортировки. Четыре "базовых" языка поставляются в библиотеке fbintl (для POSIX) или fbintl.dll (для Windows). Firebird отыскивает языковые библиотеки в каталоге инсталляции /intl.
Можно писать ваши собственные наборы символов и порядки сортировки и сделать так, чтобы сервер Firebird загружал их из библиотеки совместного использования, которая должна быть названа fbintl2, чтобы ее можно было распознать и загрузить. David Brookestone Schnepper, разработчик fbintl2, подготовил языковой пакет "сделай сам", свободно доступный на http://www.ibcolIate.com.
В Firebird 1.5 и выше также возможно реализовывать пользовательские наборы символов и порядки сортировки с использованием внешних функций. Поскольку комплект поставки fbintl2 включает ясные инструкции по каждому набору символов, он также может служить справочником, если вы планируете использовать внешние функции для реализации пользовательских наборов символов.
Конфигурирование внешних размещений
Существующий внешний код и данные, к которым обращается сервер, могут оказаться слабым местом в безопасности, если файловая система сервера неадекватно защищена от вторжений или хорошо видна из сети. Такие внешние фрагменты могут быть сделаны менее уязвимыми посредством конфигурирования ограничений при доступе к ним сервера Firebird. Возможность запрета доступа к нераспознаваемому размещению помогает в обеспечении безопасности файловой системы и сети.
! ! !
СОВЕТ. Конфигурируйте небольшое количество размещений для сокращения области поиска сервером и требуемого уровня управления доступом.
. ! .
Установки в файле конфигурации
Файл конфигурации Firebird, как обсуждалось ранее в этой главе, дает возможность выполнить установки по ограничению доступа к библиотекам внешних функций, модулей фильтров BLOB и К файлам данных, связанных с таблицами с помощью определения CREATE TABLE <имя-таблицы> EXTERNAL (внешние таблицы или EVT). Установки для Firebird 1.5 в файле firebird.conf отличаются от установок для Firebird 1.0.x в файле isc config (POSIX) или ibconfig (Windows).
Конфигурация версии 1.5 применима ко всем моделям сервера 1.5. Конфигурация для 1.0.x применима только к Суперсерверу.
UDFAccess
Версия 1.5 и выше, файл firebird.conf.
Этот параметр используется для ограничения доступа к библиотекам внешних функций и модулям фильтров BLOB, рассматриваемых как потенциальная мишень для злонамеренных атак. Вы можете выбрать один из трех уровней доступа сервера ко всем этим модулям. До версии 1.5 возможность хранения внешних модулей в различных местах файловой системы рассматривалась как преимущество. Сейчас рекомендуется, чтобы их хранение ограничивалось одним деревом или, в особо незащищенных ситуациях, лучше вообще их запрещать.
UDFAccess Может быть None, Restrict или Full.
* None запрещает любое использование определенных пользователем внешних библиотек. Это значение по умолчанию инсталляции большинства дистрибутивов.
* Restrict (установка по умолчанию) ограничивает размещение вызываемых внешних библиотек указанными размещениями файловой системы. По умолчанию поиск начинается в каталоге /UDF в вашем корневом каталоге Firebird. Для задания размещения библиотек внешних функций или модулей фильтров BLOB В другом месте файловой системы предоставьте список из одного или более каталогов, разделенных точкой с запятой (;), в которых могут размещаться эти модули, например:
POSIX: /db/extern;/mnt/extern Windows: С:ExternalModules
Относительные пути трактуются как пути относительно корневого каталога инсталляции Firebird. Например, в Windows, если инсталляция Firebird была в каталоге C:Program FilesFirebirdFirebird_1_5, то следующее значение будет ограничивать доступ сервера к внешним файлам, только если они будут размещаться в C:Program FilesFirebirdFirebird_1_5userdata ExternalModules:
UDFAccess = Restrict userdataExternalModules
* Full позволяет осуществлять доступ к внешним библиотекам в любом месте системы. Если задан доступ Full, то требуется включить полный путь в предложение
MODULE_NAME оператора DECLARE EXTERNAL FUNCTION, который объявляет функцию в базе данных. Подробности см. в разд. "Внешние функции (UDF)" главы 21.
external_function_directoryВерсия 1.0.x, файл isc_config/ibconfig.
Этот параметр может быть использован в версии 1.0.x для задания произвольного количества размещений для библиотек внешних функций, фильтров BLOB И/ИЛИ модулей наборов символов. Если этот параметр конфигурации не присутствует, Firebird проверяет подкаталоги .Audf или ..intl в каталоге, который сервер распознает как корневой каталог инсталляции Firebird.
Вот несколько примеров:
external_function_directory <путь к каталогу, заключенный в кавычки>
external_function_directory "/opt/firebird/my_functions"
external_function_directory "/opt/extlibs/lang"
external_function_directory "d:udfdir"
ExternalFileAccessВерсия 1.5 и выше, файл firebird.conf.
Этот параметр предоставляет три уровня безопасности в отношении доступа к внешним файлам из таблиц базы данных. Значением является строка, которая может быть
None, Full или Restrict.
* None (значение по умолчанию) отключает любое использование внешних файлов вашим сервером.
* Restrict предоставляет возможность ограничить размещение внешних файлов для доступа из базы данных конкретными путями. Предоставьте список из одного или более путей, разделенных точкой с запятой (;), в которых могут храниться внешние файлы, например:
Unix: /db/extern;/mnt/extern
Windows: C:ExternalTables
Относительные пути трактуются как пути относительно каталога, который распознается запущенным сервером как корневой каталог инсталляции Firebird.
Например, в Windows, если корнем, который запущенный сервер распознает как корневой каталог инсталляции Firebird, является C:Program FilesFirebird, то следующее значение будет ограничивать сервер по доступу к внешним файлам, только если они будут размещаться на C:Program FilesFirebirduserdataExternalTables:
ExternalFileAccess = Restrict userdataExternalTables
Следующая запись в POSIX позволит осуществлять доступ только к файлам, находящимся в или ниже каталогов /exportdata и /importdata:
ExternalFileAccess = Restrict /exportdata;/importdata
* Full позволят осуществлять доступ к внешним файлам, находящимся в любом месте системы[146].
Подробную информацию о внешних файлах см. в разд. "Использование внешних файлов в качестве таблиц" главы 16.
external_file_directoryFirebird 1.0.x, файл ibconfig.
Только в Windows используется для группирования внешних файлов в одной или нескольких ограниченных зонах. Нет ограничения на количество каталогов, которые могут быть представлены в списке поиска. Создавайте запись из одной строки для каждого каталога, как показано далее:
external_file_directory <путь к каталогу, заключенный в кавычки> external_file_directory "d: x-files"
Пора дальшеПоследние главы описывают использование оставшихся инструментов командной строки, которые поставляются вместе с Firebird. Инструмент статистики gstat был описан ранее в главе 18, с инструментом управления доступом пользователя gsec вы познакомились в главе 35. Теперь рассмотрим интерактивную утилиту SQL isql.
ЧАСТЬ IX. Инструменты.
ГЛАВА 37. Интерактивный SQL (утилита isql).
Утилита isql, инсталлированная в каталоге /bin ниже вашего корневого каталога Firebird, предоставляет неграфический интерфейс для баз данных Firebird, который совместим со всеми серверными и клиентскими платформами.
isql принимает операторы DDL и DML, так же как и подмножество подобных SQL консольных команд, недоступных в DSQL. Утилита может быть использована как для создания и поддержания метаданных, так и для запросов к базе данных и изменения данных. Она включает некоторые инструменты администратора и режимы для выполнения прямых операций с базой данных из командной строки или из скриптов.
! ! !
ВНИМАНИЕ! Некоторые другие СУБД используют имя "isql" для своих интерактивных программ. Всегда запускайте программу isql Firebird из ее собственного каталога или задавайте абсолютный путь к файлу, если есть проблемы с вашим сервером.
. ! .
Интерактивный режим
Интерактивная утилита isql может быть запущена локально или с удаленного клиента.
* Для запуска isql с удаленного клиента всегда требуются имя пользователя и пароль.
* Если вы соединены локально, вы можете установить переменные операционной системы ISC_USER и ISC_PASSWORD и исключить необходимость вводить имя пользователя и пароль в командах. Подробнее об этих переменных см. в главе 3.
! ! !
ПРИМЕЧАНИЕ. При вызове интерактивной утилиты могут быть использованы некоторые дополнительные переключатели командной строки. Они представлены в табл. 37.1 в конце этой главы.
. ! .
Текстовый редактор по умолчанию
Некоторые команды isql обращаются к текстовому редактору системы по умолчанию.
* В UNIX, Linux и в некоторых других платформах POSIX редактор по умолчанию определяется одной из двух переменных окружения EDITOR и VISUAL. Значением по умолчанию при инсталляции обычно является vi, vim или emacs, но вы можете установить его в любой другой предпочитаемый консольный (но не X) текстовый редактор.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование