Implementing Data Permission Security

To implement data permission security, use the Security Installation Settings component (SCRTY_INSTALL), the Security Sets component (SCRTY_SET_TBL), the Security Access Type component (SCRTY_TYPE2_TBL), the Group Registration component (SCRTY_GB_REGISTER), and the Matrix Team Registration component (SCRTY_MX_REGISTER).

These topics discuss several ways to implement data permission security.

Page Name

Definition Name

Usage

Security Installation Settings Page

SCRTY_INSTALL

Choose the HCM security settings for your installation.

Security Set Table Page

SCRTY_SET_TBL

Review existing security sets and the security access types you've attached to them.

Security Update Groups Page

SCRTY_SJT_UPD

Define the data groups that can be updated by the SJT Refresh process.

Security Type Table Page

SCRTY_TYPE2_TBL

Enable or modify existing security access types or create new ones.

Security Type SQL Page

SCRTY_TYPE2_SQL

Enter the SQL statements for the new security types.

Group Registration Page

SCRTY_GB_REGISTER

Register groups from the Group Build feature that you want to use for row level security.

Matrix Team Registration Page

SCRTY_MX_REGISTER

Register a matrix team that you want to use for row level security.

Refresh Groups Page

SCRTY_GB_REFRESH

Refresh security-related groups that were created using the Group Build feature.

Refresh Matrix Teams Page

SCRTY_MX_REFRESH

Refresh security-related matrix teams.

The Security Installation Settings page enables you to select actions that, when used on the Work Location page (JOB_DATA1), trigger the SavePostChange PeopleCode to create a future-dated row in SJT_PERSON.

The system normally secures data using the current transaction security data. Only users with data permission access to the transaction security data on the current row can access the person's data

When you include future-dated transaction security data rows the system uses both the current data and the future-dated values to secure the data. This gives users with data permission access to the transaction security data on the current row and users with data permission access to the transaction security data on the future-dated row access to the person.

The system only creates future-dated security rows in SJT_PERSON when you:

  1. Select one or more actions on the Security Installation Settings page.

  2. Enable future-dated rows for the security access type.

    Note: This enables you to use future-dated security with some types but not others.

  3. Create and save a future-dated row in a component that uses the JOB record using one of the actions you selected on the Security Installation Settings page.

If you have selected the action of Transfer in the Actions that trigger Future Dated Security Rows grid, then when you create a future-dated Job Data row with the action of Transfer for a person, the system will add a row to the SJT_PERSON with the transaction data from the new row. Users with data permission to the future-dated transaction security data will have access to the person's data.

Note: Only component security views use future-dated security rows.

For example, as of January 1, 2005 Kenny Wong works in department 42000. Starting July 1, 2006 he will transfer to department 44000. On April 15, 2006, in anticipation of the transfer, the HR administrator enters a future-dated job data row for the transfer.

Julie Sparrow manages department 42000 and Barry Deere manages department 44000 and each has data permission to the people in their departments.

As of April 15, 2006 Kenny Wong has the following two job data rows:

Effective Date

Action

Department

January 1, 2005

Hire

42000

July 1, 2006

Transfer

44000

The data permission depends on if you are using future-dated security for that security access type and if you have selected the action of Transfer on the Security Installation Settings page:

  • If you have not selected it:

    • The SavePostChange PeopleCode does not update SJT_PERSON with the new department information from the future-dated row because it is not yet effective.

      Note: When the transfer row does become effective, the Nightly SJT Update process updates SJT_PERSON, overwriting the old row with the new row.

    • Julie can access Kenny's data until June 30, 2006 and Barry can access it starting July 1, 2006.

  • If you have selected it:

    • The SavePostChange PeopleCode creates a new row in SJT_PERSON with the future-dated transaction security data. The system identifies this row as future-dated.

      Note: When the transfer row becomes effective, the Nightly SJT Update process updates SJT_PERSON, removing the old row and making the future-dated row current.

      Note: Search views that don't use future-dated security will not use the future security row when enforcing data permission.

    • Julie can access Kenny's data until June 30, 2006 and Barry can access it starting April 15, 2006.

Without special job security options, the system creates a single transaction security data row for each unique combination of ID and employment record number. When you use special job security options, the system creates additional rows in SJT_PERSON with different security key values to enable access to rows to which a permission list would normally not have access.

For example, if you are securing data by department and have enabled people with access to the home job data record to view the host job data record but are not allowing people with access to the host job data record to view the home job data record, the system will create the following three rows of data in SJT_PERSON (only the relevant columns are shown) for a person whose home job data record (employee record number 0) is in department 25000 and whose host job data record (record number 1) is in department 20000:

