Přístupová oprávnění v PostgreSQL

Tvorba PostgreSQL databází

Darryl Reeves

Industry Assistant Professor, New York University

Role a oprávnění v PostgreSQL

  • Uživatelé jsou typem role
  • Lze definovat i skupinové role
  • Přístup k objektům databáze se přiděluje rolím
Tvorba PostgreSQL databází

Příkaz GRANT

  • Oprávnění „uděluje" rolím vlastník
  • Příkaz GRANT přiděluje oprávnění
  • Lze udělit mnoho oprávnění, například:
    • SELECT
    • DELETE
    • UPDATE
      GRANT p ON obj TO grantee;
      
Tvorba PostgreSQL databází

Příklad: databáze osobních financí

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';
Tvorba PostgreSQL databází

Příklad: databáze osobních financí

  • Uživatel fin potřebuje přístup k tabulce account
  • Přístup uživatele fin
    • Přidávání nových účtů
    • Aktualizace účtů
    • Dotazování na účty
  • Superuživatel uděluje oprávnění
    GRANT INSERT ON account TO fin;
    
GRANT UPDATE ON account TO fin;
GRANT SELECT ON account TO fin;
Tvorba PostgreSQL databází

Oprávnění pro úpravu tabulky

  • Některá oprávnění nelze udělit
  • Úprava tabulky vyžaduje vlastnictví
ALTER TABLE account ADD COLUMN date_opened DATE;
ALTER TABLE account RENAME COLUMN short_name

TO nickname;
ALTER TABLE account OWNER TO fin;
Tvorba PostgreSQL databází

Pojďme procvičovat!

Tvorba PostgreSQL databází

Preparing Video For Download...