Привилегии
Привилегии в PostgreSQL определяют, какие действия могут выполнять пользователи (роли) с объектами БД (таблицами, схемами, функциями и др.).
Объекты БД, на которые распространяются привилегии:
-
Таблицы, представления (
VIEW
), последовательности (SEQUENCE
). -
Схемы (
SCHEMA
), базы данных (DATABASE
), функции.
Типы привилегий:
-
SELECT
— чтение данных. -
INSERT
— добавление данных. -
UPDATE
— изменение данных. -
DELETE
— удаление данных. -
CREATE
— создание объектов. -
USAGE
— использование объектов (например, схем).
Команды управления привилегиями
GRANT — выдача прав
- Дать право на чтение таблицы:
GRANT SELECT ON employees TO analyst;
- Дать все права на схему:
GRANT ALL PRIVILEGES ON SCHEMA public TO developer;
- Дать право на использование последовательности:
GRANT USAGE ON SEQUENCE user_id_seq TO manager;
REVOKE — отзыв прав
Особые случаи
Права для всех таблиц в схеме:WITH GRANT OPTION
):
ALTER DEFAULT PRIVILEGES
):
Просмотр текущих привилегий
Для таблиц:-
GRANT/REVOKE — основные инструменты управления привилегиями.
-
WITH GRANT OPTION
позволяет делегировать права. -
ALTER DEFAULT PRIVILEGES
упрощает настройку прав для новых объектов.
-
Соблюдайте принцип минимальных привилегий.
-
Регулярно проверяйте права (
\z
,information_schema
).