RBAC в БД на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем разбирать на собесе
DE настраивает access к DWH. На собесе DE: «как разделить дос данных», «зачем roles vs users».
Roles в Postgres
Postgres — нет user / group. Только roles. Role может быть login (user-like) или group.
CREATE ROLE analyst; -- GROUP role
CREATE ROLE alice LOGIN PASSWORD '...'; -- login role
GRANT analyst TO alice; -- alice inherits analyst's grantsИерархия roles. Группа можно nest.
GRANT и REVOKE
GRANT SELECT ON schema.TABLE TO analyst;
GRANT SELECT, INSERT, UPDATE ON schema.TABLE TO writer;
GRANT ALL ON SCHEMA marts TO analyst;
REVOKE INSERT ON schema.TABLE FROM writer;Уровни:
- Database —
GRANT CONNECT ON DATABASE. - Schema —
GRANT USAGE ON SCHEMA. - Table —
SELECT/INSERT/UPDATE/DELETE/TRUNCATE/REFERENCES/TRIGGER. - Column-level —
GRANT SELECT (col1, col2) ON .... - Function / sequence.
Row-level security
Filter rows per role.
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON orders
USING (tenant_id = current_setting('app.tenant_id')::int);Postgres автоматически добавит WHERE tenant_id = ... к каждому query от non-superuser.
Полезно для multi-tenant DWH.
Default privileges
Если каждая новая table требует GRANT — забудешь.
ALTER DEFAULT PRIVILEGES IN SCHEMA marts
GRANT SELECT ON TABLES TO analyst;Все будущие tables в marts автоматически с SELECT для analyst.
Best practices
1. Разделить read и write users. ETL pipelines пишут от ETL_USER. Аналитики читают как ANALYST.
2. Минимум privileges. App user на DWH — только нужные tables / schemas.
3. PII access — отдельный role. pii_access group для людей с officially approved access.
4. Service accounts с rotated passwords. Не common shared password.
5. Audit logs. Кто и что выполнил — для compliance.
6. Не GRANT ALL без необходимости. Easy to escalate, hard to revoke.
7. Schemas для изоляции. raw, staging, silver, gold — раздельные schemas с разным access.
Связанные темы
- Транзакции и MVCC для DE
- DWH ClickHouse на собесе DE
- 152-ФЗ для SA
- RBAC vs ABAC для SA
- Подготовка к собесу Data Engineer
FAQ
ClickHouse RBAC?
CH 21+ — поддерживает roles, GRANT, RLS. Отличная mature.
Это официальная информация?
Нет. Статья основана на документации Postgres / ClickHouse.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.