Skip to content
Snippets Groups Projects
Commit 5626915d authored by Yaroslav Dynnikov's avatar Yaroslav Dynnikov
Browse files

access_control.md: track formal requirements

parent effa2a77
No related branches found
No related tags found
1 merge request!382access_control.md: address formal requirements
......@@ -29,6 +29,11 @@
### Объекты доступа {: #access_objects }
<!--
7.1 В СУБД 6, 5, 4 классов защиты должны быть реализованы дискреционный
и ролевой методы управления доступом.
-->
Picodata является распределенной СУБД, и управление доступом происходит
централизованно на всем кластере. Для управления доступом в Picodata
используются дискреционный и ролевой методы. Объектами доступа являются:
......@@ -39,6 +44,14 @@ Picodata является распределенной СУБД, и управл
- `role`[роль](#roles)
- `procedure`[процедура](#proc_access)
<!--
Дискреционный метод управления доступом субъектов доступа объектам
доступа СУБД (БД, таблица, запись или столбец, поле, представление,
процедура (программный код) или иные объекты доступа) должен
осуществляться на основе настраиваемых списков управления доступом
(матриц управления доступом).
-->
Доступ к объектам предоставляется на основе настраиваемого списка
управления доступом (access control list, ACL), который определяет,
какими привилегиями обладает каждый субъект (пользователь или роль).
......@@ -74,8 +87,27 @@ Picodata предоставляет несколько встроенных уч
коммуникация между инстансами кластера
- `guest` — неавторизованный пользователь
<!--
Ролевой метод управления доступом должен быть реализован для следующих
ролей пользователей СУБД:
- администратор СУБД,
- администратор БД (администратор информационной системы),
- пользователь БД (пользователь информационной системы).
-->
#### Администратор СУБД {: #admin }
<!--
СУБД должна обеспечивать наделение администратора СУБД следующими правами:
- создавать учетные записи пользователей СУБД;
- модифицировать, блокировать и удалять учетные записи пользователей СУБД;
- назначать права доступа пользователям СУБД к объектам доступа СУБД;
- управлять конфигурацией СУБД;
- создавать, подключать БД.
-->
Администратором СУБД является встроенный пользователь `admin`.
Администратор СУБД является _суперпользователем_ и обладает следующими
......@@ -106,6 +138,17 @@ GRANT DROP ROLE TO "admin"
#### Администратор БД {: #db_admin }
<!--
СУБД должна обеспечивать наделение администратора БД следующими правами:
- создавать учетные записи пользователей БД;
- модифицировать, блокировать и удалять учетные записи пользователей БД;
- управлять конфигурацией БД;
- назначать права доступа пользователям БД к объектам доступа БД;
- создавать резервные копии БД и восстанавливать БД из резервной копии;
- создавать, модифицировать и удалять процедуры (программный код), хранимые в БД.
-->
Наделить пользователя СУБД правами Администратора БД можно следующим
набором SQL-команд:
......@@ -120,7 +163,7 @@ GRANT CREATE PROCEDURE TO <grantee>
- создавать учетные записи пользователей БД
- модифицировать, блокировать и удалять учетные записи пользователей БД
- управлять конфигурацией БД
- управлять конфигурацией БД <!-- схемой данных -->
- назначать права доступа пользователям БД к объектам доступа БД
- создавать резервные копии БД и восстанавливать БД из резервной копии
- создавать, модифицировать и удалять хранимые процедуры
......@@ -151,6 +194,14 @@ GRANT DROP ON PROCEDURE <procedure name> TO <owner>
#### Пользователь БД {: #db_user }
<!--
СУБД должна обеспечивать наделение пользователя БД следующими правами:
- создавать и манипулировать объектами доступа БД (таблица, запись или
столбец, поле, представление и иные объекты доступа);
- выполнять процедуры (программный код), хранимые в БД.
-->
Picodata позволяет наделить пользователя БД следующими правами:
- создавать и манипулировать таблицами БД
......@@ -330,6 +381,15 @@ REVOKE <role name> FROM <grantee>
## Управление доступом к таблицам {: #tables_access }
<!--
Списки управления доступом (матрицы управления доступом) должны
позволять задавать разрешение или запрет пользователям и процедурам
(программному коду), хранимым в БД, выполнять следующие операции в
отношении объектов доступа СУБД (БД, таблица, запись или столбец, поле,
представление или иные объекты доступа): создание, модификация,
удаление, чтение.
-->
В Picodata доступно создание и удаление таблиц. Над таблицами можно
совершать операции чтения и записи. Для ограничения доступа к операциям
с таблицами в Picodata доступны привилегии `CREATE`, `DROP`, `READ`,
......@@ -357,6 +417,16 @@ REVOKE <priv> ON TABLE <table name> FROM <grantee>
## Управление доступом к процедурам {: #proc_access }
<!--
Списки управления доступом (матрицы управления доступом) должны
позволять задавать разрешение или запрет пользователям СУБД выполнять
следующие операции в отношении процедур (программного кода), хранимых в
БД:
- создание;
- модификация, удаление, исполнение.
-->
Для того, чтобы пользователь в Picodata мог создавать
[процедуры](../overview/glossary.md#stored_procedure), ему требуется
соответствующая привилегия от Администратора СУБД:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment