SAMS2 Приложения
| Оглавление |

# Приложение 1. Описание таблиц и полей в БД

## Список таблиц

websettings | Настройки WEB интерфейса.
timerange | Временные диапазоны.
sconfig | Сопоставление списков URL с шаблонами.
redirect | Списки URL.
sconfig_time | Сопоставление временных диапазонов с шаблонами.
proxy | Настройки прокси сервера.
passwd | Пользователи - администраторы. В таблице содержится логин и пароль пользователя-администратора SAMS. В SAMS2 права на администрирование SAMS можно задать для любого пользователя.
shablon | Шаблоны пользователей.
samslog | Протокол событий SAMS2.
sgroup | Группы пользователей.
reconfig | Команды демону из WEB интерфейса.
url | Содержание группы URL адресов.
squiduser | Пользователи.
squidcache | Подробная информация о трафике пользователей.
cachesum | Суммарная информация о трафике пользователей за однодневный период.
auth_param | Параметры различных способов авторизации.

Таблица websettings – Настройки WEB интерфейса.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_lang | varchar(15) | NOT NULL | EN | Язык.
s_iconset | varchar(25) | NOT NULL | classic | Набор иконок.
s_useraccess | smallint | NOT NULL | 1 | Предоставлять или нет доступ обычным пользователям.
s_urlaccess | smallint | NOT NULL | 1 | Показывать или нет обычным пользователям списки интернет ресурсов.
s_showutree | smallint | NOT NULL | 1 | Показывать или нет дерево пользователей.
s_showname | varchar(5) | NOT NULL | nick | В каком виде отображать имена пользователей. Значение представляет собой набор полей из таблицы squidsuser, перечисленных через пробел.
s_showgraph | smallint | NOT NULL | 0 | Показывать или нет графики.

s_createpdf

varchar(6)

NOT NULL

NONE

Каким образом создавать отчеты в pdf файлы. <LU>
- none – не создавать
- fpdf – использовать fpdf
- pdflib – использовать pdflib
</LU>

s_version | char(5) | NOT NULL | 2.0 | Версия базы данных. Должна изменятся при малейшем изменении структуры.

Таблица timerange – Временные диапазоны.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_trange_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_name | varchar(25) |  | NULL | Имя.
s_days | varchar(14) |  | NULL | Дни недели.
s_timestart | time | NOT NULL |  | Начало периода.
s_timeend | time | NOT NULL |  | Окончание периода.

Таблица sconfig – Сопоставление списков URL с шаблонами.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_shablon_id |  | SERIAL PRIMARY KEY |  | Идентификатор шаблона из таблицы shablon
s_redirect_id | int |  | NULL | Идентификатор списка из таблицы redirect

Таблица redirect – Списки URL.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_redirect_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_name | varchar(25) |  | NULL | Название списка

s_type

varchar(25)

Тип списка: <LU>
- redir – блокировка баннеров
- denied – доступ запрещен
- allow – доступ разрешен
- files – расширения файлов
- replace – перенаправление на другой URL
</LU>

s_dest | varchar(128) |  | NULL | Адрес перенаправления для s_type=replace

Таблица sconfig_time – Сопоставление временных диапазонов с шаблонами.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_shablon_id | int |  |  | Идентификатор шаблона из таблицы shablon
s_trange_id | int |  | NULL | Идентификатор временной границы из таблицы timerange

Таблица proxy – Настройки прокси сервера.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_proxy_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_description | varchar(100) |  | Proxy server | Описание прокси сервера.
s_endvalue | bigint | NOT NULL | 0 | Смещение в файле access.log, с которого начинается обработка.
s_redirect_to | varchar(100) |  | http://your.ip.addr.. | Путь к файлу перенаправления запроса.
s_denied_to | varchar(100) |  | http://your.ip.addr.. | Путь к каталогу где лежат файлы запрета запроса.

s_redirector

varchar(25)

NONE

Какой используется редиректор. Возможные значения: <LU>
- none – не использовать редиректор
- sams – встроенный редиректор
- rejik – внешний редиректор rejik
- squidquard – внешний редиректор squidguard
</LU>

