Привилегии
Привилегии в 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).