Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
-- ============================================================
|
||||
-- Omika Diagnostic Center -- 003_diagnostics_roles_preprod.sql
|
||||
-- VARIANTE PRÉPROD LOCALE de 003_diagnostics_roles.sql (T21).
|
||||
-- ============================================================
|
||||
-- ⚠️ EXCLUSIVEMENT LOCAL / PRÉPROD — jamais en Production.
|
||||
--
|
||||
-- TRANSFORMATION UNIQUE par rapport à l'original 003 :
|
||||
-- « ALTER DATABASE omika_diagnostics OWNER TO ... »
|
||||
-- « GRANT CONNECT ON DATABASE omika_diagnostics TO ... »
|
||||
-- → base cible renommée « omika_diagnostics_preprod ».
|
||||
-- Rôles, privilèges, ownership et idempotence STRICTEMENT identiques.
|
||||
-- (L'original code en dur le nom de la base centrale Production
|
||||
-- « omika_diagnostics » ; cette variante ne change QUE ce nom.)
|
||||
--
|
||||
-- Teste réellement, sur une base locale jetable, l'exécutabilité des
|
||||
-- rôles/grants 003 : création de rôles cluster-wide, ownership, REVOKE
|
||||
-- public, GRANT worker/web. Aucun mot de passe (posé manuellement via
|
||||
-- \password, jamais dans ce fichier).
|
||||
-- ============================================================
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'omika_diagnostics_owner') THEN
|
||||
CREATE ROLE omika_diagnostics_owner;
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'omika_diagnostics_worker') THEN
|
||||
CREATE ROLE omika_diagnostics_worker;
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'omika_diagnostics_web') THEN
|
||||
CREATE ROLE omika_diagnostics_web;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
ALTER ROLE omika_diagnostics_owner NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS NOLOGIN;
|
||||
ALTER ROLE omika_diagnostics_worker NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS LOGIN;
|
||||
ALTER ROLE omika_diagnostics_web NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS LOGIN;
|
||||
|
||||
ALTER DATABASE omika_diagnostics_preprod OWNER TO omika_diagnostics_owner;
|
||||
ALTER SCHEMA public OWNER TO omika_diagnostics_owner;
|
||||
|
||||
ALTER TABLE diagnostic_event OWNER TO omika_diagnostics_owner;
|
||||
ALTER TABLE telemetry_metric_hourly OWNER TO omika_diagnostics_owner;
|
||||
|
||||
ALTER SEQUENCE diagnostic_event_id_seq OWNER TO omika_diagnostics_owner;
|
||||
ALTER SEQUENCE telemetry_metric_hourly_id_seq OWNER TO omika_diagnostics_owner;
|
||||
|
||||
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
|
||||
|
||||
GRANT CONNECT ON DATABASE omika_diagnostics_preprod TO omika_diagnostics_worker, omika_diagnostics_web;
|
||||
|
||||
GRANT USAGE ON SCHEMA public TO omika_diagnostics_worker, omika_diagnostics_web;
|
||||
|
||||
GRANT INSERT ON TABLE diagnostic_event TO omika_diagnostics_worker;
|
||||
GRANT USAGE ON SEQUENCE diagnostic_event_id_seq TO omika_diagnostics_worker;
|
||||
|
||||
GRANT SELECT ON TABLE diagnostic_event TO omika_diagnostics_web;
|
||||
|
||||
-- ============================================================
|
||||
-- END 003 (variante preprod). Les mots de passe des rôles LOGIN
|
||||
-- (worker/web) sont posés manuellement via \password si nécessaire.
|
||||
-- ============================================================
|
||||
Reference in New Issue
Block a user