PS 9.1 Re-Implementation - Employee Data Security Prototype v1.0
PS 9.1 Re-Implementation - Employee Data Security Prototype v1.0
1
Re-implementation
Employee Data Security
Prototype
Client Name:
American Express
Revision History
Project
Version
1.0
Date
April 15, 2009
Revised By
Revisions
Ketan Dedhiya
Initial Version
Contents
1.
Introduction.....................................................................................4
Purpose....................................................................................................................................... 4
Scope.......................................................................................................................................... 4
Proposed Changes...................................................................................................................... 4
2.
3.
4.
1. Introduction
Purpose
The purpose of this document is to provide details of employee data security as implemented in current
version of PS and future employee data security proposal based on the requirements for HR/RL and
privileged users to view data for given People Leader or Department Hierarchy.
Scope
Initial scope of this prototype is to demonstrate new features of employee data security as available in PS 9
and perform proof of concept using People Leader or Department hierarchy with Department Security tree.
Proposed Changes
Changes to this document can be made at any time by completing the revision history table located at the
beginning of this document. A new version should be provided for this document for each modification made
following a review and a summary of the changes should be provided in the Revision column. This document
should be renamed to reflect the new version number at the end of the file name.
Company
Division
Business Unit
Line of Business (Unit Code)
Benefit Routing Code
AMEX Security Code (SCode)
Cost Center Setup Page (HRO Core Setup HRO Cost Center)
AMEX Security Code gets derived based on Country of Company (Regulatory Region), Division, Business
Unit and in some cases based on Line of Business (Unit Code) and Company itself. Based on SCode, a
custom security tree (ORG_SECURITY) has been build to derive the employee data security for PeopleSoft
Users like HR (Human Resource Managers), RL (Relationship Managers) and any other users, who would
require access to PS Queries or core components like Personal Data, Job Data etc.
Organization Security tree has been maintained regularly with any changes to Cost Center attributes. Users
have been provided access to required tree node based on their span of control in an Organization. This
access to users has been provided using custom page where Row Security Class has been given access to
individual tree node.
Access to AMEX Security Code (Setup HRMS Security Setup Security Access)
All search views have been changed based on Org Security tree hierarchy. Query Security views are based
on Fast Security tables, which have been populated using Org Security tree hierarchy. Reports being
developed for HR/RL have been built based on this security structure.
Configure Security Access Type of Job Department Tree and Security Set as People with Jobs
Multiple Business Units and a SetID (AMEX) has been created to support the prototype.
Few existing Department IDs have been created using Department Table Setup page
Built Department Security Tree based on current hierarchy of Departments (Security IDs)
Created and Assigned Row Security Class and Data Permission Lists to PS Users
Verified access to employee data for a user based on Row Security Class and Data Permission List
access
Additional changes have been performed to Security Search Records to exclude specific Regulatory
Region Employees
10
Security Sets
For employee data security, we will use PS delivered Security Set of PPLJOB (People with Jobs). This
defines the set of Security Access Types that are used to provide access to People with Jobs. These are
Employees, Contingent Workers, and some of the Person of Interest Types.
Security Sets (Setup HRMS Core Row Level Security Security Sets)
11
12
Attached file shows list of Department IDs being created for the prototype. Employees have been assigned to
these corresponding Department IDs in JOB record using Job Data page.
13
14
15
SETID
AMEX
AMEX
AMEX
AMEX
AMEX
DEPTID
S000580
S000586
S000000
S000000
S000579
ACCESS_CD
Y
Y
Y
Y
N
TREE_EFFDT
1/1/2009
1/1/2009
1/1/2009
1/1/2009
1/1/2009
TREE_NODE_NUM
1003906250
1001953125
1
1
1250000000
TREE_NODE_NUM_END
1007812499
1003906249
2000000000
2000000000
1499999999
16
SCRTY_SET_CD
PPLJOB
SCRTY_TYPE_CD
005
SCRTY_KEY1
DEU
SCRTY_KEY2
SCRTY_KEY3
17
Once process gets executed successfully, it populates SJT_CLASS_ALL record with Department IDs, which
are in span of control for Department node defined Security by Department Tree page and data element
defined for Data Permission List. In below example, data has been populated for different Row Security
Classes and Data Permission List defined for prototype.
In summary, this table creates normalized security table based on access being provided to Row Security
Class and/or Data Permission List and used as driving table to determine employee data security for users.
SELECT *
FROM PS_SJT_CLASS_ALL
WHERE CLASSID LIKE 'AMX%'
18
CLASSID
AMXDATAPERMISSIONLIST1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS1
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS2
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS3
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
SCRTY_SET_CD
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
SCRTY_TYPE_CD
005
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
SCRTY_KEY1
DEU
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
SCRTY_KEY2
S000580
S001131
S001934
S003695
S007808
S015466
S020003
S021966
S024578
S000586
S002662
S007811
S018179
S018423
S022368
S023719
S027536
S000000
S000001
S000577
S000579
S000580
S000581
S000582
S000583
S000586
S000587
S000588
S001131
S001934
S002662
S003695
S007808
S007811
S015466
S018179
S018423
S020003
S021966
S022368
S023719
S024578
S027536
S000000
S000001
S000577
S000580
S000581
S000582
S000583
S000586
S000587
S000588
S001131
SCRTY_KEY3
TREE
N
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
19
CLASSID
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
AMXROWSECCLASS4
SCRTY_SET_CD
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
PPLJOB
SCRTY_TYPE_CD
001
001
001
001
001
001
001
001
001
001
001
001
001
001
SCRTY_KEY1
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
AMEX
SCRTY_KEY2
S001934
S002662
S003695
S007808
S007811
S015466
S018179
S018423
S020003
S021966
S022368
S023719
S024578
S027536
SCRTY_KEY3
TREE
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
20
ROWSECCLASS
AMXROWSECCLASS1
AMXROWSECCLASS2
AMXROWSECCLASS3
AMXROWSECCLASS4
AMXROWSECCLASS1
21
User AMXUSER5 has been assigned to Row Security Class of AMXROWSECCLASS3, which has been give
access to Employees under top level Department ID (S000000) and Data Permission List of
AMXDATASECURITY1, which has been given access to all employees from Germany (DEU) Regulatory
Region.
22
PS delivered search records would provide access of all Employees (including Germany) for user
AMXUSER5 based on access to Row Security Class and Data Permission List. But one of the requirements
is to exclude access of Germany employees for certain group of HR/RL and privileged users. To take care of
this requirement search records will be changed in such a way that instead of using Data Permission List
security for Regulatory Region as inclusion criteria, it will be used as exclusion criteria. This will be done by
changing Where condition of search records, which would considered as customization from PS delivered
code and this has been explained in Red Paper Row Level Security 89 on page number 186 onwards,
published by PS/Oracle.
23
and
24
25
Once process gets executed successfully, it populates SJT_OPR_CLS record with User ID and corresponding
Row Security Class and/or Data Permission Lists. For prototype, 5 different users have been created with
different Row Security Class and Data Permission List. SQL below would show corresponding Row Security
Class and/or Data Permission List for these User IDs.
SELECT *
FROM PS_SJT_OPR_CLS
WHERE OPRID LIKE 'AMX%'
OPRID
AMXUSER1
AMXUSER2
AMXUSER3
AMXUSER4
AMXUSER5
AMXUSER5
CLASSID
AMXROWSECCLASS1
AMXROWSECCLASS2
AMXROWSECCLASS3
AMXROWSECCLASS4
AMXDATAPERMISSIONLIST1
AMXROWSECCLASS3
SEC_RSC_FLG
1
1
1
1
2
1
26
For this prototype, we have used PS delivered Security Access Type of 001 (Job Department Tree) and
Access Type of 005 (Job Regulatory Region), which are tied to security set of PPLJOB (People with Jobs).
Based on this setting, SJT_PERSON table gets populated for every employee with corresponding security
keys. In this case Security Type Code is 001 (Job Department Tree), First Security Key is AMEX (SetID value
of Department ID) and Second Security Key is Department IDs as available on Department Security Tree.
Attached excel file shows list of employees gets populated to SJT_PERSON record based on abovementioned key structure.
List of Employees in
SJ T_PERSON.xls
27
This table also gets populated by PS delivered process Nightly SJT Update ( SCRTY_SJTDLY).
Nightly SJT Update (Setup HRMS Security Core Row Level Security Nightly SJT Refresh
Process)
28
29
At the same time when user AMXUSER5 logs into PS and search for an employee using wild character of %
for name field through Job Data component, it returns 42 employees based on Row Security Class (top level
access) and Data Security Permission (exclude Germany Employees) access being provided to that user. All
Security Join Tables being populated in earlier section determines the selection of employee list for the user.
Job Data Search Page (Workforce Administration Job Information Job Data)
30
SETID
AMEX
AMEX
AMEX
AMEX
AMEX
DEPTID
S000580
S000586
S000000
S000000
S000579
ACCESS_CD
Y
Y
Y
Y
N
TREE_EFFDT
1/1/2009
1/1/2009
1/1/2009
1/1/2009
1/1/2009
TREE_NODE_NUM
1003906250
1001953125
1
1
1250000000
TREE_NODE_NUM_END
1007812499
1003906249
2000000000
2000000000
1499999999
SCRTY_SET_CD
PPLJOB
SCRTY_TYPE_CD
005
SCRTY_KEY1
DEU
SCRTY_KEY2
SCRTY_KEY3
Number of Users with access to Row Security Class and/or Data Permission List 5
OPRID
AMXUSER1
AMXUSER2
AMXUSER3
AMXUSER4
AMXUSER5
AMXUSER5
CLASSID
AMXROWSECCLASS1
AMXROWSECCLASS2
AMXROWSECCLASS3
AMXROWSECCLASS4
AMXDATAPERMISSIONLIST1
AMXROWSECCLASS3
SEC_RSC_FLG
1
1
1
1
2
1
Count of Employees accessed by every Users based on security access provided to their individual IDs
User ID
AMXUSER1
AMXUSER2
AMXUSER3
AMXUSER4
AMXUSER5
Count of Employees
20
18
49
48
42
31