Key 1

Key 2

Empl ID

Empl Record

Home/Host

Intl. Type

SHARE

25000

K0G019

0

Home

SHARE

25000

K0G019

1

Host

Home-Host

SHARE

20000

K0G019

1

Host

The system creates the row marked Home-Host to grant the special job security option. By creating a row for the host record with the department value of the home record, people with data permission to the home record can access the host record.

The system works the same way for the other special security options, creating an additional row and inserting the key values that enable the access.

Use the Security Installation Settings page (SCRTY_INSTALL) to choose the HCM security settings for your installation.

Navigation:

Set Up HCM > Security > Core Row Level Security > Security Installation Settings > Security Installation Settings

This example illustrates the fields and controls on the Security Installation Settings page. You can find definitions for the fields and controls later on this page.

Security Installation Settings page

Special Job Security Versions

The options you select here will be available for your installation but will not be enabled unless you select them again for the security access types you are using. This enables you to use the security versions for some security access types and not others.

Field or Control

Description

Include Home/Host Access?

This option is for tracking global assignments. When an employee is on assignment they have a host record and a home record. Select one of the following options:

  • Home can see Host: Select to enable a person with data permission that enables them to view the home record to also view the employee's host record. A person with just data permission to the host record will not be able to see the employee's home record.

  • Host can see Home: Select to enable a person with data permission that enables them to view the host record to also view the employee's home record. A person with just data permission to the home record will not be able to view the host record.

  • Both: Select to enable a person with data permission to the home record to view the host record and a person with data permission to the host record to view the home record.

If you do not select Include Home/Host Access? then regular data permission rules apply.

See Understanding Global Assignment Tracking.

Incl. Additional Assignments?

This option is for workers with additional assignments added using the Job Data Concurrent component (JOB_DATA_CONCUR).

When a worker has an additional assignment, they have a controlling employee or contingent worker instance with an active job data record and an additional assignment job data record. Select one of the following options:

  • Assignment can see Instance: Select to enable a person with data permission that enables them to view the assignment job data record to also view the person's controlling instance job record. A person with data permission to the controlling instance job data record will not be able to see the worker's assignment job data record.

  • Instance can see Assignment: Select to enable a person with data permission that enables them to view the controlling instance job record to also view the person's assignment job data record . A person with data permission to the assignment job data record will not be able to see the worker's controlling instance job data record.

  • Both: Select to enable a person with data permission that enables them to view the controlling instance job record to also view the assignment job data record and a person with data permission that enables them to view the assignment job data record to also view the controlling instance job record.

  • None: Select to make additional assignments job data records available to all users.

If you do not select Incl. Additional Assignments? then regular data permission rules apply.

See Adding Additional Assignments.

JPN Appointment

(JPN) Select so that users who have access to the additional appointment of a worker can access the main appointment record for that worker.

The system assigns some additional assignments (Kenmu) to a particular EmplID and record called a main appointment, the job you can access through the Job Data pages.

If you do not select JPN Appointment? then regular data permission rules apply.

See Setting Up Security for Tracking Additional Appointments.

Actions that trigger Future-Dated Security Rows

Select the actions that will trigger the SavePostChange PeopleCode in the components using the JOB record to create a future-dated security row in SJT_PERSON when they are used in a future-dated row in the Job Data pages. The system will not create security rows for future-dated rows with actions other than those listed here.

To create future-dated rows, you need to select the Include Future Dates check box on the Security Type Table. This enables you to use future-dated security for some security access types and not others.

Use the Security Set Table page (SCRTY_SET_TBL) to review existing security sets and the security access types you've attached to them.

Navigation:

Set Up HCM > Security > Core Row Level Security > Security Sets > Security Set Table

This example illustrates the fields and controls on the Security Set Table page. You can find definitions for the fields and controls later on this page.

Security Set Table page

Field or Control

Description

Object Owner ID

Security sets with a PeopleSoft Object Owner ID are system data and not available for modification on this page. You can still modify the Security Update Groups of delivered security sets.

Transaction Sec Join Table

The security join table that stores the transaction data for this security set.

Note: If you are creating a new security set, you must have created this table in Application Designer before creating the security set.

Creating a new security set requires modification of the system. Please refer to the Security technical brief on My Oracle Support for directions.

SJT Temp Table (for AE process)

The temporary record used for PeopleSoft Application Engine. It is a copy of the transaction security join table and also contains the Application Engine process fields. This table updates the transaction security join field using the Application Engine process.

SQLID for Value Field List

The list of fields (not including the key fields) that are in the transaction security join table.

Generate SQL

Click to generate the SQL and SQLID for the value field list.

Security Access Types for this Set

