Опубликован: 07.05.2010 | Уровень: специалист | Доступ: платный
Лекция 25:

Администрирование InterBase: безопасность БД

< Лекция 24 || Лекция 25: 12 || Лекция 26 >
Аннотация: Эта лекция посвящена вопросам администрирования и безопасности сервера и баз данных InterBase. Подробно рассмотрены такие механизмы, как пользователи и роли, предоставление и отъем прав. Рассмотрены принципы работы с утилитами командной строки.

Под администрированием InterBase подразумеваются манипуляции с пользователями и ролями (добавление, удаление, предоставление и отъем прав и проч.), резервное копирование базы данных, ее восстановление и, возможно, ремонт. Тут следует сделать одно замечание: InterBase, входящий в дистрибутив Delphi, предназначен для разработки программ, а не для реальной серверной работы, поэтому он имеет ряд ограничений. Так, InterBase версии WI-V6.5.0.28, входящий в дистрибутив Delphi 7 использовался на четырех различных версиях Windows и дал одинаковый результат: создавать новых пользователей и роли можно, но войти в базу данных под другим, не SYSDBA пользователем, не получается. Поэтому если вы желаете не только изучить приемы администрирования сервера, но и опробовать все его возможности на практике, то рекомендую установить полную версию InterBase, желательно более свежую. Бесплатные пробные версии на 90 дней можно скачать отсюда: http://www.ibase.ru/interbase.htm

Впрочем, помимо приведенного выше ограничения, весь материал данного курса можно изучить и опробовать на том InterBase, который вы уже установили вместе с Delphi. Администрирование можно осуществлять разными способами: с помощью утилиты IBConsole или подобных утилит сторонних разработчиков. Но наиболее надежным и гибким способом является администрирование встроенными в InterBase утилитами командной строки, которые все равно неявно вызываются IBConsole и другими графическими утилитами, а также компонентами администрирования Delphi.

Примечание: платный сервер InterBase имеет бесплатных клонов: Firebird и Yaffil. Все, что мы изучали и продолжим изучать об InterBase, почти без изменений можно применить и к этим клонам, таким образом, вы изучаете не один, а сразу три сервера БД! Бесплатный - не значит плохой, эти клоны ничем не уступают своему предку, а в некоторых случаях даже превосходят его. Например, если в InterBase самый большой размер страницы 8192, то в Firebird можно установить страницу размером 16384 байт. Единственный минус: клоны InterBase не имеют графической утилиты вроде IBConsole. Но эта проблема легко решается: существует множество подобных утилит от сторонних разработчиков, гораздо более мощных и удобных, чем IBConsole. Особо можно порекомендовать графическую утилиту IBExpert. Эта утилита бесплатна для стран бывшего СССР, точнее, для русскоязычных пользователей - утилита определяет, что в операционной системе установлена поддержка кириллицы, и в этом случае работает без ограничений (спасибо разработчикам!). Кроме того, на сайте производителя, помимо последней версии утилиты, также можно скачать и довольно качественный русификатор. IBExpert поддерживает сервера InterBase, Firebird и Yaffil различных версий. Подробнее о клонах, утилитах, а также о пакетах компонентов для них можно узнать на сайте официального представителя этих СУБД в России http://www.ibase.ru/

Утилиты командной строки

Сейчас уже найдется не так много пользователей, которым доводилось работать с командной строкой. Большей частью пользователи привыкли к удобным графическим утилитам, с которыми можно работать при помощи одной только мыши. Утилиты командной строки представляют собой консольные приложения, в виде черного экрана с белым текстом на нем. Такие утилиты вызываются вместе с параметрами, и находятся в папке BIN сервера InterBase, по умолчанию:

C:\PROGRAM FILES\BORLAND\INTERBASE\BIN

Вызвать такую утилиту можно с помощью окна CMD (для WinNT, 2000, XP или выше) или COMMAND (для Win95/98/ME ). Так, чтобы узнать версию сервера, нажмите "Пуск -> Выполнить", а в окне введите cmd или command, в зависимости от вашей ОС. Кстати, в WinXP тоже есть команда command, однако она работает в режиме MS-DOS и не поддерживает длинных имен файлов и папок. Поэтому в XP (или выше) нужно использовать cmd.

Откроется черное окно, в конце последней строки будет мигать курсор, это и есть командная строка. Введите следующие команды (подразумевается адрес InterBase по умолчанию), после каждой из них нажимая < Enter >:

c:
cd program files\borland\interbase\bin
gpre -z

Сразу оговоримся, что текст в окне придется набирать вручную. Если скопировать текст, а затем выбрать в CMD контекстную команду "вставить", нет гарантии, что все символы скопируются правильно. В этом случае при выполнении команд вы получите ошибку. Зато в CMD имеется возможность повторить последнюю команду, не набирая ее. Достаточно нажать и удерживать клавишу "стрелка вправо", чтобы заново ввести текст последней команды. Это может быть полезным, когда приходится подряд набирать похожие команды: можно повторить, а затем отредактировать текст предыдущей команды.

В результате выполнения примера, вы получите следующее окно:

