Защита ввода-вывода на внешний носитель
СУБД ЛИНТЕР использует внешние устройства постоянного хранения информации для размещения таблиц данных и временных рабочих файлов.
Расположение конкретного объекта БД (файла таблицы, временного рабочего файла) внутри БД однозначно идентифицируется четырехсимвольным идентификатором – ЛИНТЕР-именем устройства. ЛИНТЕР-имя используется при создании новых таблиц или изменении расположения файлов старых.
Информация о соответствии ЛИНТЕР-имени устройства и соответствующего ему реального физического устройства хранится в системной таблице $$$DEVICE
(см. документ «Системные таблицы и представления»,
подраздел «$$$DEVICE»).
Данная таблица создается администратором безопасности БД и доступна только ему.
Описание доступа к устройству (столбец $$$DESCR
) включает следующие составляющие:
-
метка доступа – набор из двух значений:
RAL
иWAL
. Служит для принудительного контроля над созданием файлов БД (файлов таблиц и временных файлов) на описываемом устройстве:-
RAL-уровень устройства представляет собой максимальный RAL-уровень объектов (таблиц), которые могут быть размещены на данном устройстве;
-
RAL-уровень устройства представляет собой минимальный уровень доступа пользователя (RAL-пользователя), необходимый для создания этим пользователем объектов (таблиц и временных файлов) на данном устройстве;
-
WAL-уровень устройства представляет собой максимальный WAL-уровень пользователя, необходимый для удаления таблицы;
-
-
маска признаков доступа – проводится или не проводится проверка доступа к соответствующему устройству, запрещен или нет доступ к нему целиком для системы. В последнем случае все запросы на создание новых (получение информации из существующих) объектов будут отвергаться;
-
маска разрешения доступа для групп пользователей – описываются все 250 групп.
Существует дополнительный параметр, позволяющий управлять доступом для устройств, отсутствующих в таблице устройств. Он указывает, будет ли запрашиваться информация о неописанных ЛИНТЕР-устройствах у операционной системы, или запросы на работу с данными устройствами будут отвергаться.
Для управления контролем устройств создателем БД используются следующие команды:
-
создание устройства:
CREATE [IF NOT EXISTS] DEVICE
< имя устройства >
DIRECTORY
< каталог >
[COMMENT
< комментарий >
][LEVEL (
< RAL-устройства >
,< WAL-устройства >
)];< имя устройства >
-
ЛИНТЕР-имя, используемое в качестве имени устройства при указании расположения файлов создаваемых таблиц.
< каталог >
-
Символьная строка (длиной до 256 символов), определяющая местоположение (путь) (в терминах соответствующей ОС) файлов таблиц при их создании (в команде
CREATE TABLE
) или модификации местоположения этих файлов (в командеALTER TABLE
).
Оператор
CREATE DEVICE
создает новое ЛИНТЕР-имя, которое впоследствии может использоваться в запросах на создание (модификацию) таблиц. При создании устройства может быть указан комментарий к нему (пояснение о назначении устройства) и уровни доступа к устройству.Опция
IF NOT EXISTS
отменяет выполнение оператора, если указанное ЛИНТЕР-имя устройства уже существует в БД. -
удаление устройства:
DROP DEVICE
< имя устройства >
;Команда удаляет ЛИНТЕР-имя устройства из списка разрешенных имен.
-
модификация параметров устройства:
ALTER DEVICE
< имя устройства >
[DIRECTORY< каталог >
][LEVEL (
< RAL-устройства >
,< WAL-устройства >
)];Команда позволяет изменить значение ЛИНТЕР-имени (путь к физическому устройству) и уровни защиты устройства.
При использовании операторов ALTER DEVICE
и DROP DEVICE
необходимо учитывать, что существующие файлы, расположенные на новых устройствах, могут стать недоступными для некоторых пользователей.
Значение (содержание) устройства SY00
определяется в момент старта системы и не может быть переопределено в произвольный каталог, но все ограничения, наложенные на него, будут выполняться обычным образом, за исключением отношений, необходимых для функционирования СУБД ЛИНТЕР и соответствующих рабочих файлов.
-
разрешить группе/всем пользователям доступ к устройству:
GRANT ACCESS ON DEVICE
< имя устройства >
TO {< имя группы >
| ALL}; -
запретить группе/всем пользователям доступ к устройству:
REVOKE ACCESS ON DEVICE
< имя устройства >
FROM {
< имя группы >
| ALL};Специальными командами администратор безопасности может разрешить или запретить доступ к устройствам, которые находятся (или могут находиться в будущем) в доверенном окружении в рамках ОС и сети как для всех текущих и будущих пользователей СУБД, так и для определенной группы текущих пользователей.
-
разрешить группе/всем пользователям доступ к незарегистрированным устройствам:
GRANT ACCESS ON UNLISTED DEVICE TO {
< имя группы >
| ALL};Команда разрешает работу с ЛИНТЕР-именами устройств из доверенного окружения средствами операционной системы (СУБД будет запрашивать информацию о физическом расположении устройства у операционной системы).
-
запретить группе/всем пользователям доступ к незарегистрированным устройствам:
REVOKE ACCESS ON UNLISTED DEVICE FROM {
< имя группы >
| ALL};Команда запрещает работу с ЛИНТЕР-именами устройств из доверенного окружения средствами операционной системы.
При использовании команды
REVOKE ACCESS
необходимо учитывать, что существующие объекты, расположенные на новом месте, могут стать недоступными для соответствующих групп.Информация о возможности работы с ЛИНТЕР-именами произвольно используемых устройств (т.е. с устройств из доверенного окружения) располагается в описании БД.