2.2.2 Настройка сервера |
Все ниже написанное применимо лишь к полноценной версии сервера! Не пытайтесь что-то делать, если Вы пользуетесь встроенным (embedded) сервером ! Это одна из важных деталей механизма работы сервера. Поэтому, беритесь за его настройку, если Вы полностью понимаете, ЧТО делаете.
Для начала, Вам необходимо определиться, есть ли у вашей машины сетевая карта и статический IP-адрес. Согласно Википедии, Сетевая плата, также известная как сетевая карта, сетевой адаптер, Ethernet-адаптер, NIC (англ. network interface controller) — периферийное устройство, позволяющее компьютеру взаимодействовать с другими устройствами сети. В настоящее время сетевые платы интегрированы в материнские платы для удобства и удешевления всего компьютера в целом. Согласно Википедии, IP-адрес (ай-пи адрес, сокращение от англ. Internet Protocol Address) — сетевой адрес узла в компьютерной сети, построенной по протоколу IP. В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). В 4-ой версии IP адрес представляет собой 32-битовое двоичное число. Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками, например, 192.168.0.1. (или 128.10.2.30 — традиционная десятичная форма представления адреса). Нажмите Пуск → Панель управления → Система (продвинутый юзер может нажать одновремено кнопки <Win> + <Pause> )
На вкладке "Оборудование" жмем на кнопку "Диспетчер устройств" и ищем раскрывающийся список "Сетевые платы"
если она там есть (указана стрелкой), то можем проверить (установить) ее IP-адрес (если платы нет, то Вы сможете работать с программой только как "клиент на сервере", т.е. и сам сервер, и файл базы данных и клиентская программа будут стоять на Вашей машине. Естественной, ни о какой многопользовательской работе речи быть не может. Зато сетевую карту при этом ставить не обязательно, т.к. Вы сможете работать с базой через эмулятор (виртуальный заменитель) такой карты, так называемую "виртуальную заглушку", или localhost. Подробнее об этом чуть ниже).
нажимаем кнопку "Свойства" и открывшемся окне ищем пункт "Протокол интернета (TCP/IP)" (в некоторых сборках Win XP SP3 этот пункт может называться "Протокол интернета IPv4" или что-то вроде этого)
После нажатия на кнопку "Свойства" перед Вами должно открыться следующее окно
Тут есть одна очень важная деталь: если у Вас есть системный администратор (человек, с умным видом ковыряющийся в настройках компьютера), то все дальнейшие изменения должны делаться с его ведома или лучше им самим. Если же Вы "сам с усам", то конфигуряйте сеть на здоровье Итак, у каждой машины в вашей локальной сети должен быть статический сетевой адрес (IP-адрес). Как правило, этот адрес прописывается "от балды" (т.е. любой, взятый с потолка). Единственное условие - адрес должен быть уникален в пределах локальной сети. Например, у одной машины IP-адрес 192.168.89.113, у другой - 192.168.89.114 и т.д. Строго говоря, для наших целей достаточно назначить IP-адрес только "серверной" машине, т.е. только тому компьютеру, где установлен сервер базы данных. Выбираем пункт "Использовать следующий IP-адрес", прописываем в строку "IP-адрес" любые примерно совпадающие со скрином цифры, а в строку "Маска подсети" адрес 255.255.255. 0 (строку "Основной шлюз" можете не заполнять, если она пустая). Жмем "ОК". Далее наши действия будут различаться в зависимости от того, установлен ли на компьютере сервер или установлен только клиент.
Установка пользователей базы данных и их паролей.
Сервер Firebird позволяет предотвратить несанкционированный доступ к данным. Для этого предусмотрен механизм авторизации пользователей (логин + пароль) и механизм ролей сервера. Логин - имя, которое однозначно идентифицирует пользователя данной базы данных. В пределах текущего рабочего сервера логин (имя) пользователя должно быть уникальным. Т.е., в файле безопасности вашего рабочего сервера может быть только один VasyaPupkin. В то же время к серверу могут подключаться несколько пользователей под именем VasyaPupkin. Логин может быть длиной до 31символа. Для "гарантированной" авторизации на сервере необходимо, чтобы логин содержал в себе только символы латиницы и цифры, причем он не должен начинаться с цифры. Логин регистроНЕЗАВИСИМ, т.е. для сервера имена VasyaPupkin и VASYApupkin совершенно равнозначны. Пароль - это секретное слово или набор символов, предназначенный для подтверждения личности или полномочий для защиты данных от несанкционированного доступа. В Firebird теоретически пароль может содержать до 31 символа, но во внимание принимаются только первые 8 символов, т.е. для сервера пароли JacksonM и JacksonMarlon будут совершенно идентичны. Как и в случае с логином, пароль должен содержать в себе только символы латиницы, однако, в отличие от логина, пароль регистроЗАВИСИМ, т.е.пароли JacksonMichael и JАCKSONMichael будут восприняты сервером как два совершенно различных слова. Роль - комплект прав доступа к определенным сущностям сервера (чтение/изменение доменов, данных таблиц, триггеров, процедур и т.д.), необходимых для выполнения конкретных функций. Иными словами, это готовый набор определенных прав (как комплексный обед в студенческой столовой . Ты можешь взять его только целиком или вообще не брать). В роли обычно определяется, какие действия в базе данных она может производить, а какие - нет. Например, в нашей базе данных роль РЕГИСТРАТОР может просматривать общий список пациентов, добавлять их туда, изменять из анкетные данные. Однако РЕГИСТРАТОР не может просматривать когда и с каким диагнозом пациент был у того или иного врача. Роль УРОЛОГ может делать все то же, что и РЕГИСТРАТОР, но у него уже есть возможность просматривать данные (диагноз, лечение, назначенное обследование) визитов к врачу. Однако УРОЛОГ не может править цены в прайс листах, удалять пользователей из базы данных и т.д. Роль АДМИНИСТРАТОР вообще может делать в базе данных все что ему заблагорассудится. Теперь представьте, что вы добавили пользователей Tatjana и Maria, которые устроились к вам в клинику медрегистратором, и врача-уролога под именем Boris. Чтобы вручную не назначать им права на просмотр/изменение данных, Вы просто назначаете первым двум пользователям роль РЕГИСТРАТОР, а врачу - роль УРОЛОГ. И все. Все довольны .
Добавлять/удалять пользователей можно либо при помощи интерактивной утилиты сервера (X:\Program Files\Firebird\Firebird_2_1\bin\gsec.exe, где Х - системный диск, куда установлена операционная система. Обычно это диск С:\), которая требует умения работы с командной строкой (подробнее здесь), либо при помощи инструментов администрирования Firebird/Interbase, лучшим из которых (это не только мое imho) является IBExpert (для стран exUSSR он является бесплатной и даже русскоязычной программой; единственное условие - винда должна быть русской). Вы можете либо воспользоваться версией, которая вложена в инсталляционный пакет (находится в папке), либо скачать свежую версию тут www.ibexpert.com/rus/ibe_sfx.exe. Описывать его функционал не буду, кому интересно, могут поискать в сети справку. Назначать пользователям права и соответствующие роли можно при помощи утилиты isql.exe (подробнее здесь), которая находится в том же каталоге, что и gsec.exe. Чтобы все необходимые для работы пользователи уже были добавлены в "секретный" файл сервера, Вам достаточно заменить дефолтовый security2.fdb на тот, что приложен к инсталляционному пакету и находится в папке Database\Security2_db\ из комплекта поставки (или же его можно найти в папке Database\Security2_db\ в корневом каталоге программы после ее инсталляции). Для этого идем Пуск → Настройка → Панель управления → Firebird 2.1 Server Manager, откроется знакомое по установке сервера окно
Жмем на кнопку "Stop", чтобы остановить работу сервера. При этом значок с птичкой окажется зачеркнутым, а кнопка поменяет свое название на "Start"
Теперь ищем установленный по умолчанию Security2.fdb (должен быть здесь X:\Program Files\Firebird\Firebird_2_1\, где Х - системный диск, куда установлена операционная система. Обычно это диск С:\), переименовываем его в Security2.fdb_bak, а на его место копируем наш "готовый" файл Security2.fdb из прилагаемой к инсталляционному пакету (или установленной штатным инсталлятором) папки Database\Security2_db\. Жмем на кнопку "Start". Все, пользователи добавлены.
В версии программы "АРМ врача" 4.1.XX прилагаемый файл базы данных имеет 5 предустановленных (базовых) пользователей со следующими паролями по умолчанию:
* Пользователь SYSDBA по умолчанию обладает исключительными правами на все и вся, поэтому у него не может быть определенной роли. Но, если вы захотите иметь в базе данных еще одного такого же могущественного пользователя, то добавьте его под любым именем и назначьте ему роль ADMINISTR (см. "как добавить пользователя" и "как назначить роль").
Теперь снова запускаем сервер, вызвав апплет Firebird Server Control (тот, который на 2х последних рисунках выше). Теперь на сервере у Вас 5 потенциальных пользователей, каждый со своим набором прав в базе данных. Если вам необходимо самостоятельно добавлять/удалять новых пользователей, менять их пароли, то можете воспользоваться упомянутой выше утилитой gsec.exe (возможно, в следующих версиях моего проекта это можно будет делать средствами самой программы). Общие сведения по работе с ней можно почерпнуть здесь. Кроме того, добавленному пользователю обязательно будет необходимо назначить определенную роль. Для этой цели служит утилита isql.exe, подробнее о которой можно узнать здесь. Если самому это сделать не получилось, то стучитесь в мыло. Думаю, за разумную плату вполне можно будет решить этот вопрос
Конфигурация файлов на стороне сервера. (т.е для машины, где установлен сервер и клиент, т.н. "клиент на сервере"). Ищем файл Hosts, где операционная система хранит некоторые свои настройки. По умолчанию он должен находиться здесь X:\WINDOWS\system32\drivers\etc\ (Х - системный диск, куда установлена операционная система. Обычно это диск С:\).
Если вы вдруг не нашли такого файла по указанному адресу, то создайте его сами. Например, откройте любой текстовый редактор (можно все тот же стандартный виндовый "Блокнот") и сохраните в указанной выше папке файл под именем Hosts (обратите внимание, файл должен быть без расширения, т.е. не Hosts.txt, Hosts.doc и т.д.) Теперь открываем файл Hosts любым текстовым редактором (например, виндовым "блокнотом"). Обычно операционная система пишет в него примерно следующее (все строки начинаются символом решетки #, это т.н. комментарии).
Если перед строкой 127.0.0.1 localhost стоит символ решетки #, то раскомментируйте эту строку (сотрите символ решетки #). Таким образом, Вы включите на вашей машине "виртуальную" сетевую карту ("виртуальную заглушку").
Теперь следующей строкой вам необходимо вписать IP-адрес вашей настоящей сетевой карты (предполагаем, что она у вас есть) и через несколько пробелов в этой же строке имя вашего сервера, по которому его будут "узнавать" удаленные клиенты (на скрине ниже строка выделена желтым цветом). Условимся, что для нашего примера адрес и имя сервера будут 192.168.89.213 myserver.
Далее, мы идем в системный каталог, куда установлен наш сервер и находим файл aliases.conf (по умолчанию он находится в папке X:\Program Files\Firebird\Firebird_2_1, где X - диск, куда установлена Windows, как правило это диск C:\). Открываем файл любым текстовым редактором и видим следующее
Здесь прописываются псевдонимы (алиасы) баз данных, о чем гласит закомментированная запись "List of know database aliases" ("Список известных псевдонимов баз данных"). Псевдоним (алиас) - внешнее описание пути к базе данных. Алиас используется в строке подключения к базе данных в клиентской программе. Представьте, что при подключении приходилось бы каждый раз вручную вводить путь к файлу. А так, ввел легко набираемый или легко запоминаемый алиас, и дело с концом :-) Предположим, что наш файл базы данных называется MY_FIRST_DB0123.FDB и находится он в папке c:\My_DB. Тогда для нашей первой базы данных создадим псевдоним MyFirstDatabase. При этом в файле aliases.conf должна появиться следующая запись (выделено желтым)
Конфигурация файлов на стороне клиента (т.е. для машины, где установлен только клиент, т.н. "удаленный клиент").
Здесь настройки минимальные, но не менее важные. Поэтому будьте внимательны. Итак, ищем на клиентской машине все тот же файл Hosts, который по умолчанию должен находиться в папке X:\Program Files\Firebird\Firebird_2_1 (где X - диск, куда установлена Windows, как правило это диск C:\). Если его нет, то создаем способом, описанным выше (см."Конфигурация файлов для машины, где установлен сервер и клиент"). Открываем файл Hosts текстовым любым редактором и видим следующее
Теперь
будьте внимательны,
добавляем туда строку, которая содержит
IP-адрес компьютера, на
котором установлен сервер,
а не адрес той машины, которую мы сейчас
настраиваем. Это
принципиальный момент, поэтому, если Вам
что-то непонятно, перечитайте этот текст еще раз.
Вспомните, чуть выше мы с Вами настраивали серверную машину и назначали ей IP-адрес, который в нашем примере был следующим 192.168.89.213. Вот и запишем адрес сервера в редактируемый в настоящий момент файл Hosts удаленной клиентской машины. Чтобы не было путаницы, имя серверу укажем то же. Должно получится примерно следующее
Не удивляйтесь, что мы не снимаем комментарий (символ
решетки #) перед строкой с localhost - на удаленной
клиентской машине для нашей работы виртуальная сетевая
карта не нужна. Если строка с localhost изначально была без
символа решетки, то оставьте все, как есть. Повторюсь, нам это
без разницы, а localhost могут использовать другие программы на
вашем компьютере.
Настройка файрволла (брандмауэра).
Ниже пойдет только о стандартном виндовом файрволле (firewall). Если у Вас на машине стоит файрволл от другого производителя, то Вам придется читать "Руководство пользователя" к нему и настраивать его по аналогии с моим описанием. Главное, понять, ЧТО и ЗАЧЕМ мы делаем. Согласно > Википедии, Межсетевой экран или сетевой экран (firewall) — комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами. Основной задачей сетевого экрана является защита компьютерных сетей или отдельных узлов от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, так как их основная задача — не пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в конфигурации. Поскольку наша программа, расположенная на удаленном компьютере, "общается" с базой данных посредством протокола TCP/IP (т.е. передает и получает по сети пакеты данных), то пакеты не будут проходить от машины к машине, если разрешить это делать нашему брандмауэру (файрволлу) явно. Чем мы сейчас и займемся. Идем сюда Пуск → Настройка → Панель управления → Брандмауэр Windows
Выбираем радиокнопку "Включить" и снимаем галочку с чекбокса "Не разрешать исключения", затем переходим на вкладку "Исключения",
в открывшемся окне нажимаем кнопку "Добавить программу", чтобы добавить сервер в список программ, которые файрволл блокировать не будет.
Жмем на кнопку "обзор" и в следующем открывшемся окне находим и выбираем файл fbserver.exe (по умолчанию он должен находиться здесь X:\Program Files\Firebird\Firebird_2_1\bin\, где X - буква диска, куда установлена Windows),
после закрытия окна диалога наш файл появится в списке добавляемых программ, поэтому далее просто жмем "ОК"
и смотрим его уже в списке исключений
Теперь нам необходимо добавить в список исключений порт 3050 (подробнее о настройке порта), который используется сервером Firebird по умолчанию. Жмем кнопку "Добавить порт". В открывшемся окне пишем произвольное имя порта и его номер 3050, затем нажимаем "ОК"
Теперь наш порт также появился в списке исключений и впредь не будет блокироваться файрволлом. Точно также следует поступить, если на вашей машине установлен еще один или несколько серверов с другими портами
Жмем "ОК" и закрываем окно. Все. Если Вы все правильно поняли и сделали, то проблем возникнуть не должно.
|