diff --git a/proxmox/lxc108-oracle/roa-windows-setup/sql/run-all-sys.sql b/proxmox/lxc108-oracle/roa-windows-setup/sql/run-all-sys.sql new file mode 100644 index 0000000..039bf4a --- /dev/null +++ b/proxmox/lxc108-oracle/roa-windows-setup/sql/run-all-sys.sql @@ -0,0 +1,109 @@ +-- ============================================================================ +-- MASTER SCRIPT: RUN ALL SYS SCRIPTS +-- ============================================================================ +-- Executes all SYS scripts in correct order: +-- 1. sys-objects.sql - Core objects (AUTH_PACK, tables, procedures) +-- 2. sys-grants.sql - Grants and synonyms +-- 3. sys-updates/*.sql - Additional updates (in alphabetical order) +-- +-- Usage: +-- sqlplus sys/password@service as sysdba @run-all-sys.sql +-- +-- ============================================================================ + +SET ECHO OFF +SET FEEDBACK ON +SET SERVEROUTPUT ON SIZE UNLIMITED +WHENEVER SQLERROR CONTINUE + +PROMPT +PROMPT ============================================================ +PROMPT MASTER SYS INSTALLATION +PROMPT ============================================================ +PROMPT + +-- Get script directory (assuming run from sql/ folder) +DEFINE script_dir = . + +-- ============================================================================ +-- STEP 1: Core SYS Objects +-- ============================================================================ +PROMPT +PROMPT ============================================================ +PROMPT STEP 1: Installing core SYS objects... +PROMPT ============================================================ +@sys-objects.sql + +-- ============================================================================ +-- STEP 2: SYS Grants and Synonyms +-- ============================================================================ +PROMPT +PROMPT ============================================================ +PROMPT STEP 2: Installing SYS grants and synonyms... +PROMPT ============================================================ +@sys-grants.sql + +-- ============================================================================ +-- STEP 3: Additional SYS Updates +-- ============================================================================ +PROMPT +PROMPT ============================================================ +PROMPT STEP 3: Running additional SYS updates... +PROMPT ============================================================ + +-- Note: SQL*Plus doesn't support dynamic script execution from folder +-- Use PowerShell script 02-create-sys-objects.ps1 for full automation +-- Or manually list scripts here: + +-- Example: +-- @sys-updates/2026_01_28_01_example.sql + +PROMPT +PROMPT To run additional updates, use PowerShell: +PROMPT .\scripts\02-create-sys-objects.ps1 +PROMPT +PROMPT Or add @sys-updates/scriptname.sql lines above +PROMPT + +-- ============================================================================ +-- VERIFICATION +-- ============================================================================ +PROMPT +PROMPT ============================================================ +PROMPT VERIFICATION +PROMPT ============================================================ + +PROMPT +PROMPT SYS custom objects: +SELECT object_name, object_type, status +FROM dba_objects +WHERE owner = 'SYS' + AND object_name IN ( + 'AUTH_PACK', 'AUTH_DETALII', 'AUTH_SERII', 'VAUTH_SERII', + 'EXECUTESCRIPTOS', 'NEWSCHEMA', 'NEWSCHEMAJOB', 'UPDATESQLPLUS', + 'PINFO', 'INFO', 'SEQ_AUTH_SERII' + ) +ORDER BY object_type, object_name; + +PROMPT +PROMPT SYS public synonyms: +SELECT synonym_name, table_owner, table_name +FROM dba_synonyms +WHERE owner = 'PUBLIC' + AND table_owner = 'SYS' + AND synonym_name IN ('SYN_NEWSCHEMA', 'SYN_NEWSCHEMAJOB', 'EXECUTESCRIPTOS', 'SYN_PINFO') +ORDER BY synonym_name; + +PROMPT +PROMPT CONTAFIN_ORACLE grants from SYS: +SELECT privilege, table_name +FROM dba_tab_privs +WHERE grantee = 'CONTAFIN_ORACLE' + AND grantor = 'SYS' +ORDER BY table_name; + +PROMPT +PROMPT ============================================================ +PROMPT MASTER SYS INSTALLATION COMPLETE +PROMPT ============================================================ +PROMPT diff --git a/proxmox/lxc108-oracle/roa-windows-setup/sql/sys-grants.sql b/proxmox/lxc108-oracle/roa-windows-setup/sql/sys-grants.sql new file mode 100644 index 0000000..751259f --- /dev/null +++ b/proxmox/lxc108-oracle/roa-windows-setup/sql/sys-grants.sql @@ -0,0 +1,111 @@ +-- ============================================================================ +-- SYS GRANTS AND SYNONYMS FOR ROA APPLICATION +-- ============================================================================ +-- Run AFTER sys-objects.sql and AFTER CONTAFIN_ORACLE import +-- These grants enable CONTAFIN_ORACLE packages to work correctly +-- +-- Usage: +-- sqlplus sys/password@service as sysdba @sys-grants.sql +-- +-- ============================================================================ + +SET ECHO OFF +SET FEEDBACK ON +SET SERVEROUTPUT ON SIZE UNLIMITED +WHENEVER SQLERROR CONTINUE + +PROMPT +PROMPT ============================================================ +PROMPT Installing SYS Grants and Synonyms +PROMPT ============================================================ +PROMPT + +-- ============================================================================ +-- SECTION 1: GRANTS TO CONTAFIN_ORACLE +-- ============================================================================ +PROMPT +PROMPT [1/4] Granting privileges to CONTAFIN_ORACLE... + +-- Execute on SYS packages +GRANT EXECUTE ON SYS.AUTH_PACK TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.DBMS_SCHEDULER TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.UTL_INADDR TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.UTL_FILE TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.UTL_SMTP TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.UTL_TCP TO CONTAFIN_ORACLE; +GRANT EXECUTE ON SYS.DBMS_CRYPTO TO CONTAFIN_ORACLE; + +-- Directory privileges +GRANT CREATE ANY DIRECTORY TO CONTAFIN_ORACLE; +GRANT DROP ANY DIRECTORY TO CONTAFIN_ORACLE; + +-- Scheduler privileges +GRANT CREATE JOB TO CONTAFIN_ORACLE; +GRANT CREATE EXTERNAL JOB TO CONTAFIN_ORACLE; +GRANT MANAGE SCHEDULER TO CONTAFIN_ORACLE; + +PROMPT Grants to CONTAFIN_ORACLE complete. + +-- ============================================================================ +-- SECTION 2: PUBLIC GRANTS +-- ============================================================================ +PROMPT +PROMPT [2/4] Granting public privileges... + +-- UTL packages for public use +GRANT EXECUTE ON SYS.UTL_FILE TO PUBLIC; + +PROMPT Public grants complete. + +-- ============================================================================ +-- SECTION 3: SYS PUBLIC SYNONYMS +-- ============================================================================ +PROMPT +PROMPT [3/4] Creating SYS public synonyms... + +-- Synonyms for SYS procedures +BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_NEWSCHEMA'; EXCEPTION WHEN OTHERS THEN NULL; END; +/ +BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_NEWSCHEMAJOB'; EXCEPTION WHEN OTHERS THEN NULL; END; +/ +BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM EXECUTESCRIPTOS'; EXCEPTION WHEN OTHERS THEN NULL; END; +/ +BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_PINFO'; EXCEPTION WHEN OTHERS THEN NULL; END; +/ + +CREATE PUBLIC SYNONYM SYN_NEWSCHEMA FOR SYS.NEWSCHEMA; +CREATE PUBLIC SYNONYM SYN_NEWSCHEMAJOB FOR SYS.NEWSCHEMAJOB; +CREATE PUBLIC SYNONYM EXECUTESCRIPTOS FOR SYS.EXECUTESCRIPTOS; +CREATE PUBLIC SYNONYM SYN_PINFO FOR SYS.PINFO; + +-- Grants on synonyms +GRANT EXECUTE ON SYN_NEWSCHEMA TO PUBLIC; +GRANT EXECUTE ON SYN_NEWSCHEMAJOB TO PUBLIC; +GRANT EXECUTE ON EXECUTESCRIPTOS TO PUBLIC; +GRANT EXECUTE ON SYN_PINFO TO PUBLIC; + +PROMPT SYS public synonyms complete. + +-- ============================================================================ +-- SECTION 4: DIRECTORY DMPDIR +-- ============================================================================ +PROMPT +PROMPT [4/4] Creating DMPDIR directory... + +BEGIN + EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY DMPDIR AS ''C:\DMPDIR'''; + DBMS_OUTPUT.PUT_LINE(' Directory DMPDIR created.'); +EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(' Directory DMPDIR: ' || SQLERRM); +END; +/ + +GRANT READ, WRITE ON DIRECTORY DMPDIR TO PUBLIC; + +PROMPT +PROMPT ============================================================ +PROMPT SYS Grants and Synonyms Installation Complete +PROMPT ============================================================ +PROMPT