The system lists the security access types for this security set and indicates which ones are enabled. Enable or disable security access types on the Security Type Table page.

See Security Type Table Page.

Use the Security Update Groups page (SCRTY_SJT_UPD) to define the data groups that can be updated by the SJT Refresh process.

Navigation:

Set Up HCM > Security > Core Row Level Security > Security Sets > Security Update Groups

This example illustrates the fields and controls on the Security Update Groups page. You can find definitions for the fields and controls later on this page.

Security Update Groups page

Select which refresh options to make available when updating the security set using the SJT Refresh process. The system makes the options you select here available for this security set on the Refresh SJT page, enabling you to select portions of the security join table to update.

For example, you could refresh all the rows for external instructors by selecting the refresh option Person of Interest Type and the POI Type External Instructors.

Use the Security Type Table page (SCRTY_TYPE2_TBL) to enable or modify existing security access types or create new ones.

Navigation:

Set Up HCM > Security > Core Row Level Security > Security Access Type > Security Type Table

This example illustrates the fields and controls on the Security Type Table page. You can find definitions for the fields and controls later on this page.

Security Type Table page

You can enable more than one security access types for a security set and you can assign data permission access to a permission list using more than one access type.

Note: PeopleSoft has delivered the most asked for security access types and you should not need to create new types. Enable or disable the types your installation requires.

Please refer to the Security technical brief on My Oracle Support for directions on how to create new security types.

Note: The more security access types you enable and options you use, the more rows of data the system stores in the security join tables. This affects system performance. PeopleSoft advises you to enable only the security types and options required to manage your data permission needs.

Field or Control

Description

Security Type

The system automatically numbers new security types.

Transaction Label

Enter a field label. The system will display this label on a transaction page when the security access type is used as a field to gather data.

For example, if you are using fields in addition to POI type to control access to the data of POIs without jobs, the system will use the label you enter here on the Add a POI Type page and Edit POI Relationship page to prompt for security transaction values.

Security Set and Transaction Sec Join Table

The security set whose data you are securing and the security join table associated with the security set.

See Security Set Table Page.

Enabled

Select to enable the security type.

Include Future Dates

Select to enable the security join tables to store future-dated security rows for this type. The system will only update the security join tables with the future-dated rows that have the actions you selected on the Security Installation Settings page.

Use Dept Sec Tree? (use department security tree?)

Select if this security type uses the department security tree.

You can only create department security trees for departments and can only grant data permission based on department security trees to row security permission lists.

Transaction Table

The transaction table that stores the field or fields that will control security for this type.

Special Job Security Versions

If you enable special job security versions on the Security Installation Settings page, enable the options for this security access type.

See Security Installation Settings Page.

Security Key 1, Prompt Rec for Sec Key 1 (prompt record for security key 1), Security Key 2, Prompt Rec for Sec Key 2 (prompt record for security key 2), Security Key 3. and Prompt Rec for Sec Key 3 (prompt record for security key 3)

Define the security data fields for this type. The fields need to be on the Transaction Table record.

The prompt record is the record the prompt field values come from when you are assigning values to a permission list. You must select all the records and fields necessary to make a unique qualification here.

For example, to select a location (key 2), you first need to select a business unit (key 1). The prompt record for the BUSINESS_UNIT field is BUS_UNIT_TBL_HR and the prompt record for the LOCATION field is LOCATION_TBL.

Refreshing the Transaction Security Join Tables

You should refresh the transaction security join tables whenever you:

  • Enable or disable a security access type.

  • Enable or disable a future-dated security for an enabled security access type.

  • Change the special job security versions for an enabled security access type.

See Refresh Trans. SJT tables Page.

Use the Security Type SQL page (SCRTY_TYPE2_SQL) to enter the SQL statements for the new security types.

Navigation:

Set Up HCM > Security > Core Row Level Security > Security Access Type > Security Type SQL

This example illustrates the fields and controls on the Security Type SQL page (1 of 3). You can find definitions for the fields and controls later on this page.

Security Type SQL page (1 of 3)

This example illustrates the fields and controls on the Security Type SQL page (2 of 3). You can find definitions for the fields and controls later on this page.

Security Type SQL page (2 of 3)

This example illustrates the fields and controls on the Security Type SQL page (3 of 3). You can find definitions for the fields and controls later on this page.

Security Type SQL page (3 of 3)

The Application Engine uses the SQL fragments on this page to build the update and insert statements to update the transaction security join table.

You can use any SQLID but when you click the Generate SQL buttons, the system generates unique IDs based on the security set and/or type.

Warning! This page should only be used by users with a strong understanding of SQL joins and the table relationships.

