Диспетчер доступа

Диспетчер доступа СУБД ЛИНТЕР реализован в виде нескольких взаимосвязанных программных фрагментов, каждый из которых контролирует свою область действий СУБД.

Первая часть обслуживает подсистему дискреционного доступа. Она получает управление после разбора запроса. В этот момент полностью определены все объекты доступа и запрашиваемые по отношению к ним действия. Диспетчер выбирает все правила, касающиеся запрашивающего пользователя, и, в соответствии с запросом, проверяет, доступны ли требуемые объекты в данном запросе. Также проверяется возможность работы с внешними устройствами. Данный фрагмент может обращаться к подсистеме идентификации за подтверждением (запретом) действий, связанных с категориями пользователей (Connect, Resource, DBA).

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

Третий фрагмент получает управление при каждой операции манипуляции с конкретными данными – при получении их из БД, проведении операций над ними, записи в таблицы БД, выдаче данных пользователю и т.п. В этом случае проверяются мандатные правила доступа.

Четвертый фрагмент диспетчера доступа СУБД ЛИНТЕР обеспечивает изоляцию параллельно выполняющихся запросов. Он также осуществляет планирование обработки запросов, контролирует их квантование и отслеживает все возможные нарушения изоляции процессов, выполняющихся по разным логическим связям.

Все фрагменты диспетчера доступа в процессе работы обращаются к подсистеме регистрации событий СУБД ЛИНТЕР, которая может принять решение согласно своим параметрам о регистрации соответствующих событий в таблице событий.