Управление доступом к данным — различия между версиями
Cuciev (обсуждение | вклад) (Удаление прав: комментарии) |
Cuciev (обсуждение | вклад) (Владелец объекта) |
||
| Строка 83: | Строка 83: | ||
== Владелец объекта == | == Владелец объекта == | ||
| − | + | {{Определение | |
| + | |id=owner | ||
| + | |definition='''Владелец объекта''' (базы, таблицы, схемы) {{---}} пользователь, создавший объект. | ||
| + | |||
| + | * Всеми правами на объект он обладает неявно, вследствие чего их нельзя у него отозвать, но можно передать право собственности. | ||
| + | * После передачи объекта, все неявные права на него бывшим владельцем теряются {{---}} для их сохранения необходимо предварительно их явным образом выдать. | ||
| + | }} | ||
| + | Передача права владения объектом: | ||
| + | <font color=blue>alter <font color=red>{<font color=blue>table<font color=grey>|<font color=blue>schema<font color=grey>|<font color=blue>database<font color=grey>|<font color=red>…}</font> | ||
| + | <font color=blue>owner to <font color=red>пользователь<font color=black> | ||
= Представления и права = | = Представления и права = | ||
Версия 09:01, 20 декабря 2021
Эта статья находится в разработке!
Содержание
Схемы управления доступом
Дискреционная схема
| Определение: |
| Дискреционная (или избирательная) схема — политика, в рамках которой поддерживаются списки, содержащие информацию о том, кто и к чему имеет доступ. |
В данной схеме используются следующие понятия:
- Объекты и набор прав для них, не связанных между собой (например, данные и права на добавление, удаление, чтение, обновление и тп);
- Пользователи, обладающие какими-то правами на какие-то объекты;
- Группы пользователей и права, присваиваемые всем членам этих групп в дополнение к их собственным;
Мандатная схема
| Определение: |
| Мандатная схема — политика, в рамках который к данным и тем, кто имеет к ним доступ, присылаются классификационные уровни. |
Уровни доступа располагаются по возрастанию: от общедоступного до самого защищенного . Такие уровни присваиваются как пользователям, так и объектам.
С учетом уровней, возможность выполнения операций определяется по следующим правилам:
- Чтение: ;
- Изменение: . Разрешение изменения менее защищенных данных может повлечь случайное рассекречивание информации, если, например, изменения на уровне делаются на основе информации с ;
- Добавление: ;
Пользователи и группы
| Определение: |
| Группа (в рамках стандарта) — набор пользователей; иерархии групп не предполагается. |
В рамках стандарта существуют пользователи и группы, но не существует стандартных способов управления ими.
Управление пользователями
Наиболее общепринятый синтаксис (не 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] -- если тот, у кого право забирается, наделил им кого-то еще,
-- cascade также забирает право у всей цепочки получивших,
-- restrict выдаст ошибку, если право было делегировано
-- аналогично, как и про само право, так и про возможность его делегации
Примеры
-- Удалить у группы деканов право вставки в таблицу студентов -- с отзывом этого права у всех, кто получил его по цепочке от деканов revoke insert on Students from group Deans cascade;
-- Удалить публичное право обновления таблицы студентов revoke update on Students from public;
Владелец объекта
| Определение: |
Владелец объекта (базы, таблицы, схемы) — пользователь, создавший объект.
|
Передача права владения объектом:
alter {table|schema|database|…}
owner to пользователь
Представления и права
Фильтрованная таблица
Спроецированная таблица
== Агрегированная таблица ==