Use the Group Registration page (SCRTY_GB_REGISTER) to register groups from the Group Build feature that you want to use for row level security.

Navigation:

Set Up HCM > Security > Core Row Level Security > Group Registration > Group Registration

This example illustrates the fields and controls on the Group Registration page.

Group Registration page

Field or Control

Description

Group ID

Select those groups that were created using the Group Build framework that you want to register as part of row level security. For more information on the Group Build feature, see Understanding Group Build.

Use the Matrix Team Registration page (SCRTY_MX_REGISTER) to register a matrix team that you want to use for row level security.

Navigation:

Set Up HCM > Security > Core Row Level Security > Matrix Team Row Level Security > Matrix Team Registration

This example illustrates the fields and controls on the Matrix Team Registration page.

Matrix Team Registration page

Field or Control

Description

Matrix Id

Select those matrix teams that were created using the Matrix Team Page that you want to register as part of row level security.

Use the Refresh Groups page (SCRTY_GB_REFRESH) to refresh security-related groups that were created using the Group Build feature.

Navigation:

Set Up HCM > Security > Core Row Level Security > Refresh Groups > Refresh Groups

This example illustrates the fields and controls on the Refresh Groups page.

Refresh Groups page

After a group is registered, use the Refresh Groups run control page, which allows either refreshing or creating of content for all registered groups (Refresh All) or for individually selected groups, to run the Refresh Groups (SCRTY_GB_REF) process. This process runs the Group Build framework and populates the Security Group Results (SCRTY_GBRES_TBL) transaction table that is used in security access. The process will also remove any inactive groups that are identified on this page. Groups that are future dated will not be picked up by this process.

Note: You need to run the process from the Refresh Transaction SJT tables component to pick up the information stored in the Group Results (SCRTY_GBRES_TBL) transaction table.

Field or Control

Description

Refresh All

Select this option to refresh or generate new content for all active registered security related groups. Any inactive registered groups will be removed from the security results table.

To register a group for security purposes, see the Group Registration Page.

Group ID

Select from those groups that were registered on the Group Registration Page.

Status

Indicates if this group is active or inactive. The Security Group Build Refresh process generates new content and updates the Security Results table for active groups and removes content for inactive groups listed on this page.

Refresh

Select to refresh (add, update, or remove) specific rows of group data. The process will use the selected data to update the Group Results (SCRTY_GBRES_TBL) transaction table accordingly. The system will process only those rows that are selected, unless the Refresh All option is selected and then all rows will be processed.

Note: When the Access Type Group Build (045) is enabled, the security sync AE program will pick up and generate entries in SJT_PERSON for all employees found in the associated group table. To enable an Access Type, see Security Type Table Page.

Use the Refresh Security Matrix Teams page (SCRTY_MX_REFRESH) to refresh security-related matrix teams.

Navigation:

Set Up HCM > Security > Core Row Level Security > Refresh Matrix Teams > Refresh Matrix Teams

This example illustrates the fields and controls on the Refresh Matrix Teams page.

Refresh Matrix Teams page

After a matrix team is registered, use the Refresh Matrix Teams run control page, which allows either refreshing or creating of content for all registered matrix teams (Refresh All) or for individually selected matrix teams, to run the Refresh Matrix Teams (SCRTY_MX_REF) process. This process populates the security Matrix Team Results (SCRTY_MXRES_TBL) transaction table that is used in security access. The process will also remove any inactive matrix teams that are identified on this page. Matrix Teams that are future dated will not be picked up by this process.

Note: You need to run the process from the Refresh Transaction SJT tables component to pick up the information stored in the Matrix Team Results (SCRTY_MXRES_TBL) transaction table.

Field or Control

Description

Refresh All

Select this option to refresh or generate new content for all active registered security related matrix teams. Any inactive registered matrix teams will be removed from the security results table.

To register a team for security purposes, see the Matrix Team Registration Page.

Matrix Id

Select from those matrix teams that were registered on the Matrix Team Registration Page.

Status

Indicates if this matrix team is active or inactive. The Security Matrix Team Refresh process generates new content and updates the security Matrix Team Results table for active matrix teams and removes content for inactive matrix teams listed on this page.

Refresh

Select to refresh (add, update, or remove) specific rows of matrix team data. The process will use the selected data to update the Matrix Team Results (SCRTY_MXRES_TBL) transaction table accordingly. The system will process only those rows that are selected, unless the Refresh All option is selected and then all rows will be processed.

Note: When the Access Type Matrix Team (046) is enabled, the security sync AE program will pick up and generate entries in SJT_PERSON for all employees found in the associated matrix team table. To enable an Access Type, see Security Type Table Page.