Иерархическое управление доступом

Создание баз данных PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Управление доступом с помощью схем

  • Схема — именованный контейнер для объектов БД
  • Схемы можно использовать для управления доступом
Создание баз данных PostgreSQL

Пример: использование схем в базе данных finances

  • Доступ супруга к базе данных finances
  • По умолчанию используется схема public
  • Две новые схемы: me и spouse
CREATE SCHEMA me;
CREATE SCHEMA spouse;
CREATE TABLE me.account (...);
CREATE TABLE spouse.account (...);
Создание баз данных PostgreSQL

Предоставление привилегий на схему

CREATE USER better_half WITH PASSWORD 'changeme';
GRANT USAGE ON SCHEMA spouse TO better_half;
GRANT USAGE ON SCHEMA public TO better_half;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA spouse;

TO better_half;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public

TO better_half;

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

Создание баз данных PostgreSQL

Использование групп

  • Группа — тип роли, объединяющий одного или нескольких пользователей
  • Управление доступом можно применять на уровне группы
CREATE GROUP family;
GRANT USAGE ON SCHEMA public TO family;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA

public TO family;
ALTER GROUP family ADD USER fin
ALTER GROUP family ADD USER better_half;
Создание баз данных PostgreSQL

Общий и индивидуальный доступ к данным

  • Общий доступ к схеме public открыт
  • Индивидуальные схемы управляют доступом к данным
Создание баз данных PostgreSQL

Давайте потренируемся!

Создание баз данных PostgreSQL

Preparing Video For Download...