s_delaypool | smallint |  | 0 | Устарело и более не используется. Использовать или нет ограничение скорости канала (shablon.s_shablonpool и shablon.s_userpool).
s_auth | varchar(4) |  | ip | Тип авторизации в системе по умолчанию. Непонятно когда используется. По умолчанию значит если где-то не указано, а где может быть не указано?
s_wbinfopath | varchar(100) |  | /usr/bin | Путь к wbinfo.
s_separator | varchar(15) |  | + | Разделитель домена и имени пользователя. Обычно + или \ или @
s_usedomain | smallint |  | 0 | Использовать или нет домен при создании acl файлов.

s_bigd

smallint

0

Как записывать домен при создании acl файлов. <LU>
- 0 – DOMAIN
- 1 – domain
- 2 – Domain
</LU>

s_bigu

smallint

0

Как записывать пользователя при создании acl файлов. <LU>
- 0 – USER
- 1 – user
- 2 – User
</LU>

s_sleep | smallint |  | 1 | Время (секунды) через которое samsdaemon опрашивает БД насчет команд.

s_parser

smallint

0

Выбор обработчика значений. <LU>
- 0 – не обрабатывать логи
- 1 – раз в промежуток времени
- 2 – постоянный (устарел и не используется)
</LU>

s_parser_time | smallint |  | 1 | Промежуток времени (минуты) через которое запускается обработчик логов. Используется если s_parser=1
s_count_clean | smallint |  | 0 | Очищать или нет счетчики пользователей при окончании периода лимита в шаблонах.
s_nameencode | smallint |  | 0 | Перекодировать или нет имена пользователей при их записи в ACL.

s_realsize

varchar(4)

real

Тип учитываемого трафика. <LU>
- real – реально полученный пользователем
- full – весь трафик, включая и кэш
</LU>

s_checkdns | smallint |  | 0 | Преобразовывать или нет имена в IP адреса при обработке логов.

s_debuglevel

smallint

0

Уровень отладки. Возможные значения: <LU>
- 1 –
- 2 –
- 3 –
- 4 –
- 5 –
- 6 –
- 7 –
- 8 –
- 9 – Показывать работу вспомогательных функций
</LU>

s_defaultdomain | char(25) |  | WORKGROUP | Домен по умолчанию.
s_squidbase | smallint |  | 0 | Количество месяцев, за которые сохранять данные о трафике в базе.
s_udscript | varchar(100) |  | NONE | Скрипт, выполняемый при отключении пользователя.
s_adminaddr | varchar(60) |  | root@localhost | Адрес администратора.
s_kbsize | varchar(15) | NOT NULL | 1024 | Размер килобайта в байтах.
s_mbsize | varchar(15) | NOT NULL | 1048576 | Размер мегабайта в байтах.
s_ldapserver | varchar(30) |  | 0.0.0.0 | Имя или адрес LDAP сервера.
s_ldapbasedn | varchar(50) |  | workgroup | Домен.
s_ldapuser | varchar(50) |  | Administrator | Пользователь - администратор домена.
s_ldappasswd | varchar(50) |  | 0 | Пароль администратора.
s_ldapusergroup | varchar(50) |  | Users | Группа.

Таблица passwd – Администраторы и аудиторы.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_user | varchar(25) | PRIMARY KEY |  | Имя администратора или аудитора. Первичный ключ таблицы.
s_pass | varchar(60) | NOT NULL |  | Пароль (хэш).

s_access

smallint

NOT NULL

0

Код доступа. Возможные значения: <LU>
- 1 – администратор
- 2 – аудитор
</LU>

s_autherrorc | smallint |  | 0 | Счетчик неверных авторизаций. После 3х неверно введенных паролей счетчик обнуляется и доступ в веб интерфейсе блокируется на 1 минуту. При верно введенном пароле обнуляется.
s_autherrort | varchar(16) |  | 0 | Время когда пользователь сможет войти в веб интерфейс. Имеет смысл если s_autherrorc > 0.

Таблица shablon – Шаблоны пользователей.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_shablon_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_name | varchar(25) |  | NULL | Имя шаблона.
s_shablonpool | bigint |  | 0 | Ограничение скорости всего шаблона.
s_userpool | bigint |  | 0 | Ограничение скорости пользователя шаблона.

