Fix ROA Windows setup scripts for Oracle XE deployment

Key fixes:
- Add Run.cmd/RunAll.cmd wrappers with ExecutionPolicy Bypass
- Add Get-ListenerHost() to auto-detect listener IP address
- Fix impdp connection using EZConnect format (host:port/service)
- Add parallel=1 for Oracle XE compatibility
- Fix Write-Log to accept empty strings with [AllowEmptyString()]
- Fix Get-SchemaObjectCount regex for Windows line endings (\r\n)
- Fix path comparison for DMP file copy operation
- Add GRANT EXECUTE ON SYS.AUTH_PACK TO PUBLIC for PACK_DREPTURI
- Fix VAUTH_SERII view to use SYN_NOM_PROGRAME (has DENUMIRE column)
- Add sections 10-11 to grants-public.sql for SYS object grants

Tested on VM 302 (10.0.20.130) with Oracle XE 21c.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Marius
2026-01-28 20:56:58 +02:00
parent 75a5daab6f
commit bcb558f1dc
9 changed files with 503 additions and 68 deletions

View File

@@ -386,6 +386,78 @@ SELECT grantee, table_name, privilege
FROM dba_tab_privs
WHERE table_name = 'DMPDIR';
-- ============================================================================
-- SECTION 10: GRANTS ON UNDERLYING TABLES FOR SYS OBJECTS
-- ============================================================================
-- SYS.AUTH_PACK needs direct access to CONTAFIN_ORACLE tables through synonyms
-- These grants ensure SYS-owned objects can resolve synonym references
PROMPT [10/11] Granting table access for SYS objects...
-- Tables accessed by SYS.AUTH_PACK
GRANT SELECT ON CONTAFIN_ORACLE.NOM_PROGRAME TO PUBLIC;
GRANT SELECT ON CONTAFIN_ORACLE.DEF_PROGRAME TO PUBLIC;
GRANT SELECT ON CONTAFIN_ORACLE.AUTH_SERII TO PUBLIC;
GRANT SELECT ON CONTAFIN_ORACLE.AUTH_DETALII TO PUBLIC;
-- Tables accessed by VAUTH_SERII view
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_PROGRAME TO PUBLIC;
-- ============================================================================
-- SECTION 11: RECOMPILE SYS AND CONTAFIN_ORACLE OBJECTS
-- ============================================================================
PROMPT [11/11] Recompiling SYS and CONTAFIN_ORACLE objects...
-- Recompile SYS.AUTH_PACK (depends on synonyms now available)
ALTER PACKAGE SYS.AUTH_PACK COMPILE;
ALTER PACKAGE SYS.AUTH_PACK COMPILE BODY;
-- Grant EXECUTE on SYS.AUTH_PACK so CONTAFIN_ORACLE.PACK_DREPTURI can call it
-- through the PACK_AUTENTIFICARE synonym
GRANT EXECUTE ON SYS.AUTH_PACK TO PUBLIC;
-- Recreate VAUTH_SERII view (may have been invalid due to missing synonym)
-- This view uses SYN_NOM_PROGRAME for program names and AUTH_PACK functions for license info
BEGIN
EXECUTE IMMEDIATE '
CREATE OR REPLACE VIEW SYS.VAUTH_SERII AS
SELECT a.id_program,
a.denumire AS nume,
auth_pack.selecteaza_serie(a.id_program) AS serie,
auth_pack.selecteaza_nr_util(a.id_program) AS nr_util,
auth_pack.selecteaza_data_val(a.id_program) AS data_val
FROM syn_nom_programe a
LEFT JOIN syn_def_programe b ON a.id_program = b.ide_program
WHERE b.sters = 0
AND b.instalat = 1';
DBMS_OUTPUT.PUT_LINE(' View VAUTH_SERII created/replaced.');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(' Warning: Could not create VAUTH_SERII: ' || SQLERRM);
END;
/
GRANT SELECT ON SYS.VAUTH_SERII TO PUBLIC;
-- Recompile CONTAFIN_ORACLE invalid objects
PROMPT Recompiling CONTAFIN_ORACLE schema...
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA(schema => 'CONTAFIN_ORACLE', compile_all => FALSE);
END;
/
-- Show remaining invalid objects
PROMPT
PROMPT Remaining invalid objects (excluding email procedures):
SELECT owner, object_name, object_type
FROM dba_objects
WHERE owner IN ('SYS', 'CONTAFIN_ORACLE')
AND status = 'INVALID'
AND object_type NOT IN ('SYNONYM')
AND object_name NOT IN ('SENDEMAIL', 'EMAILINCASARI', 'EMAILNOTIFICAREFACTURI', 'EMAILSTOCCRITIC')
ORDER BY owner, object_type, object_name;
PROMPT
PROMPT ========================================
PROMPT Grant Configuration Complete