| Oracle DBMS_RLS Version 11.2.0.3 |
|---|
| General Information | |||||||||||||||||||||||||||||||||||||
| Note | Note: The functionality supporting FGA is based on dynamic predicates acquired at statement parse time, when the base table or view is referenced in a DML statement. | ||||||||||||||||||||||||||||||||||||
| AUTHID | DEFINER | ||||||||||||||||||||||||||||||||||||
| Constants |
|
||||||||||||||||||||||||||||||||||||
| Default Policy Group | SYS_DEFAULT | ||||||||||||||||||||||||||||||||||||
| Dependencies |
|
||||||||||||||||||||||||||||||||||||
| First Available | 8.1.5 | ||||||||||||||||||||||||||||||||||||
| Related System Privileges | create any context create policy group drop any context exempt access policy (not subject to SYS_DEFAULT policies) |
||||||||||||||||||||||||||||||||||||
| GRANT create any context TO uwclass; GRANT create any policy TO uwclass; GRANT drop any context TO uwclass; GRANT execute ON dbms_rls TO uwclass; |
|||||||||||||||||||||||||||||||||||||
| Security Model | Owned by SYS EXECUTE is granted to EXECUTE_CATALOG_ROLE, WMSYS, XDB, and APEX_030200 | ||||||||||||||||||||||||||||||||||||
| Source | {ORACLE_HOME}/rdbms/admin/dbmsrlsa.sql | ||||||||||||||||||||||||||||||||||||
| Subprograms | |||||||||||||||||||||||||||||||||||||
| ADD_GROUPED_POLICY | |||||||||||||||||||||||||||||||||||||
| Add a row level security policy to a policy group for a table or view | dbms_rls.add_grouped_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_group IN VARCHAR2 := 'SYS_DEFAULT', policy_name IN VARCHAR2, function_schema IN VARCHAR2 := NULL, policy_function IN VARCHAR2, statement_types IN VARCHAR2 := NULL, update_check IN BOOLEAN := FALSE, enable IN BOOLEAN := TRUE, static_policy IN BOOLEAN := FALSE, policy_type IN BINARY_INTEGER := NULL, long_predicate IN BOOLEAN := FALSE, sec_relevant_cols IN VARCHAR2 := NULL, sec_relevant_cols_opt IN BINARY_INTEGER := NULL); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| ADD_POLICY | |||||||||||||||||||||||||||||||||||||
| Add a row level security policy to a table or view | dbms_rls.add_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_name IN VARCHAR2, function_schema IN VARCHAR2 := NULL, policy_function IN VARCHAR2, statement_types IN VARCHAR2 := NULL, update_check IN BOOLEAN := FALSE, enable IN BOOLEAN := TRUE, static_policy IN BOOLEAN := FALSE, policy_type IN BINARY_INTEGER := NULL, long_predicate IN BOOLEAN := FALSE, sec_relevant_cols IN VARCHAR2 := NULL, sec_relevant_cols_opt IN BINARY_INTEGER := NULL); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| ADD_POLICY_CONTEXT | |||||||||||||||||||||||||||||||||||||
| Add a driving context to a table or view | dbms_rls.add_policy_context( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, namespace IN VARCHAR2, attribute IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| TBD | |||||||||||||||||||||||||||||||||||||
| CREATE_POLICY_GROUP | |||||||||||||||||||||||||||||||||||||
| Create a policy group for a table or view | dbms_rls.create_policy_group( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_group IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| DELETE_POLICY_GROUP | |||||||||||||||||||||||||||||||||||||
| Delete a policy group for a table or view | dbms_rls.delete_policy_group( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_group IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| TBD | |||||||||||||||||||||||||||||||||||||
| DISABLE_GROUPED_POLICY | |||||||||||||||||||||||||||||||||||||
| Enable or disable a policy for a table or view | dbms_rls.disable_grouped_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, group_name IN VARCHAR2, policy_name IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| DROP_GROUPED_POLICY | |||||||||||||||||||||||||||||||||||||
| Drop a row level security policy from a policy group of a table or view | dbms_rls.drop_grouped_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_group IN VARCHAR2 := 'SYS_DEFAULT', policy_name IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| DROP_POLICY | |||||||||||||||||||||||||||||||||||||
| Drop a row level security policy from a table or view | dbms_rls.drop_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_name IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| DROP_POLICY_CONTEXT | |||||||||||||||||||||||||||||||||||||
| Drop a driving context from a table or view | dbms_rls.drop_policy_context( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, namespace IN VARCHAR2, attribute IN VARCHAR2); |
||||||||||||||||||||||||||||||||||||
| TBD | |||||||||||||||||||||||||||||||||||||
| ENABLE_GROUPED_POLICY | |||||||||||||||||||||||||||||||||||||
| Enable or disable a policy for a table or view | dbms_rls.enable_grouped_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, group_name IN VARCHAR2, policy_name IN VARCHAR2, enable IN BOOLEAN := TRUE); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| ENABLE_POLICY | |||||||||||||||||||||||||||||||||||||
| Enable or disable a security policy for a table or view | dbms_rls.enable_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, policy_name IN VARCHAR2, enable IN BOOLEAN := TRUE); |
||||||||||||||||||||||||||||||||||||
| See FGAC Demo: Link at page bottom | |||||||||||||||||||||||||||||||||||||
| REFRESH_GROUPED_POLICY | |||||||||||||||||||||||||||||||||||||
| Invalidate all cursors associated with the policy if no argument provides, all cursors with policies involved will be invalidated | dbms_rls.refresh_grouped_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2 := NULL, group_name IN VARCHAR2 := NULL, policy_name IN VARCHAR2 := NULL); |
||||||||||||||||||||||||||||||||||||
| TBD | |||||||||||||||||||||||||||||||||||||
| REFRESH_POLICY | |||||||||||||||||||||||||||||||||||||
| Invalidate all cursors associated with the policy. If no argument provides, all cursors with policies involved will be invalidated | dbms_rls.refresh_policy( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2 := NULL, policy_name IN VARCHAR2 := NULL); |
||||||||||||||||||||||||||||||||||||
| TBD | |||||||||||||||||||||||||||||||||||||
| Related Queries | |||||||||||||||||||||||||||||||||||||
| Find all objects with policies and the functions enforcing them | SELECT object_owner, object_name, package_name, policy_name FROM dba_policies ORDER BY 1,2; SELECT pfname, obj#, pfschema FROM sys.rls$ WHERE enable_flag = 1 ORDER BY 1; |
||||||||||||||||||||||||||||||||||||
| Examine VPD policies in memory | SELECT DISTINCT object_owner, object_name, predicate FROM sys.v$vpd_policy WHERE predicate IS NOT NULL ORDER BY 1,2; |
||||||||||||||||||||||||||||||||||||
| Sample Function | |||||||||||||||||||||||||||||||||||||
| This function limits data access by adding a qualifying predicate. If the user executing the SQL is UWCLASS nothing is appended: Otherwise no rows will be returned because 1 will never equal 0. |
CREATE OR REPLACE FUNCTION vpd_sec(p_owner IN VARCHAR2, p_name IN VARCHAR2) AUTHID DEFINER RETURN VARCHAR2 IS BEGIN IF sys_context('userenv', 'session_user') IN ('UWCLASS') THEN RETURN NULL; ELSE RETURN '1=0'; END IF; END vpd_sec; / |
||||||||||||||||||||||||||||||||||||
| Related Topics |
| Fine Grained Access Control Demo |
| Object Privileges |
| Roles |
| System Privileges |
| SYS_CONTEXT |
| This site is maintained by Dan Morgan. Last Updated: | This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2013 Daniel A. Morgan All Rights Reserved | |||||||||
|
|
||||||||||