Ієрархічне керування доступом

Створення баз даних 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...