Дополнительные словари данных
Кроме главного словаря данных, БД может содержать еще и дополнительные словари, которые добавляются в БД администратором БД исходя из функциональных требований клиентских приложений. Отсутствие объектов дополнительного словаря не критично для работоспособности СУБД и поэтому они не добавляются в БД при её первоначальном создании.
Создать объекты дополнительного словаря можно при помощи стандартных
SQL-скриптов,
входящих в дистрибутив СУБД ЛИНТЕР
(расположены в подкаталоге
\dict
установочного каталога СУБД ЛИНТЕР).
SQL-скрипты могут быть выполнены утилитой inl или утилитой «Рабочий стол СУБД ЛИНТЕР».
Ниже приведен потенциально возможный состав объектов дополнительного словаря СУБД ЛИНТЕР.
Скрипт
systab.sql
создаёт следующие таблицы:
-
$$$GLBVARS
– словарь глобальных переменных хранимых процедур. Содержит информацию об именах, типах данных и текущих значениях глобальных переменных хранимых процедур. Если эта таблица не создана, то работа с глобальными переменными не поддерживается; -
$$$PRCD и $$$PROC
– словари хранимых процедур. Содержат информацию об именах, типах параметров и о типе возвращаемого значения для каждой хранимой процедуры. Если эти таблицы не созданы, то хранимые процедуры в БД работать не будут; -
$$$TRIG
– словарь триггеров. Содержит имена таблиц, для которых созданы триггеры, идентификатор владельца триггера, информацию о параметрах триггера. СУБД ЛИНТЕР поддерживает работу с триггерами, только если таблица$$$TRIG
существует в БД; -
$$$SEQ
– словарь последовательностей. Содержит информацию о создателе последовательности, начальном, максимальном и текущем значении последовательности, а также шаг последовательности. Без этой таблицы работа с последовательностями невозможна.
Для работы с расширенной подсистемой защиты данных (в частности, дискретный и мандатный контроль доступа к данным), которая включает в себя создание групп и уровней пользователей, контроль доступа с сетевых станций и ввода-вывода на внешние устройства, а также средств аудита в БД, необходимо создать специальные служебные таблицы.
Скрипты security.sql
, extsec.sql
и enaacc.sql
создают следующие таблицы:
-
$$$LEVEL
– таблица уровней доступа. Уровни доступа вводятся для проверки на уровне ядра СУБД ЛИНТЕР прав на чтение/запись информации по мандатному принципу контроля доступа. Таблица содержит номер и имя групп доступа; -
$$$GROUP
– таблица групп пользователей. Содержит информацию о пользователях, включенных в группу; о правах, назначенных непосредственно группе, и переданных ей от других групп; -
$$$STATION
– содержит сведения о сетевых станциях (имя, протокол доступа, сетевой адрес, допустимый уровень доступа); -
$$$RELATION
– содержит описание отношений между сетевыми станциями и пользователями БД; -
$$$DEVICE
– таблица внешних устройств. Содержит описание (имя, путь, допустимый уровень доступа для чтения и для записи) всех внешних устройств, на которых располагаются файлы БД. Без этой таблицы также невозможно запустить внутреннее резервное сохранение БД средствами ядра СУБД ЛИНТЕР; -
$$$AUDIT
– протокол работы с БД. Если включено протоколирование, то в эту таблицу будут занесены все действия клиентских приложений, связанные с идентификацией и аутентификацией, запросами на доступ к объектам защиты, созданием/уничтожением объектов защиты, c изменением прав доступа и т.п. Т.е. регистрации подлежат время и тип события, имя инициировавшего событие субъекта, сетевой адрес клиентской станции, статус завершения операции и т.д.Таблица
$$AUDIT
имеет довольно сложную структуру и для удобства просмотра протокола аудита имеется стандартное представлениеAUDIT_EVENTS
.
Скрипты
distr.sql
, arepl.sql
создают таблицы,
необходимые для распределенной обработки данных и репликации:
-
SERVERS
– содержит имена удаленных серверов, на которые могут реплицироваться данные; -
$$$REPL
– содержит описание правил репликации таблиц; -
$$$EXTREPL
– содержит описание правил репликации столбцов.
Для хранения информации о кодовых страницах на физическом уровне необходимо создать системные словари для работы с кодировками.
Скрипты
cstables.sql
, charsets.sql
, mbcps.sql
и
descmb.sql
создают необходимые таблицы и заполняют
их наиболее распространенными кодовыми страницами:
-
$$$CHARSET
– таблица кодовых страниц. Содержит информацию о коде страницы в ОС Windows, имя и информацию о свойствах страницы, о «весе» символов кодовой страницы, о верхнем/нижнем регистре и о преобразовании в UNICODE. Эта таблица позволяет хранить как информацию об однобайтовых кодовых страницах, так и о многобайтовых; -
$$$TRANSL
– таблица трансляций. Содержит информацию о трансляции однобайтовых кодовых страниц друг в друга: порядковый номер трансляции, номер кодовой страницы, из которой осуществляется трансляция, номер кодовой страницы, в которую осуществляется трансляция, имя трансляции, и собственно саму таблицу трансляции (информация о соответствии символов).
Для работы с СУБД через ODBC-драйвер необходимо исполнить SQL-скрипт
catalog.sql
. Он содержит таблицы ODBC-каталога. Без исполнения этого
файла ODBC-приложения не смогут работать с БД. Перед исполнением
catalog.sql
необходимо выполнить
systab.sql
и
security.sql
,
иначе не все возможности СУБД будут доступны через ODBC-драйвер.
Для поддержки .NET-интерфейса необходимо выполнить SQL-скрипты
catalog.sql
и
extsec.sql
.
Для работы подсистемы фразового поиска необходимо создать системные
словари при
помощи скриптов
search.sql
и
default.sql
.
Для поддержки оперативного резервирования данных необходимо создать
системную таблицу
при помощи скрипта
inkernel.sql
.
Для создания таблицы диагностических сообщений в соответствии с выбранным языком интерфейса
СУБД ЛИНТЕР необходимо выполнить SQL-скрипт
cerrors.sql
.
Тексты сообщений должны быть загружены из файла
errors.lod
.