...
Generally Available | Confidential | Restricted |
All data access roles (not public) | Dean/Division Leader Role | Reporting and Compliance Roles (University-wide access as needed) Others must provide justification for use |
Identified data | Reporting and Compliance Roles (University-wide access) | |
•Name •Title (fac/staff) / Level (students) •HR Title (fac/staff) •Department / Program •Supervisor •Campus •Pronouns (user provided) •Email address •Affiliations (faculty/staff/student/...) •Classification (temp, post doc, RA, staff/grade, faculty) | •Compensation •Course registrations •Age range (..., 25-35, 36-45, …) •Financial transaction data •Leave/return dates •Service dates •Space assignments •Grant proposals and awards •Enrollment status •Home address •Local address •Alum/donor name/contact info •Citizenship | •Race/ethnicity •Gender identity •Religion •PHI •Marital status •Date of birth •Benefit selections •Admissions decisions (before release) •Grades •Alum/donor gift history •Social security number •Driver’s license number •Passport number |
Tags, policies and policies roles have been added for Confidential and Restricted in the dev environment for testing. Ultimately, roles will exist in Grouper where their membership can be managed.
Confidential
...
Confidential policy VQL
Code Block |
---|
CREATE OR REPLACE GLOBAL_SECURITY_POLICY mask_confidential_columns DESCRIPTION = 'Masks all columns with the confidential tag for non-admins without the confidential role' ENABLED = TRUE AUDIENCE ( NOT_IN ROLES (confidential, "grp_ds_denodo-admin") ) ELEMENTS ( ALL VIEWS ) RESTRICTION ( FILTER = '' MASKING ANY (confidential) WITH (HIDE) (numbers WITH DEFAULT, datetimes WITH DEFAULT, texts WITH DEFAULT) ); |
Restricted
...
Restricted policy VQL
Code Block |
---|
CREATE OR REPLACE GLOBAL_SECURITY_POLICY mask_restricted_columns DESCRIPTION = 'Masks all columns that have the restricted tag for non-admins without the restricted role.' ENABLED = TRUE AUDIENCE ( NOT_IN ROLES ("grp_ds_denodo-admin", restricted) ) ELEMENTS ( ALL VIEWS ) RESTRICTION ( FILTER = '' MASKING ANY (restricted) WITH (HIDE) (numbers WITH DEFAULT, datetimes WITH DEFAULT, texts WITH DEFAULT) ); |
...
Code Block |
---|
select * from test.security_test context('impersonate_roles' = 'general'); |
...
Confidential
Code Block |
---|
select * from test.security_test context('impersonate_roles' = 'confidential'); |
...
Restricted
Note that the confidential role has been added to restricted so it can satisfy any confidential policy restriction as well
Code Block |
---|
select * from test.security_test context('impersonate_roles' = 'restricted'); |
...
Row-level Security
Work in progress…