Книга: Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil
Безопасная работа с внешними таблицами
Безопасная работа с внешними таблицами
Файлы внешних таблиц могут располагаться ТОЛЬКО в одном из каталогов, разрешенных конфигурационным параметром EXTERNAE_FIEE_DIRECTORY. а также в их подкаталогах
По умолчанию конфигурационный файл не содержит параметров EXTERNAL_FELE_DIRECTORY, поэтому использовать внешние файлы вообще не разрешается. Если нужно полностью снять ограничения на размещение внешних файлов, следует задать корневые каталоги дисков в EXTERNAL_FILE_DIRECTORY, например:
EXTERNAL_FILE_DIRECTORY "с:"
EXTERNAL_FILE_DIRECTORY "d:"
Таким образом, любой файл на диске становится доступным для доступа через внешние таблицы, что соответствует прежнему, небезопасном}' поведению InterBase pre-7 и Firebird 1.0. Из-за серьезных проблем с безопасностью НЕ РЕКОМЕНДУЕТСЯ использовать такие установки.
Каждому каталогу, сконфигурированному для использования в качестве хранилища внешних таблиц, может быть присвоено логическое имя.
Логическое имя каталога необязательно и задается вторым аргументом:
EXTERNAL_FILE_DIRECTORY "c:databasesfiles" myfiles
На логическое имя можно ссылаться при задании внешней таблицы. Для этого нужно указать логическое имя каталога после символа $ в начале имени внешнего файла. Например:
CREATE TABLE customers EXTERNAL FILE "$myflies/customers.txt" ( ... );
Другой способ задания внешних таблиц состоит в указании абсолютного пути к файлу. При этом файл также может располагаться только в разрешенных каталогах. Например,
CREATE TABLE customers EXTERNAL FILE
"с:/databases/files/customers.txt" (...) ;
И наконец, можно задавать файл внешней таблицы с указанием имени относительно каталога базы данных:
CREATE TABLE customers EXTERNAL FILE "files/customers.txt" ( ... );
При этом каталог, в котором находится файл, должен быть разрешен параметром EXTERN AL_FILE_DIRECTORY.
НЕ РЕКОМЕНДУЕТСЯ разрешать для размещения файлов внешних таблиц каталоги с базами данных, поскольку в этом случае пользователи получают доступ к файлам этих баз данных. Если есть желание разместить внешние таблицы рядом с базой данных, то следует создать подкаталог для внешних файлов для каждой базы данных и разрешить его в EXTERNAL_FELE_DIRECTORY. Допустим, все базы данных лежат в c:databases, среди которых sales.gdb. Создаем каталог sales_files, разрешаем его для использования:
EXTERNAL_FILE_DIRECTORY "с:databasessales_files"
- Инструкция IIF
- Инструкция INSERT INTO ... FROM ... UNION ...
- Выражения в EXCEPTION
- Системные переменные ROWS_AFFECTED, GDSCODE, SQLCODE, TRANSACTIONJD, CONNECTIONJD
- Группировка по номеру столбца
- Значения переменных по умолчанию
- Тип данных BIGINT
- Дополнительные национальные кодовые страницы и порядки сортировки
- Группировка по встроенным функциям и UDF
- Ограничение результатов выборки FIRST/SKIP
- Увеличение глубины рекурсии процедур и триггеров
- Использование переменной окружения ISC_PATH
- Безопасная работа с внешними таблицами
- Работа с DataRow
- Работа с консолью
- 3.8.5. Работа с модулями
- Урок 2.8. Работа со сменными носителями
- Работа с архиватором WinRAR
- Работа с внешними данными
- ГЛАВА 9. РАБОТА ДЛЯ ПРОГРАММИСТОВ, ХУДОЖНИКОВ, АНИМАТОРОВ
- Работа с типами Brush
- Найдите наводящих мосты и следуйте за ними
- Работа с типами Pen
- 21 Работа с графикой и медиафайлами на стороне клиента
- 21.2. Работа с аудио- и видеопотоками