Dynamic Row-Level Security via Expression Data Type

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional row-level security systems using static labels are limited in dynamically responding to changing situations and handling complex security considerations, as they require predefined relationships between users and data, leading to imperfect knowledge of security policies and difficulty in handling a wide spectrum of access policies.

Innovation Solution

The implementation of an expression data type in database systems, such as Oracle's EXPRESSION data type, allows for dynamic row-level access control through a conditional expression that evaluates user and environment attributes, enabling unique access policies for each row and supporting complex security by using SQL operators and user-defined functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If static labels are used for row-level security, then security control is simplified and easier to implement, but the system cannot dynamically respond to changing situations and complex security considerations

Engineering Contradiction:
Improveease of security implementationVSAvoiddynamic security response capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent applies the Dynamics principle by transitioning from static labels to dynamic expressions for row-level security. Expressions can be evaluated at access time to determine security decisions, allowing the system to adapt to changing situations and complex security considerations while maintaining ease of implementation through the expression framework.

Inventive Principle:
Principle #15Dynamics

2Ease of manufacture

If predefined relationships between users and data are required, then security policy definition is simplified, but the system cannot handle a wide spectrum of access policies

Engineering Contradiction:
Improveease of security policy definitionVSAvoidaccess policy spectrum coverage
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent applies the Parameter changes principle by allowing expressions to reference multiple user attributes, data attributes, and environment attributes. This enables the system to handle a wide spectrum of access policies by changing the parameters being evaluated from fixed labels to flexible expression-based assessments of multiple attributes.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If static labels are used to control row access, then security control is straightforward, but complex security considerations and changing situations cannot be addressed

Engineering Contradiction:
Improvesecurity control simplicityVSAvoidhandling complex security scenarios
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent applies the Intermediary principle by introducing expressions as an intermediary layer between the database system and security policies. Expressions serve as a flexible mediator that can incorporate complex logic, multiple attributes, and dynamic evaluations while maintaining a relatively simple implementation framework through the expression evaluation mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8566909B2Row-level security with expression data type
Publication Date: 2013.10.22 ORACLE INT CORP
  • US8566909B2 patent drawing
  • US8566909B2 patent drawing
  • US8566909B2 patent drawing

AI summary

Systems, methods, and other embodiments associated with row level security for a database table are described. One example method includes detecting an access statement seeking access to a row in a database table for which row level security is active. The method includes adding a predicate to the access statement. The predicate is based on an access control expression associated with the row. The access control expression depends on an instance of an expression data type associated with the row. The method includes populating an attribute of the predicate, and controlling access to the row based on a computed value for the predicate.