Управление доступом к данным

Материал из Викиконспекты
Версия от 06:07, 20 декабря 2021; Cuciev (обсуждение | вклад) (Пользователи и группы)
Перейти к: навигация, поиск
Эта статья находится в разработке!

Схемы управления доступом

Дискреционная схема

Определение:
Дискреционная (или избирательная) схема — политика, в рамках которой поддерживаются списки, содержащие информацию о том, кто и к чему имеет доступ.


В данной схеме используются следующие понятия:

  • Объекты и набор прав для них, не связанных между собой (например, данные и права на добавление, удаление, чтение, обновление и тп);
  • Пользователи, обладающие какими-то правами на какие-то объекты;
  • Группы пользователей и права, присваиваемые всем членам этих групп в дополнение к их собственным;

Мандатная схема

Определение:
Мандатная схема — политика, в рамках который к данным и тем, кто имеет к ним доступ, присылаются классификационные уровни.


Уровни доступа в мандатной схеме

Уровни доступа располагаются по возрастанию: от общедоступного [math]S_0[/math] до самого защищенного [math]S_4[/math]. Такие уровни присваиваются как пользователям, так и объектам.

С учетом уровней, возможность выполнения операций определяется по следующим правилам:

  • Чтение: [math]уровень[/math] [math]данных \lt уровня[/math] [math]пользователя[/math];
  • Изменение: [math]уровень[/math] [math]данных = уровню[/math] [math]пользователя[/math]. Разрешение изменения менее защищенных данных может повлечь случайное рассекречивание информации, если, например, изменения на уровне [math]S_0[/math] делаются на основе информации с [math]S_2[/math];
  • Добавление: [math]уровень[/math] [math]данных \gt уровню[/math] [math]пользователя[/math];

Пользователи и группы

С точки зрения стандарта, существуют пользователи и группы, но не существует стандартных способов управления ими.

Управление пользователями

Наиболее общепринятый синтаксис (не SQL):

create user имя [password 'пароль']
alter user имя [password 'пароль']
drop user имя

Управление группами

Наиболее общепринятый синтаксис (не SQL):

create group имя
alter group имя {add|drop} user пользователь
drop group имя

Data Control Language

Добавление прав

Удаление прав

Владелец объекта

Представления и права

Фильтрованная таблица

Спроецированная таблица

== Агрегированная таблица ==