Files
roa2web-service-auto/docs/service-auto/onboarding_roa_web.sql
2026-06-05 15:00:42 +00:00

51 lines
3.2 KiB
SQL

-- =============================================================================
-- File purpose : Script de onboarding ROA_WEB pentru o schemă nouă (per-firmă)
-- When to run : Rulat ca CONTAFIN_ORACLE (sau DBA) DUPĂ `impdp` al schemei
-- Usage : Substituie `<SCHEMA>` (3 apariții pe linie sau per bloc) cu
-- numele schemei reale (ex: MARIUSM_AUTO, ACME_AUTO) înainte
-- de rulare. Un singur search-and-replace acoperă tot fișierul.
-- Version : 2026-04-12
-- Prerequisite : ROA_WEB user creat O SINGURĂ DATĂ (vezi §2 de mai jos).
-- Full procedure : docs/service-auto/deploy-schema-noua.md
-- =============================================================================
--
-- ORDINE OPERAȚII pentru o schemă nouă:
-- 1. impdp schema nouă (REMAP_SCHEMA, exclude sequences dacă există)
-- 2. RULEAZĂ SECȚIUNEA §1 a acestui fișier (GRANT-uri per-schemă)
-- 3. Adaugă `.env` → `ORACLE_SERVERS` dacă server nou + restart backend
-- 4. Rulează migrațiile service-auto în ordine cronologică
-- (docs/service-auto/migrations/ff_YYYY_MM_DD_NN_AUTO.sql)
-- 5. Smoke test: /ping, /tip-deviz, /masini, /comenzi
--
-- =============================================================================
-- §1. GRANT-uri per-schemă — RULAT PENTRU FIECARE FIRMĂ NOUĂ
-- =============================================================================
-- Înlocuiește `<SCHEMA>` cu schema reală (ex: MARIUSM_AUTO) înainte de rulare.
GRANT EXECUTE ON <SCHEMA>.PACK_AUTO TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.AUTO_VMASINICLIENTI TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.DEV_TIP_DEVIZ TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.CALENDAR TO ROA_WEB; -- period selector AppHeader
GRANT SELECT ON <SCHEMA>.DEV_ORDL TO ROA_WEB; -- GET /api/service-auto/comenzi
GRANT SELECT ON <SCHEMA>.NOM_LUCRARI TO ROA_WEB; -- JOIN cu DEV_ORDL pentru nrord
-- Granturi adăugate de migrațiile service-auto (ff_2026_04_13_01_AUTO.sql).
-- Dacă rulezi onboarding-ul INAINTE de migrații, aceste linii pot fi skipped
-- (migrația le va aplica). Dacă rulezi DUPĂ migrații, sunt idempotente (GRANT e no-op).
GRANT SELECT ON <SCHEMA>.DEV_NOM_NORME TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.DEV_NOM_INSPECTORI TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.DEV_NOM_ASIGURATORI TO ROA_WEB;
GRANT SELECT ON <SCHEMA>.NOM_PARTENERI TO ROA_WEB;
GRANT INSERT ON <SCHEMA>.NOM_PARTENERI TO ROA_WEB;
GRANT EXECUTE ON <SCHEMA>.PACK_SERII_NUMERE TO ROA_WEB;
-- =============================================================================
-- §2. ROA_WEB user creation — O SINGURĂ DATĂ pe instanță Oracle
-- =============================================================================
-- NU rula pentru fiecare firmă nouă. Rulează doar la setup inițial al instanței.
-- Parola reală se ia din vault și se salvează în `backend/secrets/<server>.oracle_pass`.
CREATE USER ROA_WEB IDENTIFIED BY "<REPLACE_WITH_STRONG_PASSWORD_FROM_VAULT>";
GRANT CREATE SESSION TO ROA_WEB;
-- Fără alte privilegii sistem. Accesul la date = exclusiv prin granturi per-obiect.