FCLT#54494 Beveiliging klantscripts iets generieker maken
svn path=/Database/trunk/; revision=40589
This commit is contained in:
@@ -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;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user