s_auth

varchar(4)

ip

Тип авторизации пользователей шаблона. Возможные значения: <LU>
- ip – по IP адресу
- ncsa – по имени/паролю
- ntlm – в домене Windows
- adld – в ActiveDirectory
- ldap – в OpenLDAP
</LU>

s_quote | int |  | 100 | Ограничение трафика пользователя шаблона. В мегабайтах.

s_period

varchar(3)

M

Период ограничения трафика. Возможные значения: <LU>
- M – месяц
- W – неделя
- D - день
- число – количество дней
</LU>

s_clrdate | date |  | 1980-01-01 | Дата следующей очистки счетчиков трафика. Используется только при нестандартном периоде ограничения.
s_alldenied | smallint |  | 0 | Признак что доступ запрещен везде. Используется для разрешения доступа только к ресурсам из списка allow.
s_shablon_id2 | int |  | NULL | Идентификатор вторичного шаблона. Если не NULL и не -1, то вместо блокировки, пользователи переводятся во вторичный шаблон до тех пор, пока не произойдет очистка счетчиков у вторичного шаблона или пока пользователь не превысит лимит вторичного шаблона.

Таблица samslog – Протокол событий SAMS2.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_log_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_issuer | varchar(50) | NOT NULL |  | Автор события. Возможные значения: sams, samsf, samsdaemon или имя пользователя, авторизовавшегося в web интерфейсе.
s_date | date | NOT NULL |  | Дата события.
s_time | time | NOT NULL |  | Время события.
s_value | varchar(60) | NOT NULL |  | Описание события.

s_code

char(2)

NOT NULL

Код. Предназначен для просмотра в web интерфесе <LU>
- 1 - события связанные с пользователями (добавление, удаление, отключение)
- 2- события связанные со списками URL (добавление, удаление URL)
- 4 - события связанные с администраторами SAMS
- 10 - события, связанные с демонами (samsdaemon, samsf и т.п.)
</LU>

Таблица sgroup – Группы пользователей.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_group_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_name | varchar(25) |  | NULL | Название группы.

Таблица reconfig – Команды демону из WEB интерфейса.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_proxy_id | int |  |  | Идентификатор прокси сервера из таблицы proxy.
s_service | varchar(15) |  | NULL | Служба, которой выдается команда
s_action | varchar(10) |  | NULL | Команда для службы.

Поддерживаются следующие пары значений s_service/s_action: <LU>

- proxy/shutdown – Выполняется команда SHUTDOWNCOMMAND из файла sams2.conf.
- samsdaemon/shutdown – Завершается работа демона samsdaemon.
- samsdaemon/reload – Обновляются настройки и данные из файла sams2.conf и базы данных.
- squid/reconfig – Обновляются настройки и данные из файла sams2.conf и базы данных, обновляется конфигурационный файл squid с последующим его перезапуском
- database/export – Содержимое таблицы squidcache записывается во внешний файл. Используется только для тестов(!)
</LU>
Таблица url – Содержание группы URL адресов.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_url_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_redirect_id | int |  |  | Идентификатор списка из таблицы redirect.
s_url | varchar(132) |  |  | URL, его часть или регулярное выражение. Зависит от значения s_type.

Таблица squiduser – Пользователи.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_user_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_group_id | int |  |  | Идентификатор группы из таблицы group.
s_shablon_id | int |  |  | Идентификатор шаблона из таблицы shablon.
s_nick | char(50) |  | NULL | Логин.
s_family | char(50) |  | NULL | Фамилия.
s_name | char(50) |  | NULL | Имя.
s_soname | char(50) |  | NULL | Отчество.
s_domain | char(50) |  | NULL | Домен.
s_quote | int | NOT NULL | 0 | Ограничение трафика в мегабайтах. При значении -1 используется значение shablon.s_quote.
s_size | bigint | NOT NULL | 0 | Общий объем использованного трафика в байтах.
s_hit | bigint | NOT NULL | 0 | Объем трафика из кэша в байтах.

s_enabled

smallint

1

