Skip to content

Структура базы данных qISP

ReaGed edited this page Apr 10, 2017 · 2 revisions

Данная статья посвящена описанию таблиц внутренней базы данных qISP. Описание разбито в соответствии со структурой модулей qISP. Приведены диаграммы структуры базы данных логического уровня, типы данных на физическом уровне зависят от особенностей конкретной СУБД. Тип bool на физическом уровне представлен строковым полем с длиной 3 символа и возможными значениями: "on" (true) и "off" (false). Наличие или отсутствие определенных таблиц при работе qISP может быть обусловлено составом загружаемых модулей — необходимые для каждого модуля таблицы создаются при загрузке модуля.

Модуль управления пользователями

Модуль управления пользователями

Таблица "users" Хранит информацию о пользователях qISP, а также администраторах и администраторах-суперпользователях. Имеет следующие поля:

  • 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-пользователях qISP. Имеет следующие поля:

  • id - уникальный идентификатор, первичный ключ
  • name - имя ftp-пользователя
  • home - корневой каталог ftp для данного пользователя, хранится как путь, указанный относительно домашней директории пользователя-владельца ftp-пользователя
  • passwd - пароль ftp-пользователя
  • hash - значение данного поля определяет, шифровано ли значение пароля, хранящегося в поле passwd
  • active - признак активности ftp-пользователя (включен-выключен)
  • enabled - указывает, был ли пользователь выключен автоматически при выключении владельца
  • users - внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца ftp-пользователя

Модуль управления Web-доменами

Модуль управления Web-доменами

Таблица "webdomain" Хранит информацию о созданных с помощью qISP 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-скрипта, используемого Web-доменом

Модуль управления доменными именами

Модуль управления доменными именами

Таблица "domain" Хранит информацию о созданных с помощью qISP доменных именах. Имеет следующие поля:

  • id - уникальный идентификатор, первичный ключ
  • name - доменное имя
  • dtype - тип доменного имени в управляемом DNS-сервере. Имеет два значения:
  • master — доменное имя представляет основную доменную зону сервера DNS
  • slave — доменное имя представляет вторичную доменную зону сервера DNS
  • users - внешний ключ, уникальный идентификатор записи в таблице "users", служит для определения владельца доменного имени. Может иметь значение NULL, в случае, если владельцем доменного имени являются администраторы сервера

Таблица "domain_auto" Служит для предоставления информации о доменных именах и ресурсных записях DNS, которые были созданы автоматически при создании других сущностей qISP (например, почтовых или Web-доменов). Имеет поля:

  • name - первичный ключ, имя ресурсной записи или доменное имя (если поле base не заполнено (имеет значение NULL или ""))
  • base - доменное имя, к которому относится ресурсная запись, имя которой указано в поле name

Таблица "slave_ns" Хранит информацию об используемых в qISP внешних серверах имён. Имеет следующие поля:

  • id - уникальный идентификатор, первичный ключ
  • name - URL панели управления внешним сервером имён
  • username - имя пользователя, использующегося для авторизации в панели управления внешним сервером имён
  • password - пароль пользователя для авторизации в панели управления внешним сервером имён

Модуль управления почтовыми доменами

Модуль управления почтовыми доменами

Таблица "emaildomain_options" Хранит информацию о дополнительных параметрах почтовых ящиков (таких как greylisting, spamassassin и т.д.):

  • id - уникальный идентификатор, первичный ключ
  • domain - внешний ключ, уникальный идентификатор записи в таблице "emaildomain", служит для определения почтового домена для которого включен тот или иной параметр
  • option - включенный параметр почтового домена (если параметр не задан он считается выключенным)

Таблица "emaildomain" Хранит информацию о почтовых доменах:

  • id - уникальный идентификатор, первичный ключ
  • name - имя почтового домена
  • ip - ip-адрес почтового домена
  • defaction - действие для домена:
  1. если для домена не найден почтовый ящик с таким именем получателя то выполняется действие (отклонить, перенаправить, игнорировать);
  2. если данный домен является перенаправляющим (указан перенаправленным для другого домена) то в нём производиться поиск почтового ящика с именем, которое не найдено в домене, с которого перенаправляют.
  • 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" Хранит информацию об используемых пользователями qISP серверах баз данных. Имеет следующие поля:

  • 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", служит для определения базы данных, к которой относится информация