Управление уровнем доступа пользователей
Для управления уровнями доступа пользователей создателем БД используются следующие запросы:
Создание уровня
<создание уровня>
::=CREATE [IF NOT EXISTS] LEVEL имя уровня = номер уровня
<имя уровня>
::=идентификатор
<номер уровня>
::=целочисленный литерал в диапазоне [1-10]
Пример.
create level L10 = 10;
Примечание
Номер уровня можно использовать в качестве идентификатора при определении доступа, например, AA#10#2#3.
Переименование уровня
<переименование уровня>
::=ALTER LEVEL имя уровня SET новое имя уровня
Выполнение данного запроса доступно только создателю БД.
Назначение уровня доступа пользователю
Назначение уровня доступа пользователю возможно через команду определения пользователя либо команду модификации
определения пользователя с помощью дополнительной конструкции LEVEL (<RAL>,<WAL>):
<назначение уровня доступа пользователю>
::=CREATE USER <имя пользователя> IDENTIFIED BY '<пароль>'
LEVEL (<RAL-уровень>, <WAL-уровень>);
LEVEL (<RAL-уровень>, <WAL-уровень>);
<назначение уровня доступа пользователю>
::=ALTER USER <имя пользователя>
LEVEL (<RAL-уровень>, <WAL-уровень>);
LEVEL (<RAL-уровень>, <WAL-уровень>);
Произвольные уровни доступа может назначать/изменять только создатель БД, прочие пользователи БД могут назначать/изменять уровни доступа в пределах назначенных им уровней.
Примеры.
create user a identified by '12345678'
level("СОВ.СЕКРЕТНО","ДЛЯ СЛ.ПОЛЬЗОВАНИЯ");
alter user b level("СОВ.СЕКРЕТНО","ДЛЯ СЛ.ПОЛЬЗОВАНИЯ");