Утилита командной строки gpre.exe

Рис. 25.1 . Утилита командной строки gpre.exe

Для тех, кто впервые использовал подобные команды, разберем их подробней. Команда

c:

делает текущим диск C: (на случай, если ранее был текущим другой диск).

Команда cd ( Change Directories ) меняет текущий каталог на указанный, то есть, командой

cd c:\program files\borland\interbase\bin

мы переходим в папку BIN сервера InterBase. Если у вас InterBase установлен по другому адресу, в этой команде следует сделать изменения. В конце мы даем команду

gpre -z

которая вызывает утилиту gpre.exe с параметром -z. Эта утилита является препроцессором языков C/C++ и предназначена для разработчиков, напрямую работающих с InterBase API. Не самая используемая утилита, но здесь для нас интересен параметр -z, который выводит информацию о версии InterBase и самой утилиты (этот же параметр есть и у остальных утилит, с которыми нам предстоит познакомиться).

Как видите, расширение *.exe при загрузке утилиты можно не указывать, а регистр букв не имеет значения. Закрыть данное окно можно командой exit. В дальнейшем для краткости изложения предполагается, что текущей папкой в этом окне является папка BIN сервера InterBase, где и хранятся все остальные утилиты.

Пользователи

В "Введение в клиент-серверные БД. InterBase" мы уже рассматривали, как можно зарегистрировать нового пользователя с помощью утилиты IBConsole. Для регистрации пользователя, его удаления или смены пароля данный способ наиболее удобен, однако для порядка рассмотрим, как создать нового пользователя при помощи утилиты командной строки. В InterBase для этого существует утилита gsec .exe, подробные параметры которой можно вывести командой

gsec -help

Чтобы утилита позволила работать с данными пользователей, нужно указать, что мы имеем на это право. То есть, что мы - пользователь SYSDBA с паролем masterkey (если вы его не изменили). Так, для вывода информации об установленных пользователях имеется опция display, которая вызывается следующей командой (сервер InterBase должен быть запущен):

gsec -user sysdba -password masterkey -display

Добавить нового пользователя можно командой add:

gsec -user sysdba -password masterkey -add MISHA -pw qaz

мы добавили пользователя " MISHA " с паролем " qaz ". Изменить пароль этого пользователя на " qaz123 " можно командой modify:

gsec -user sysdba -password masterkey -modify MISHA -pw qaz123

Удалить пользователя MISHA можно командой delete:

gsec -user sysdba -password masterkey -delete MISHA

Утилита gsec позволяет работать и в интерактивном режиме. Чтобы войти в этот режим, нужно ввести команду:

gsec -user sysdba -password masterkey

После чего строка с курсором примет такой вид:

GSEC>_

Это означает, что мы находимся внутри утилиты. Далее имя и пароль администратора SYSDBA можно не указывать. Например, чтобы снова добавить пользователя MISHA, дадим команду:

add MISHA -pw qaz123

а для вывода списка пользователей укажем команду

display

Выйти из утилиты GSEC можно командой quit. Подобным же образом происходит работа и с другими утилитами командной строки.

Все пользователи и их параметры хранятся в специальной системной базе данных InterBase, которая устанавливается вместе с сервером:

C:\PROGRAM FILES\BORLAND\INTERBASE\isc4.gdb

При переустановке сервера этот файл по умолчанию не удаляется, а переходит "в наследство" следующей версии InterBase, поэтому пользователи и их пароли остаются неизменными. Таблица, содержащая информацию о пользователях, в этой БД называется USERS. На случай, если вы удалите нужного пользователя, или измените его пароль, который потом забудете, рекомендуется делать резервные копии этой БД. Есть и плохая новость. Поскольку все пользователи и их пароли хранятся в БД isc4.gdb, то имеется вероятность того, что рабочая база данных предприятия может быть скопирована, перенесена на другой ПК с установленным InterBase, после чего может быть открыта пользователем SYSDBA. Даже если на вашем сервере пароль SYSDBA изменен, на другом ПК этот пароль будет другим, так что базу данных можно будет открыть. Политика InterBase подразумевает, что серверный ПК должен быть:

  1. Недоступен посторонним лицам.
  2. Не должен иметь открытых для общего доступа ресурсов (дисков или папок с базами данных).

При соблюдении этих правил безопасность данных будет на высоком уровне.

< Лекция 24 || Лекция 25: 12 || Лекция 26 >
Евгений Медведев
Евгений Медведев

В лекции №2 вставляю модуль данных. При попытке заменить name на  fDM выдает ошибку: "The project already contains a form or module named fDM!". Что делать? 

Анна Зеленина
Анна Зеленина

При вводе типов успешно сохраняется только 1я строчка. При попытке ввести второй тип вылезает сообщение об ошибке "project mymenu.exe raised exception class EOleException with message 'Microsoft Драйвер ODBC Paradox В операции должен использоваться обновляемый запрос'. 

Денис Попов
Денис Попов
Россия, Оренбург, Оренбургский государственный университет, 2015
Рустам Кадыров
Рустам Кадыров
Россия, Тирлян, Тирлянская школа №5, 2003