Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
12 views2 pages

Function Security Policy

The document outlines a SQL query designed to retrieve information related to role privileges, including role names, codes, and associated user details such as who created or last updated the privileges. It includes conditions for filtering based on creation and update dates, user parameters, and role names. The results are ordered by the last update date in descending order.

Uploaded by

Ibbu Mohd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views2 pages

Function Security Policy

The document outlines a SQL query designed to retrieve information related to role privileges, including role names, codes, and associated user details such as who created or last updated the privileges. It includes conditions for filtering based on creation and update dates, user parameters, and role names. The results are ordered by the last update date in descending order.

Uploaded by

Ibbu Mohd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

--Function Security Policy

SELECT
RL.ROLE_NAME AS ROLE_NAME,
R.CODE AS ROLE_CODE,
RT.ROLE_TYPE_NAME AS ROLE_TYPE,

PL.CODE AS PRIVILEGE_CODE,
PL.NAME AS PRIVILEGE_NAME,

PM.CREATED_BY,
(SELECT L.FIRST_NAME || ' ' || L.LAST_NAME FROM PER_LDAP_USERS L WHERE L.USERNAME =
PM.CREATED_BY AND L.USER_GUID = UA.USER_GUID
AND L.CREATION_DATE = (SELECT MAX(L1.CREATION_DATE) FROM PER_LDAP_USERS L1 WHERE
L1.USERNAME = L.USERNAME AND L1.USER_GUID = L.USER_GUID)) AS CREATED_BY_NAME,
TO_CHAR(PM.CREATION_DATE, 'MM/DD/YYYY hh:mm AM') AS CREATION_DATE_UTC,

PM.LAST_UPDATED_BY,
(SELECT L.FIRST_NAME || ' ' || L.LAST_NAME FROM PER_LDAP_USERS L WHERE L.USERNAME =
PM.LAST_UPDATED_BY AND L.USER_GUID = UB.USER_GUID
AND L.CREATION_DATE = (SELECT MAX(L1.CREATION_DATE) FROM PER_LDAP_USERS L1 WHERE
L1.USERNAME = L.USERNAME AND L1.USER_GUID = L.USER_GUID)) AS LAST_UPDATED_BY_NAME,
TO_CHAR(PM.LAST_UPDATE_DATE, 'MM/DD/YYYY hh:mm AM') AS LAST_UPDATE_DATE_UTC,

CASE WHEN TRUNC(PM.LAST_UPDATE_DATE) = TRUNC(PM.CREATION_DATE)


THEN 'UPDATE(ADD)'
WHEN (TRUNC(PM.LAST_UPDATE_DATE) <> TRUNC(PM.CREATION_DATE) AND
NVL(PM.EFFECTIVE_END_DATE,TO_DATE('4712-12-31')) = TO_DATE('4712-12-31'))
THEN 'UPDATE(NEW)'
ELSE 'UPDATE(OLD)'
END AS ACTION,

TO_CHAR(PM.EFFECTIVE_START_DATE, 'MM/DD/YYYY') AS EFFECTIVE_START_DATE,


TO_CHAR(PM.EFFECTIVE_END_DATE, 'MM/DD/YYYY') AS EFFECTIVE_END_DATE

FROM ASE_PRIV_ROLE_MBR PM, ASE_ROLE_TL RL, ASE_ROLE_B R, ASE_PRIVILEGE_VL PL,


PER_USERS UA, PER_USERS UB, ASE_ROLE_TYPE_VL RT
WHERE PM.ROLE_ID = RL.ROLE_ID AND PM.ROLE_ID = R.ROLE_ID
AND RL.LANGUAGE = 'US'
AND PL.LANGUAGE = 'US'
AND UA.USERNAME = PM.CREATED_BY
AND UB.USERNAME = PM.LAST_UPDATED_BY
AND UA.START_DATE = (SELECT MAX(UA1.START_DATE) FROM PER_USERS UA1 WHERE
UA1.USER_ID = UA.USER_ID)
AND UB.START_DATE = (SELECT MAX(UB1.START_DATE) FROM PER_USERS UB1 WHERE
UB1.USER_ID = UB.USER_ID)
AND R.EFFECTIVE_START_DATE = (SELECT MAX(R1.EFFECTIVE_START_DATE) FROM ASE_ROLE_B
R1 WHERE R1.ROLE_ID = R.ROLE_ID)
AND PL.EFFECTIVE_START_DATE = (SELECT MAX(PL1.EFFECTIVE_START_DATE) FROM
ASE_PRIVILEGE_VL PL1 WHERE PL1.PRIVILEGE_ID = PL.PRIVILEGE_ID)
AND PM.PRIVILEGE_ID = PL.PRIVILEGE_ID
AND RT.LANGUAGE = 'US'
AND RT.ROLE_TYPE_CODE = R.ROLE_TYPE_CODE
AND ((PM.CREATION_DATE BETWEEN :PARAM_FROM_DATE AND :PARAM_TO_DATE) OR
(PM.LAST_UPDATE_DATE BETWEEN :PARAM_FROM_DATE AND :PARAM_TO_DATE))
AND ((PM.CREATED_BY IN (:PARAM_USERS) OR LEAST (:PARAM_USERS) IS NULL) OR
(PM.LAST_UPDATED_BY IN (:PARAM_USERS) OR LEAST (:PARAM_USERS) IS NULL))
AND ((RL.ROLE_NAME IN (:PARAM_ROLENAME) OR LEAST (:PARAM_ROLENAME) IS NULL))
ORDER BY PM.LAST_UPDATE_DATE DESC

You might also like