Hierarchiczna kontrola dostępu

Tworzenie baz danych w PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Kontrola dostępu za pomocą schematów

  • Schemat – nazwany kontener dla obiektów bazy danych
  • Schematy mogą służyć do kontroli dostępu
Tworzenie baz danych w PostgreSQL

Przykład: użycie schematów w bazie finances

  • Dostęp współmałżonka do bazy finances
  • Domyślnie używany schemat public
  • Dwa nowe schematy: me i spouse
CREATE SCHEMA me;
CREATE SCHEMA spouse;
CREATE TABLE me.account (...);
CREATE TABLE spouse.account (...);
Tworzenie baz danych w PostgreSQL

Nadawanie uprawnień do schematów

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;

Kontrola dostępu oparta na schematach wdrożona

Tworzenie baz danych w PostgreSQL

Używanie grup

  • Grupa – typ roli identyfikujący jednego lub więcej użytkowników
  • Kontrolę dostępu można stosować na poziomie grupy
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;
Tworzenie baz danych w PostgreSQL

Współdzielony i indywidualny dostęp do danych

  • Wspólny dostęp do schematu public
  • Indywidualne schematy kontrolują dostęp do danych
Tworzenie baz danych w PostgreSQL

Czas na ćwiczenia!

Tworzenie baz danych w PostgreSQL

Preparing Video For Download...