Идентификация и аутентификация

Информация о каждом пользователе, имеющем право подключаться к СУБД, находится в соответствующей системной БД. Правом изменения системной БД обладает только администратор защиты СУБД.

Каждый пользователь (субъект) имеет в системной БД уникальный идентификатор – идентификатор субъекта.

СУБД связывает субъекта с его идентификатором, исходя из имени и пароля, полученных в результате идентификации и аутентификации.

После этого на всем протяжении работы (до отсоединения пользователя от СУБД) ядру СУБД уже не требуется знание имени и пароля субъекта. Для алгоритмов доступа достаточно только идентификатора субъекта.

При хранении информации о правах субъекта (см. подраздел Схема хранения данных) СУБД использует идентификатор субъекта, а также идентификаторы объектов, к которым субъект имеет доступ.

Для каждого установленного канала связи с приложением СУБД хранит у себя в памяти следующую информацию:

  • идентификатор субъекта;

  • идентификатор приложения (процесса и даже нити);

  • адрес клиентской станции и тип сетевого протокола (при сетевой работе).

Таким образом, сеанс работы субъекта начинается с идентификации и аутентификации субъекта, при этом СУБД связывает последнего с его идентификатором. Данная связь прекращается только после отсоединения субъекта от СУБД.

Кроме того, СУБД особенно важно, чтобы ответы на все запросы приложения были получены только этим приложением и никаким другим. Это реализуется с помощью идентификатора приложения, который присваивается ему операционной системой в момент запуска. При установлении связи приложение, используя интерфейс нижнего уровня, сообщает ядру СУБД свой идентификатор (а при сетевой работе и адрес станции), так что, посылая приложению ответы, СУБД владеет полной информацией о том, кому можно пересылать полный адрес нужного приложения.

В случае, когда исчезает хотя бы один из компонентов связи (удаляется субъект, падает приложение, отключается клиентская станция), ядро СУБД, следуя установленным тайм-аутам, разрывает образованную связь.

При попытке пользователя открыть канал связи, СУБД проверяет имя пользователя и его пароль.

При этом возможны следующие ситуации:

  • имя и пароль пользователя введены правильно – пользователь допускается к БД;

  • имя пользователя введено неверно – выдается сообщение о том, что имя пользователя введено неверно (Неизвестное имя пользователя). Пользователь к БД не допускается;

  • пароль пользователя введен неверно – выдается сообщение о том, что пароль пользователя введен неверно (Неверный пароль пользователя). Пользователь к БД не допускается.