Права доступу в PostgreSQL

Створення баз даних PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Ролі та привілеї в PostgreSQL

  • Користувачі — це тип ролі
  • Можна визначати й групові ролі
  • Доступ до об'єктів БД надають ролям
Створення баз даних PostgreSQL

Команда GRANT

  • Привілеї власник «надає» ролям
  • Команда GRANT надає привілеї
  • Можна надати багато привілеїв, зокрема:
    • SELECT
    • DELETE
    • UPDATE
      GRANT p ON obj TO grantee;
      
Створення баз даних PostgreSQL

Приклад: база персональних фінансів

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

Приклад: база персональних фінансів

  • Користувачу fin потрібен доступ до таблиці account
  • Доступ fin
    • Додавати нові рахунки
    • Оновлювати рахунки
    • Запитувати рахунки
  • Суперкористувач надає привілеї
    GRANT INSERT ON account TO fin;
    
GRANT UPDATE ON account TO fin;
GRANT SELECT ON account TO fin;
Створення баз даних PostgreSQL

Права на зміну таблиць

  • Деякі привілеї не можна надати
  • Щоб змінювати таблицю, потрібне право власності
ALTER TABLE account ADD COLUMN date_opened DATE;
ALTER TABLE account RENAME COLUMN short_name

TO nickname;
ALTER TABLE account OWNER TO fin;
Створення баз даних PostgreSQL

Давайте потренуємось!

Створення баз даних PostgreSQL

Preparing Video For Download...