Авторизация пользователей
Пользователи – это субъекты БД. Каждая БД ЛИНТЕР имеет, как минимум, одного пользователя. Информация о пользователях БД хранится в системной таблице полномочий. Доступ пользователя к БД возможен только после прохождения процедуры авторизации доступа, в ходе которой пользователь должен предъявить свое регистрационное имя и пароль.
В СУБД ЛИНТЕР каждому пользователю, при его создании администратором БД, назначается одна из трех возможных категорий доступа к БД (или один из трех уровней доступа):
-
Connect-категория. Предоставляет пользователю наименьшие права: доступ к БД с возможностью подавать SQL-запросы на манипулирование данными;
-
Resource-категория. Предоставляет пользователю все права Connect-категории, а также право изменять схему БД (создавать/удалять/изменять структуру объектов БД) и передавать другим пользователям права на свои объекты;
-
DBA-категория. Предоставляет пользователю уровень администратора БД с максимальными правами, включающими права Resource-категории и право создавать новых пользователей БД.
BACKUP-категория предоставляет пользователю права архивирования БД.
В зависимости от способа создания нового пользователя возможны следующие механизмы его идентификации и аутентификации:
-
IDENTIFIED BY < пароль >: устанавливает для пользователя режим идентификации и аутентификации по имени и паролю, хранящимся в БД ЛИНТЕР;
-
IDENTIFIED BY SYSTEM: устанавливает для пользователя режим встроенной аутентификации операционной системы. Это означает, что при доступе к БД надо указать имя и пароль, указываемый при регистрации в ОС. СУБД проверяет только наличие пользователя с указанным именем, а аутентификацию выполняет ОС;
-
IDENTIFIED BY PROTOCOL: задает идентификацию и аутентификацию пользователя при проверке доступа к БД по имени пользователя, зарегистрированного в ОС (при создании соединения с БД вводить имя пользователя и пароль не требуется). Данная идентификация доступна только локальным пользователям ЛИНТЕР-сервера. Пользователь-владелец БД не может идентифицироваться и аутентифицироваться таким способом. Запросы будут выполняться от имени пользователя, совпадающего с именем пользователя, запустившего клиентское приложение;
Примечание
Создание пользователя с помощью опции IDENTIFIED BY PROTOCOL поддерживается в Windows- и UNIX-системах, но идентификация и аутентификация с помощью вышеуказанной конструкции поддерживается только в UNIX-системах.
-
IDENTIFIED BY LDAP: устанавливает для пользователя режим парольной аутентификации через LDAP-сервер. Для успешной аутентификации требуется соответствие имени пользователя БД ЛИНТЕР одному из атрибутов пользователя в БД LDAP-сервера;
-
IDENTIFIED BY KRB: устанавливает для пользователя режим идентификации и аутентификации через Kerberos-сервер. Для входа под данным пользователем необходимо указывать пустое имя пользователя и/или задать специальный флаг в интерфейсе нижнего уровня.
Вне зависимости от способа создания пользователя его имя всегда хранится в БД ЛИНТЕР. Хеш пароля хранится в СУБД только в первом случае.
Аутентификация через LDAP-сервер выполняется следующим образом:
-
пользователь передает ЛИНТЕР-серверу имя и пароль обычным для интерфейса нижнего уровня (call-интерфейса) способом (через команду OPEN);
-
ЛИНТЕР-сервер проверяет наличие указанного пользователя в системной таблице
$$$USR
БД ЛИНТЕР; -
если указанный пользователь найден в БД ЛИНТЕР, и он должен аутентифицироваться по LDAP-протоколу, то попытка соединения с LDAP-сервером зависит от установленного режима поиска уникального имени пользователя в БД LDAP-сервера;
-
если активен режим LDAP-аутентификации без предварительного поиска, то производится попытка соединения с LDAP-сервером с переданным ранее паролем и уникальным именем (DN), составленным согласно переменным окружения/ключам запуска СУБД ЛИНТЕР;
-
если активен режим LDAP-аутентификации с предварительным поиском, то производится попытка подключения к LDAP-серверу с использованием DN и пароля для поиска (либо попытка анонимного подключения, если DN поиска не задано), после чего, в случае успеха, происходит поиск пользователя с помощью фильтра, составленного согласно переменным окружения/ключам запуска СУБД ЛИНТЕР; если найден только один пользователь, происходит попытка соединения с использованием найденного уникального имени (DN) и переданного ранее пароля;
-
-
в случае успешного соединения с LDAP-сервером пользователю предоставляется доступ к БД ЛИНТЕР-сервера.
Для использования LDAP аутентификации в информационной системе должен быть установлен и настроен LDAP-сервер (удаленный или локальный). Его местоположение задается с помощью специальной переменной окружения СУБД ЛИНТЕР (см. документ РСКЮ.10010-60 34 01-1 «СУБД ЛИНТЕР. Запуск и останов СУБД ЛИНТЕР в среде ОС Windows» и «СУБД ЛИНТЕР. Запуск и останов СУБД ЛИНТЕР в среде ОС Linux, Unix»).