mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
Multitenancy
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
-- ============================================================
|
||||
-- Ruolo PostgreSQL applicativo pechub_app
|
||||
--
|
||||
-- Questo script viene eseguito al primo avvio del container DB.
|
||||
-- Il ruolo viene creato PRIMA che Alembic esegua le migrazioni.
|
||||
-- I GRANT sulle singole tabelle vengono gestiti dalla migration 0006.
|
||||
--
|
||||
-- Scopo:
|
||||
-- - pechub_app è un utente non-superuser su cui RLS è attiva
|
||||
-- - Il backend e il worker usano DATABASE_URL con pechub_app
|
||||
-- - Alembic usa DATABASE_URL_SYNC con l'utente pechub (superuser)
|
||||
-- ============================================================
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_roles WHERE rolname = 'pechub_app'
|
||||
) THEN
|
||||
CREATE USER pechub_app WITH PASSWORD 'pechub_app_password'
|
||||
NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
||||
RAISE NOTICE '[pechub] Ruolo pechub_app creato';
|
||||
ELSE
|
||||
RAISE NOTICE '[pechub] Ruolo pechub_app già presente – skip';
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
-- Permessi di base (i GRANT sulle tabelle vengono dopo le migrazioni)
|
||||
GRANT CONNECT ON DATABASE pechub TO pechub_app;
|
||||
GRANT USAGE ON SCHEMA public TO pechub_app;
|
||||
|
||||
-- Default privileges: tutte le future tabelle create da pechub
|
||||
-- ricevono automaticamente i permessi per pechub_app
|
||||
ALTER DEFAULT PRIVILEGES FOR ROLE pechub IN SCHEMA public
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO pechub_app;
|
||||
|
||||
ALTER DEFAULT PRIVILEGES FOR ROLE pechub IN SCHEMA public
|
||||
GRANT USAGE, SELECT ON SEQUENCES TO pechub_app;
|
||||
Reference in New Issue
Block a user