Управление доступом к данным — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (Cosmetics)
(Предваритльно: синтаксис для удаления и добавления прав)
Строка 42: Строка 42:
 
= Data Control Language =
 
= Data Control Language =
 
== Добавление прав ==
 
== Добавление прав ==
 +
<font color=blue>grant <font color=red>{<font color=blue>select<font color=grey>|<font color=blue>insert<font color=grey>|<font color=blue>update<font color=grey>|<font color=blue>delete<font color=grey>|<font color=blue>create<font color=grey>|<font color=blue>execute<font color=grey>|<font color=blue>trigger<font color=grey>|<font color=blue>usage<font color=grey>|<font color=red>…<font color=grey>|<font color=blue>all priviledges<font color=red>}</font>
 +
<font color=blue>on <font color=red>{<font color=blue>table<font color=grey>|<font color=blue>database<font color=grey>|<font color=blue>view<font color=grey>|<font color=blue>procedure<font color=grey>|<font color=blue>function<font color=grey>|<font color=red>…} имя</font>
 +
<font color=blue>to <font color=red>{пользователь<font color=grey>|<font color=blue>group <font color=red>группа<font color=grey>|<font color=blue>public<font color=red>}</font>
 +
<font color=red>[<font color=blue>with grant option<font color=red>]<font color=blacj>
 +
 +
=== Примеры ===
 +
<font color=blue>grant all priviledges on <font color=black>Students</font>
 +
<font color=blue> to group <font color=black>Deans <font color=blue>with grant option<font color=grey>;<font color=black>
 +
 +
<font color=blue>grant select on <font color=black>Students <font color=blue>to public<font color=grey>;<font color=black>
 +
 
== Удаление прав ==
 
== Удаление прав ==
 +
<font color=blue>revoke <font color=red>[<font color=blue>grant option for<font color=red>]</font>
 +
<font color=red>{<font color=blue>select<font color=grey>|<font color=blue>insert<font color=grey>|<font color=blue>update<font color=grey>|<font color=blue>delete<font color=grey>|<font color=blue>create<font color=grey>|<font color=blue>execute<font color=grey>|<font color=blue>trigger<font color=grey>|<font color=blue>usage<font color=grey>|<font color=red>…<font color=grey>|<font color=blue>all priviledges<font color=red>}</font>
 +
<font color=blue>on <font color=red>{<font color=blue>table<font color=grey>|<font color=blue>database<font color=grey>|<font color=blue>view<font color=grey>|<font color=blue>procedure<font color=grey>|<font color=blue>function<font color=grey>|<font color=red>…} имя</font>
 +
<font color=blue>from <font color=red>{пользователь<font color=grey>|<font color=blue>group <font color=red>группа<font color=grey>|<font color=blue>public<font color=red>}</font>
 +
<font color=red>[<font color=blue>cascade<font color=grey>|<font color=blue>restrict<font color=red>]<font color=black>
 +
 +
=== Примеры ===
 +
<font color=blue>revoke insert on <font color=black>Students</font>
 +
<font color=blue> from group <font color=black>Deans <font color=blue>cascade<font color=grey>;<font color=black>
 +
 +
<font color=blue>revoke update on <font color=black>Students <font color=blue>from public<font color=grey>;<font color=black>
 +
 
== Владелец объекта ==
 
== Владелец объекта ==
 +
text
  
 
= Представления и права =
 
= Представления и права =

Версия 07:43, 20 декабря 2021

Эта статья находится в разработке!

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

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

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

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

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

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

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

Уровни доступа располагаются по возрастанию: от общедоступного [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

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

grant {select|insert|update|delete|create|execute|trigger|usage||all priviledges}
on {table|database|view|procedure|function|…} имя
to {пользователь|group группа|public}
[with grant option]

Примеры

grant all priviledges on Students
 to group Deans with grant option;
grant select on Students to public;

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

revoke [grant option for]
{select|insert|update|delete|create|execute|trigger|usage||all priviledges}
on {table|database|view|procedure|function|…} имя
from {пользователь|group группа|public}
[cascade|restrict]

Примеры

revoke insert on Students
 from group Deans cascade;
revoke update on Students from public;

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

text

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

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

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

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