Уровни мандатного доступа к объектам БД
Функция
Задает RAL/WAL-уровни мандатного доступа для объектов БД (таблиц, представлений и т.п.) в текущем соединении с ядром СУБД ЛИНТЕР.
Примечание
Поддерживается только в СУБД ЛИНТЕР БАСТИОН.
Спецификация
Общие правила
-
В отличие от команды
set session default security
, данная команда влияет не на метки доступа в INSERT/UPDATE-запросах, а устанавливает в канале метку доступа для работы с объектами БД (таблицами, представлениями и т.п.). По умолчанию эта метка берётся из описателя пользователя, выполняющего данную команду. -
Команда распространяется на все открытые дочерние каналы (которые уже открыты ранее или будут открыты впоследствии).
-
Устанавливаемые командой уровни чтения и записи должны быть не меньше текущего уровня записи – это условие должно выполняться для каждого вызова команды (в случае, если для одной и той же сессии команда вызывается многократно), т.е. понижать уровни (даже до их первоначальных значений) запрещается.
-
Если ранее в канале по команде
set session default security
были установлены метки доступа для INSERT/UPDATE-операций, то данная команда отменяет их и устанавливает новые значения этих меток по умолчанию в соответствии с метками доступа, задаваемыми для объектов БД в командеsession default security
. -
Если в команде не задана группа или уровень доступа, то используется либо значение по умолчанию ядра СУБД ЛИНТЕР, либо значения, указанные в ранее выполненной команде
set session default security
либоset session security
.CREATE LEVEL "НЕСЕКРЕТНО" = 1; CREATE LEVEL "ДСП" = 2; CREATE LEVEL "СЕКРЕТНО" = 3; CREATE LEVEL "СОВ.СЕКРЕТНО" = 4; create GROUP GROUP1; create GROUP GROUP2; grant DBA to A identified by 'A'; alter user A LEVEL("ДСП", "ДСП"); alter user A group GROUP2; username A/A set session default security ##"СЕКРЕТНО"#"СЕКРЕТНО"; set session default security #GROUP1#"СЕКРЕТНО"#"СЕКРЕТНО"; set session security ##"НЕСЕКРЕТНО"#"СОВ.СЕКРЕТНО"; set session security ###; set session security ###"СОВ.СЕКРЕТНО"; !6 error 1070 (we can not change group): set session security #GROUP1#"НЕСЕКРЕТНО"#"СОВ.СЕКРЕТНО";
-
При попытке сменить группу будет выдан код завершения 1070 «Нарушение мандатного доступа» (т.е. нельзя работать в чужой группе).