Структура базы данных ISPmanager Lite
Данная статья посвящена описанию таблиц внутренней базы данных ISPmanager Lite. Описание разбито в соответствии со структурой модулей ISPmanager. Приведены диаграммы структуры базы данных логического уровня, типы данных на физическом уровне зависят от особенностей конкретной СУБД. Тип bool на физическом уровне представлен строковым полем с длиной 3 символа и возможными значениями: "on" (true) и "off" (false). Наличие или отсутствие определенных таблиц при работе ISPmanager может быть обусловлено составом загружаемых модулей — необходимые для каждого модуля таблицы создаются при загрузке модуля.
Модуль управления пользователями
Таблица "users"
Хранит информацию о пользователях ISPmanager, а также администраторах и администраторах-суперпользователях. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя пользователя
- fullname — полное имя пользователя
- passwd, safepasswd — пароль пользователя (в шифрованном виде)
- active — признак активности пользователя (включен-выключен)
- uid — уникальный идентификатор пользователя (применяется для системных пользователей)
- gid — уникальный идентификатор группы пользователя (применяется для системных пользователей)
- home — полный путь до домашней директории пользователя
- level — уровень доступа пользователя. Применяемые значения уровней доступа:
30 — администратор-суперпользователь,
29 — администратор,
16 — пользователь - preset — имя используемого пользователем шаблона
- shell — полный путь до бинарного файла shell, также используется для идентификации, доступен ли shell пользователю
- create_time — дата и время создания пользователя
- tag — служебное поле
Таблица "userprops"
Хранит информацию о свойствах пользователя, в частности размеры назначенных пользователю лимитов. Поля таблицы:
- users — внешний ключ, уникальный идентификатор записи в таблице "users", часть составного первичного ключа
- name — имя свойства пользователя, часть составного первичного ключа
- value — значение свойства пользователя
Таблица "preset"
Предназначена для хранения информации о создаваемых шаблонах пользователей. Поля таблицы:
- id — уникальный идентификатор, первичный ключ
- name — имя шаблона
- users — зарезервировано для дальнейшего использования
- level — зарезервировано для дальнейшего использования, имеет значение 16 (Пользователь)
Таблица "presetprops"
Хранит информацию о свойствах шаблона, в частности размеры лимитов, назначаемых данным шаблоном. Поля таблицы:
- preset — внешний ключ, уникальный идентификатор записи в таблице "preset", часть составного первичного ключа
- name — имя свойства шаблона, часть составного первичного ключа
- value — значение свойства шаблона
Таблицы вида "{type}quota"
Предназначена для хранения информации о различных видах системных квот пользователей. Поля таблицы:
- id — уникальный идентификатор, первичный ключ
- quota_limit — установленное значение квоты
- quota_used — значение использованного пользователем размера квоты
- tag — служебное поле
В настоящий момент используются таблицы:
- Linux-подобные системы:
-
- usrquota — квота системных пользователей
- grpquota — квота системных групп пользователей
- системы под управлением Microsoft Windows Server:
-
- sysquota — квота системных пользователей
- fsrmquota — квота управления ресурсами файлового сервера (роль FSRM)
Таблица "ftp_users"
Хранит информацию об ftp-пользователях ISPmanager. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя ftp-пользователя
- home — корневой каталог ftp для данного пользователя, хранится как путь, указанный относительно домашней директории пользователя-владельца ftp-пользователя
- passwd — пароль ftp-пользователя
- hash — значение данного поля определяет, шифровано ли значение пароля, хранящегося в поле passwd
- active — признак активности ftp-пользователя (включен-выключен)
- enabled — указывает, был ли пользователь выключен автоматически при выключении владельца
- users — внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца ftp-пользователя
Модуль управления Web-доменами
Структура базы данных модуля управления Web-доменами
Таблица "webdomain"
Хранит информацию о созданных с помощью ISPmanager Web-доменах. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя Web-домена
- docroot — полный путь до корневой директории Web-домена
- active — признак активности Web-домена (включен-выключен)
- int_suspend — указывает, был ли Web-домен выключен автоматически при выключении владельца
- email — e-mail администратора Web-домена
- charset — кодировка страниц Web-домена
- dirindex — список индексных страниц Web-домена
- secure — признак активности SSL для Web-домена (включен-выключен)
- sslport — порт SSL для Web-домена
- framework — используемый интерфейс или фреймворк (например, rails, wsgi)
- autosubdomain —
- php — признак использования Web-доменом PHP
- php_mode — признак использования PHP как модуля Apache
- cgi — признак использования Web-доменом CGI
- cgi_ext — список расширений файлов CGI
- dropped_down — зарезервировано для внутреннего использования
- log_access — признак использования журнала запросов
- log_error — признак использования журнала ошибок
- rotation_period — период ротации журналов Web-домена
- rotation_size — размер журнала, при котором необходимо произвести ротацию
- rotation_count — количество сохраняемых ротированных файлов журналов
- analyser — тип используемого анализатора журналов
- analyser_period — период анализа журналов
- analyser_lang — язык, используемый анализатором журналов для вывода статистики
- users — внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца Web-домена
Таблица "webdomain_alias"
Хранит информацию о псевдонимах Web-доменов. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — псевдоним Web-домена
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, к которому относится псевдоним
Таблица "webdomain_ipaddr"
Содержит информацию об IP-адресах Web-доменов. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- value — IP-адрес Web-домена
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, к которому относится IP-адрес
Таблица "webdomain_error"
Содержит информацию о страницах ошибок Web-доменов. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- code — код ошибки
- uri — url-адрес или url-путь страницы ошибки
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, к которому относится страница ошибки
Таблица "webdomain_redirect"
Содержит информацию о редиректах Web-доменов. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- status — код ответа веб-сервера при выполнении перенаправления
- path — адрес, при вызове которого должно выполниться перенаправление
- uri — url-адрес, на который выполняется перенаправление
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, к которому относится редирект
Таблица "webdomain_access_dir"
Хранит информацию о каталогах Web-доменов с ограниченным доступом. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- path — полный путь до каталога с ограниченным доступом
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, к которому относится каталог с ограничением доступа
Таблица "webdomain_access_users"
Хранит информацию об учетных записях пользователей каталогов Web-доменов с ограниченным доступом. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя пользователя в каталоге с ограничением доступа
- passwd, pwhash — пароль пользователя
- active — признак активности пользователя (включен-выключен)
- webdomain_access_dir — внешний ключ, уникальный идентификатор записи в таблице "webdomain_access_dir", служит для определения каталога Web-домена с ограничением доступа, к которому относится запись о пользователе
Таблица "aps"
Предназначена для хранения информации о Web-скриптах (APS). Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя Web-скрипта
- catalog_id — уникальный номер Web-скрипта из каталога доступных Web-скриптов
- timestamp — дата и время последнего обновления данного Web-скрипта
Таблица "aps_assign"
Хранит информацию о Web-скриптах, используемых Web-доменами. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- path — путь до установленного Web-скрипта относительно домашней директории пользователя
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, для которого установлен Web-скрипт
- aps — внешний ключ, уникальный идентификатор записи в таблице "aps", служит для определения Web-скрипта, используемого Web-доменом
Таблица "aps_entry"
Хранит информацию о свойствах Web-скрипта. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя свойства
- value — значение свойства
- lang — язык, используемый для указания значения свойства
- webdomain — внешний ключ, уникальный идентификатор записи в таблице "webdomain", служит для определения Web-домена, для которого установлен Web-скрипт
- aps — внешний ключ, уникальный идентификатор записи в таблице "aps", служит для определения Web-скрипта,
Модуль управления доменными именами
Структура базы данных модуля управления доменными именами
Таблица "domain"
Хранит информацию о созданных с помощью ISPmanager доменных именах. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — доменное имя
- dtype — тип доменного имени в управляемом DNS-сервере. Имеет два значения:
master — доменное имя представляет основную доменную зону сервера DNS
slave — доменное имя представляет вторичную доменную зону сервера DNS - users — внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца доменного имени. Может иметь значение NULL, в случае, если владельцем доменного имени являются администраторы сервера
Таблица "domain_auto"
Служит для предоставления информации о доменных именах и ресурсных записях DNS, которые были созданы автоматически при создании других сущностей ISPmanager (например, почтовых или Web-доменов). Имеет поля:
- name — первичный ключ, имя ресурсной записи или доменное имя (если поле base не заполнено (имеет значение NULL или ""))
- base — доменное имя, к которому относится ресурсная запись, имя которой указано в поле name
Таблица "slave_ns"
Хранит информацию об используемых в ISPmanager внешних серверах имён. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — URL панели управления внешним сервером имён
- username — имя пользователя, использующегося для авторизации в панели управления внешним сервером имён
- password — пароль пользователя для авторизации в панели управления внешним сервером имён
Модуль управления почтовыми доменами
Структура базы данных модуля управления почтовыми доменами
Таблица "emaildomain_options"
Хранит информацию о дополнительных параметрах почтовых ящиков (таких как greylisting, spamassassin и т.д.):
- id — уникальный идентификатор, первичный ключ
- domain — внешний ключ, уникальный идентификатор записи в таблице "emaildomain", служит для определения почтового домена для которого включен тот или иной параметр
- option — включенный параметр почтового домена (если параметр не задан он считается выключенным)
Таблица "emaildomain"
Хранит информацию о почтовых доменах:
- id — уникальный идентификатор, первичный ключ
- name — имя почтового домена
- ip — ip-адрес почтового домена
- defaction — действие для домена:
- если для домена не найден почтовый ящик с таким именем получателя то выполняется действие (отклонить, перенаправить, игнорировать);
- если данный домен является перенаправляющим (указан перенаправленным для другого домена) то в нём производиться поиск почтового ящика с именем, которое не найдено в домене, с которого перенаправляют.
- redirval — параметры "действия" для домена (куда перенаправить, с каким сообщением отклонить)
- active — признак включен ли данный домен
- int_suspend — признак выключен ли внешним вызовом
- tag — служебное поле. Категорически не рекомендуется изменять данное значение вручную.
- users — внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца домена
Таблица "email"
Хранит информацию о почтовых ящиках:
- id — уникальный идентификатор, первичный ключ
- name — имя почтового ящика
- path — путь до почтового ящика
- password — пароль почтового ящика
- maxsize — максимальный размер в Мб.
- used — использовано памяти в Мб.
- active — признак включен ли данный почтовый ящик
- int_suspend — признак выключен ли внешним вызовом
- dontsave — признак не сохранять сообщения в почтовый ящик
- note — описание
- tag — служебное поле. Категорически не рекомендуется изменять данное значение вручную.
- domain — внешний ключ, уникальный идентификатор записи в таблице "emaildomain", служит для определения принадлежности почтового ящика почтовому домену
Таблица "email_options"
Хранит информацию о параметрах почтовых ящиков:
- id — уникальный идентификатор, первичный ключ
- email — внешний ключ, уникальный идентификатор записи в таблице "email", служит для определения принадлежности параметра почтовому ящику
- options — имя параметра (если параметр не найден считается что он выключен),
Таблица "email_alias"
Хранит информацию о псевдонимах почтовых ящиков:
- id — уникальный идентификатор, первичный ключ
- name — имя псевдонима почтового ящика
- email — внешний ключ, уникальный идентификатор записи в таблице "email", служит для определения принадлежности псевдонима почтовому ящику
Таблица "email_forward"
Хранит информацию о перенаправлениях почтовых ящиков:
- id — уникальный идентификатор, первичный ключ
- name — имя перенаправления для почтового ящика
- email — внешний ключ, уникальный идентификатор записи в таблице "email", служит для определения принадлежности перенаправления почтовому ящику
Таблица "email_responder"
Хранит информацию о автоответчиках:
- id — уникальный идентификатор, первичный ключ
- fromaddr — адрес который будет указан как отправитель в сообщении автоответчика
- subject — тема письма
- body — тело письма
- attach — путь до прикрепляемого автоответчиком файла
- active — признак, включен автоответчик
- email — внешний ключ, уникальный идентификатор записи в таблице "email", служит для определения принадлежности автоответчика почтовому ящику
Таблица "email_filter"
Хранит информацию о сортировщиках:
- id — уникальный идентификатор, первичный ключ
- name — имя сортировщика
- allany — сопоставление условий сортировщика (все верны, любое верно, если пусто — без условий)
- active — признак, включен сортировщик
- pos — позиция скрипта в файле с ".dovecot.sieve" (в директории почтового домена)
- tag — служебное поле. Категорически не рекомендуется изменять данное значение вручную.
- email — внешний ключ, уникальный идентификатор записи в таблице "email", служит для определения принадлежности сортировщика почтовому ящику
Таблица "mfiltercond"
Хранит информацию о условиях сортировщика:
- id — уникальный идентификатор, первичный ключ
- param — параметр сортировщика (header envelope size и т.д.)
- mod — способ сравнения (match contains over и т.д.)
- what — дополнительно к основному параметру. Например если параметр — header, то здесь указывается например subject
- ifnot — логическое нет
- filter — внешний ключ, уникальный идентификатор записи в таблице "email_filter", служит для определения принадлежности условия к сортировщику
Таблица "mfilteraction"
Хранит информацию о действиях сортировщика:
- id — уникальный идентификатор, первичный ключ
- action — действие (удалить сохранить и т.д.)
- actval — значение действия (если отклонить — с каким сообщением, если сохранить в директорию — то в какую)
- filter — внешний ключ, уникальный идентификатор записи в таблице "email_filter", служит для определения принадлежности действия к сортировщику
Таблица "mfiltercondvals"
Хранит информацию о значениях для сравнения в условиях сортировщика:
- id — уникальный идентификатор, первичный ключ
- value — значения условия
- cond — внешний ключ, уникальный идентификатор записи в таблице "mfiltercond", служит для определения принадлежности значения к условию
Таблица "email_blacklist"
Хранит информацию о "черном списке":
- id — уникальный идентификатор, первичный ключ
- name — значения "черного списка"
Таблица "email_whitelist"
Хранит информацию о "белом списке":
- id — уникальный идентификатор, первичный ключ
- name — значения "белого списка"
Таблица "greywlist"
Хранит информацию о "белом списке" greylisting-а:
- id — уникальный идентификатор, первичный ключ
- name — значения "белого списка" greylisting-а
Модуль управления базами данных
Структура базы данных модуля управления базами данных
Таблица "db_server"
Хранит информацию об используемых пользователями ISPmanager серверах баз данных. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя сервера баз данных
- type — тип СУБД, может иметь следующие значения:
mssql — СУБД Microsoft SQL Server
mysql — СУБД MySQL
postgresql — СУБД PostgreSQL - host — адрес сервера баз данных
- username — имя пользователя, используемого для управления сервером баз данных
- password — пароль пользователя, используемого для управления сервером баз данных
Таблица "db_assign"
Хранит информацию о базах данных, используемых пользователями ISPmаnager. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- name — имя базы данных
- users — внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца базы данных
- db_server — внешний ключ, уникальный идентификатор записи в таблице "db_server", служит для определения сервера баз данных, на котором создана база данных
Таблица "db_cache"
Используется для хранения сведений кэширования информации о базах данных. Имеет следующие поля:
- id — уникальный идентификатор, первичный ключ
- next_check — дата и время следующей проверки базы данных
- size — текущий размер базы данных
- db_assign — внешний ключ, уникальный идентификатор записи в таблице "db_assign", служит для определения базы данных, к которой относится информация