FCLT#54494 Beveiliging klantscripts iets generieker maken

svn path=/Database/trunk/; revision=40589
This commit is contained in:
Erik Groener
2019-01-17 15:40:13 +00:00
parent d446b6ec1e
commit fdd3fb5c61

View File

@@ -7,7 +7,9 @@ AS
PROCEDURE systrackscriptId (svnid IN VARCHAR2, force IN NUMBER DEFAULT 1);
PROCEDURE trydrop (n IN VARCHAR2);
PROCEDURE tryalter (n IN VARCHAR2);
FUNCTION scriptspoolfile (custpattern IN VARCHAR2, scriptname IN VARCHAR) RETURN VARCHAR;
FUNCTION scriptspoolfile(custpattern IN VARCHAR2, scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION getscriptspoolfile(scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION checkscriptcust(custpattern IN VARCHAR2) RETURN VARCHAR2;
END adm;
/
@@ -98,9 +100,9 @@ AS
END IF;
END;
FUNCTION scriptspoolfile (custpattern IN VARCHAR2, -- eg ^SGGR for 'start with SGGR', ATCH|BONS for two schema
scriptname IN VARCHAR)
RETURN VARCHAR
FUNCTION scriptspoolfile (custpattern IN VARCHAR2, -- eg ^SGGR for 'start with SGGR', ATCH|BONS for two schema
scriptname IN VARCHAR2)
RETURN VARCHAR2
IS
lstname VARCHAR2 (255);
tekst VARCHAR2 (255);
@@ -125,6 +127,48 @@ AS
|| '.lst';
END;
FUNCTION getscriptspoolfile(scriptname IN VARCHAR2)
RETURN VARCHAR2
IS
lstname VARCHAR2 (255);
BEGIN
lstname := UPPER(scriptname)
|| '_' || UPPER( USER || '_' || SYS_CONTEXT ('USERENV', 'SERVICE_NAME')
|| '_' || SYS_CONTEXT ('USERENV', 'SERVER_HOST')
)
|| '_' || TO_CHAR (SYSDATE, 'YYYYMMDD_HH24MISS')
|| '.lst';
RETURN lstname;
END;
FUNCTION checkscriptcust(custpattern IN VARCHAR2)
RETURN VARCHAR2
IS
klant fac_version.fac_version_cust%TYPE;
groep fac_version.fac_version_group%TYPE;
tekst VARCHAR2 (255);
BEGIN
tekst := '';
SELECT fac_version_cust
, fac_version_group
INTO klant
, groep
FROM fac_version;
IF NOT (USER = klant OR custpattern = groep OR REGEXP_LIKE(USER, custpattern, 'i'))
THEN
tekst := CHR(10)
|| '============================================' || CHR(10)
|| 'Wrong user!!!!!!!!!' || CHR(10)
|| 'User should be '|| klant ||' or match ' || custpattern || ' but is ' || USER || CHR(10)
|| '============================================' || CHR(10);
RAISE_APPLICATION_ERROR(-20000, tekst);
END IF;
RETURN tekst;
END;
END adm;
/