US7200595B2

Systems and methods for fine grained access control of data stored in relational databases

Summary by NHIP

Row-level database access control

The system stores security descriptors within a dedicated column of database tables to enforce granular row access. A query optimizer evaluates user security context against these descriptors to determine which rows satisfy the granted or denied permissions.

Claim Score by NHIP

Read claim 13, the broadest

Abstract

A system and method for facilitating secure access to database(s) is provided. The system relates to authorizing discriminatory access to relational database data. More particularly, the invention provides for an innovative technique of defining secured access to rows in relational database tables in a way that cannot be spoofed while preserving various optimization techniques. The invention affords a persistent scheme via providing for a security architecture whereby discriminatory access policies on persistent entities can be defined and enforced while preserving set based associative query capabilities. A particular aspect of the invention relates to the specification of such policies and the technique by which those policies are enforced. With respect to one particular implementation of the invention, creation, modification and deletion of access control lists called security descriptors is provided. The security descriptors can be provisioned independent of rows in tables of the database and can be shared and embody the policy on what permissions are granted to whom when associated with a row.

US7200595B2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Expired 21 December 2024, 1.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

17 claims: 3 independent, 14 dependent

  1. 1
    A computer-implemented system that facilitates secure access to a database, comprising:a security descriptor store component that stores security descriptors which embody security information associated with at least one row of the database, the database comprising at least one table having the at least one row and at least two columns, one of the at least two columns storing a security descriptor associated with the at least one row, the security descriptor identifying security information stored in the security descriptor store component associated with the at least one row, where security descriptor column is included in all access paths to the at least one table, and where the security information stored in the security descriptor comprising a kind of access is granted or denied;a database engine component provides a response to a query of the database, the response being based, at least in part, upon the security information stored in the security descriptor that is evaluated based upon information stored in the database and security context information of a user issuing the query, the response further comprising rows from the table if the rows are satisfied by the user security context information;a query component comprising a query optimizer determines an optimal way to answer the query and employs a cost-based optimization strategy;and a user session memory cache stores a computed result of whether a given security context has a given permission with respect to a particular security descriptor.
  2. 13
    Broadest claimClaim Score 34, narrow(NHIP)A method of securely accessing data stored in a database comprising:creating a security descriptor store associated with at least one table;populating at least one row of the at least one table with a security descriptor identifier;storing security descriptors in the security descriptor store, where the security descriptors embody security information associated with the at least one row of the at least one table of the database, the database comprising the at least one table having the at least one row and at least two columns, one of the at least two columns storing a security descriptor associated with the at least one row, the security descriptor identifier identifying security information stored in the security descriptor store associated with the at least one row, where security descriptor column is included in all access paths to the at least one table, and where the security information stored in the security descriptor comprising a kind of access is granted or denied;receiving a query and user security context information;providing a response to the query of the database, theresponse being based, at least in part, upon the security information stored in the security descriptor that is valuated based upon information stored in the database and the security context information of the user issuing the query, the response further comprising rows from the table if the rows are satisfied by the user security context information;optimizing the query prior to the response being provided via a query optimizer that employs a cost-based optimization strategy;and storing a computed result of whether a given security context has a given permission with respect to a particular security descriptor.
  3. 16
    A method facilitating a secure access to a database comprising:creating a security descriptor store associated with at least one table;populating at least one row of the at least one table with a security descriptor identifier;storing security descriptors in the security descriptor store, where the security descriptors embody security information associated with the at least one row of the at least one table of the database, the database comprising the at least one table having the at least one row and at least two columns, one of the at least two columns storing a security descriptor associated with the at least one row, the security descriptor identifier identifying security information stored in the security descriptor store associated with the at least one row, where security descriptor column is included in all access paths to the at least one table, where the security information stored in the security descriptor comprising a kind of access is granted or denied, and where the security information further is stored physically with every partially or fully redundant copy of the at least one row;receiving a query and user security context information;providing a response to the query of the database, the response being based, at least in part, upon the security information stored in the security descriptor that is valuated based upon information stored in the database and the security context information of the user issuing the query, the response further comprising rows from the table if the rows are satisfied by the user security context information;optimizing the query prior to the response being provided via a query optimizer that employs a cost-based optimization strategy;and storing a computed result of whether a given security context has a given permission with respect to a particular security descriptor.