Статус активности. <LU>
- -1 – отключен администратором.
- 0 – отключен за превышение трафика.
- 1 – активный.
- 2 – переведен в другой шаблон за превышение трафика.
</LU>

s_ip | char(15) |  |  | IP адрес пользователя. Используется вместо s_nick если shablon.s_auth=ip.
s_passwd | varchar(20) |  |  | Пароль на доступ (хэш). Используется если shablon.s_auth=ncsa.
s_gauditor | smallint |  | 0 | Устарело и более не используется. Может или нет смотреть трафик своей группы.
s_autherrorc | smallint |  | 0 | Счетчик неверных авторизаций. После 3х неверно введенных паролей счетчик обнуляется и доступ в веб интерфейсе блокируется на 1 минуту. При верно введенном пароле обнуляется.
s_autherrort | varchar(16) |  | 0 | Время когда пользователь сможет войти в веб интерфейс. Имеет смысл если s_autherrorc > 0.

s_webaccess

varchar(16)

W

Права доступа в веб интерфейсе. Набор символов, каждый из которых отвечает за свой уровень доступа. <LU>
- W – Имеет право смотреть свою статистику.
- G – Имеет право смотреть статистику пользователей своей группы
- S – Имеет право смотреть статистику Всех пользователей
- A – Имеет право активировать/отключать пользователей
- U – Имеет право добавлять пользователей в SAMS
- L – Имеет право изменять списки URL
- C – Имеет право настраивать SAMS
</LU>

Таблица squidcache – Подробная информация о трафике пользователей.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_cache_id |  | SERIAL PRIMARY KEY |  | Первичный ключ таблицы.
s_proxy_id | int |  |  | Идентификатор прокси сервера из таблицы proxy.
s_date | date | NOT NULL | 1980-01-01 | Дата.
s_time | time | NOT NULL | 00:00:00 | Время.
s_user | varchar(50) |  |  | Пользователь.
s_domain | varchar(50) |  | NULL | Домен.
s_size | int | NOT NULL | 0 | Размер ресурса.
s_hit | int | NOT NULL | 0 | Размер ресурса из кэш.
s_ipaddr | varchar(15) | NOT NULL |  | IP адрес, откуда был запрос.
s_period | int |  | 0 | Время ожидания прокси сервера.
s_method | char(15) | NOT NULL |  | Метод ответа squid. Подробнее смотрите информацию по squid, секцию Cache Result.
s_url | varchar(150) | NOT NULL |  | Адрес ресурса.

Таблица cachesum – Суммарная информация о трафике пользователей за однодневный период.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---
s_proxy_id | int | NOT NULL |  | Идентификатор прокси сервера из таблицы proxy.
s_date | date | NOT NULL | 1980-01-01 | Дата.
s_user | varchar(50) | NOT NULL |  | Пользователь.
s_domain | varchar(50) |  |  | Домен.
s_size | bigint | NOT NULL | 0 | Общий объем трафика пользователя (в байтах) за 1 день с указанного прокси.
s_hit | bigint | NOT NULL | 0 | Объем трафика пользователя из кэша (в байтах) за 1 день с указанного прокси.

Таблица auth_param – Параметры различных способов авторизации.

Имя поля | Тип поля | Параметры | Значение по умолчанию | Описание
--- | --- | --- | --- | ---

s_auth

varchar(4)

Тип авторизации. Возможные значения: <LU>
- ip – по IP адресу
- ncsa – по имени/паролю
- ntlm – в домене Windows
- adld – в ActiveDirectory
- ldap – в OpenLDAP
</LU>

s_param | varchar(50) |  |  |
s_value | varchar(50) |  |  |

Дополнительно создаются индексы:
CREATE UNIQUE INDEX idx_squidcache on squidcache ( s_user, s_proxy_id );
CREATE UNIQUE INDEX idx_cachesum on cachesum ( s_proxy_id, s_date, s_user, s_domain );
CREATE UNIQUE INDEX idx_squiduser on squiduser ( s_nick, s_name, s_shablon_id, s_group_id );
CREATE UNIQUE INDEX idx_samslog on samslog ( s_code, s_issuer );
CREATE UNIQUE INDEX idx_url on url ( s_redirect_id, s_url );

| Оглавление |