Toegangsrechten in PostgreSQL

PostgreSQL-databases maken

Darryl Reeves

Industry Assistant Professor, New York University

PostgreSQL-rollen en -rechten

  • Gebruikers zijn een type role
  • Groepsrollen kun je ook definiëren
  • Toegang tot databaseobjecten gaat naar rollen
PostgreSQL-databases maken

Het GRANT-commando

  • Rechten worden door de eigenaar "granted" aan rollen
  • De GRANT-opdracht kent rechten toe
  • Veel rechten zijn mogelijk, zoals:
    • SELECT
    • DELETE
    • UPDATE
      GRANT p ON obj TO grantee;
      
PostgreSQL-databases maken

Voorbeeld: budgetdatabase

CREATE TABLE account (
    id SERIAL PRIMARY KEY,
    short_name VARCHAR(25),
    provider_id INTEGER REFERENCES provider(id),
    balance DECIMAL
);
CREATE USER fin WITH PASSWORD '38\5)uk1+3&}*Y';
PostgreSQL-databases maken

Voorbeeld: budgetdatabase

  • Gebruiker fin heeft toegang tot tabel account nodig
  • Toegang voor fin
    • Nieuwe accounts toevoegen
    • Accounts bijwerken
    • Accounts opvragen
  • Superuser verleent rechten
    GRANT INSERT ON account TO fin;
    
GRANT UPDATE ON account TO fin;
GRANT SELECT ON account TO fin;
PostgreSQL-databases maken

Rechten voor tabelwijzigingen

  • Sommige rechten kun je niet verlenen
  • Tabelwijzigingen vereisen eigenaarschap
ALTER TABLE account ADD COLUMN date_opened DATE;
ALTER TABLE account RENAME COLUMN short_name

TO nickname;
ALTER TABLE account OWNER TO fin;
PostgreSQL-databases maken

Laten we oefenen!

PostgreSQL-databases maken

Preparing Video For Download...