|
|
|
|
|
|
|
|
|
Version 0.1 - 12/2022 |
|
|
Author |
Version |
Comments |
Date |
João Fonseca |
0.1 |
Initial Version |
26/12/2022 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Summary
1- Introduction
1.1- Purpose of the document
1.2- Intended Audience
2- How it works
2.1- Description
2.2- Security Process
3- Security Model
3.1- Description
3.2- Model
3.2- Tables
4- Talend Jobs
This document describes how the security access will work.
This document is intended for the Data Architectures, Data Engineering, operational and data Visualization team.
It will be used as reference for any project or domain for the developments of the models.
The objective of this security system is to control the access to the data independently to the tool or project. This model needs to guarantee access by data, if we want to give access only to a specific dataset like GBU or Materials and give access by object, if we want to give access to a report or folder. This needs to work for all the projects and data in Solvay GCP.
PRIORITARIO
The model will be splitted in 3 parts to be able to cover all the types of access by data or objects.
The first part - Template is the creation of templates to parametrize a project or a domain access, so we will create a set of tables that will allow us to parametrize the project or domain and then load the data to the final tables where this will match with the users, project, objects and data.
The second part - Object access is the control access to the objects (report; table etc..) this model is a set of tables that will be used to give the correct access, this will be described further.
The third part - Data access is the control access to the data (by GBU; Material etc..) . This model is a set of tables that will be used to give the correct access, this will be described further.
All these 3 parts will join together to provide one single model for all the Solvay access.
Scope:
User:
Scope Role template:
Role Template:
Permission Template -
Scope:
User:
User Scope Role:
Roles:
Permission:
Object:
Object type

Scope:
Users:
User Scope Role:
Roles:
Data Sec Objects:
Object Values:
Example:
Describe all the tables that need to have a full logging process.
The model is constituted by the 3 steps as explained, Template, object and data access

Logging table in the staging (Step 1) - Users
# |
Field Name |
Description |
Type |
Example |
001 |
user_id |
Identification of the user |
STRING |
E.g. fd01cfb099ee11e7982900000a8b263a |
002 |
user_login_id |
|
STRING |
E.g. PRIVOAL |
003 |
user_full_name |
Name of the user |
STRING |
E.g. Sophie GALINAT |
004 |
disabled |
If the user exist or not exist |
STRING |
E.g. "F" false |
005 |
department |
Department of the user |
STRING |
E.g. S&T - LOF |
006 |
Email of the user |
STRING |
E.g. jp.fonse@solvay.com |
|
007 |
role_id |
Id of the role |
STRING |
E.g. bb9856605e8f11eca7e0000096fb74a6 |
008 |
work_location |
The physic place where the user is located |
STRING |
E.g. BRUXELLES (NOH) |
009 |
gbu |
GBU of the user |
STRING |
E.g. R&I- S&T LABS |
011 |
hr_user_role |
The job / role the person have in Solvay |
STRING |
E.g. R&I Engineer |
012 |
start_date |
Date when this record is valid |
TIMESTAMP |
E.g. 2023-01-04 17:34:04 UTC |
013 |
end_date |
Date when this record is no longer the last version |
TIMESTAMP |
E.g. 2023-01-04 17:34:04 UTC |
014 |
current_flag |
If this is the last version of the record |
STRING |
E.g. "YES" |
Logging table in the staging (Step 2) - Scope
# |
Field Name |
Description |
Type |
Example |
001 |
role_id |
Id of the role |
STRING |
E.g. 4ffdc2c087ab11eba3b1000096fb74a6 |
002 |
role_name |
Name of the role |
STRING |
E.g. BatMat_PTF_ViewAccess |
003 |
role_display_name |
|
STRING |
E.g. BatMat_PTF_ViewAccess |
004 |
system_role |
???? |
STRING |
E.g. F |
005 |
start_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
006 |
end_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
007 |
current_flag |
|
STRING |
E.g. YES |
Logging table in the staging (Step 2) - Roles
# |
Field Name |
Description |
Type |
Example |
001 |
role_id |
Id of the role |
STRING |
E.g. 4ffdc2c087ab11eba3b1000096fb74a6 |
002 |
role_name |
Name of the role |
STRING |
E.g. BatMat_PTF_ViewAccess |
003 |
role_display_name |
|
STRING |
E.g. BatMat_PTF_ViewAccess |
004 |
system_role |
???? |
STRING |
E.g. F |
005 |
start_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
006 |
end_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
007 |
current_flag |
|
STRING |
E.g. YES |
Logging table in the staging - User Scope Roles
# |
Field Name |
Description |
Type |
Example |
001 |
role_id |
Id of the role |
STRING |
E.g. 4ffdc2c087ab11eba3b1000096fb74a6 |
002 |
obj_per_id |
Object permission id |
STRING |
|
002 |
user_login_id |
|
STRING |
E.g. PRIVOAL |
003 |
start_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
004 |
end_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
005 |
current_flag |
|
STRING |
E.g. YES |
Logging table in the staging - Data Set Object
# |
Field Name |
Description |
Type |
Example |
001 |
obj_per_id |
|
STRING |
E.g. 4ffdc2c087ab11eba3b1000096fb74a6 |
002 |
obj_name |
It's the name of the object we want to give access to, can be a dashboar, can be an excel file, access to a table etc… |
STRING |
E.g. BatMat_PTF_ViewAccess |
003 |
group_id |
Id of the group |
STRING |
E.g. |
004 |
start_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
005 |
end_date |
|
TIMESTAMP |
E.g. 2022-11-28 14:28:15 UTC |
006 |
current_flag |
|
STRING |
E.g. YES |
Logging table in the staging - Permission
# |
Field Name |
Description |
Type |
Example |
001 |
|
|
|
|
002 |
|
|
|
|
003 |
|
|
|
|
004 |
|
|
|
|
005 |
|
|
|
|
Logging table in the staging - Object
# |
Field Name |
Description |
Type |
Example |
001 |
|
|
|
|
002 |
|
|
|
|
003 |
|
|
|
|
004 |
|
|
|
|
005 |
|
|
|
|
Logging table in the staging - Object Type
# |
Field Name |
Description |
Type |
Example |
001 |
|
|
|
|
002 |
|
|
|
|
003 |
|
|
|
|
004 |
|
|
|
|
005 |
|
|
|
|
Logging table in the staging - Data Set Object values
# |
Field Name |
Description |
Type |
Example |
001 |
|
|
|
|
002 |
|
|
|
|
003 |
|
|
|
|
004 |
|
|
|
|
005 |
|
|
|
|
006 |
|
|
|
|