IP Library Granted Patent US 8,027,993
Granted Patent B2
US 8,027,993 · App. 11/646,654 · Granted Sep 27, 2011

Techniques for establishing and enforcing row level database security

Assignee: Teradota US, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,027,993
App. No.
11/646,654
Granted
Sep 27, 2011
Kind
B2
Abstract

Techniques for establishing and enforcing row level database security are presented. Qualifiers are used to uniquely identify particular rows of a database table. The qualifiers are selectively combined to generate a hash value. The hash value is associated with a user. The user is permitted to accesses selective rows of the database table in response to the rows represented in the hash value, which is associated with the user.

Claims (20)

1. A method, comprising:

detecting an access attempt against a table of a database made by a user, the table includes row level security;

acquiring a key that is associated with the user for the table, the key is a signature not specifically tied to any user including the user and the key is usable by other users the key is a hash value for identifying a particular combination of rows in the table for which access is being granted;

acquiring qualifiers for a number of rows of the table via a column associated with the table having the qualifiers;

reproducing the key using a selective combination of unique qualifier types; and

identifying the selective rows from the selective combination of the unique qualifier types used to reproduce the key; and

restricting the user's access to selective rows of the table in response to the key, the particular combination of rows identifies the selective rows, and the key provides the user and the other users having the key with access to the specific rows within the table.

2. The method of claim 1 , wherein reproducing further includes acquiring the selective combination of the unique qualifier types from a key table indexed via the key, wherein an entry into the key table includes each of the unique qualifier types that comprise the selective combination.

3. The method of claim 1 , wherein acquiring further includes searching a data access table using an identifier associated with the user and using a table identifier associated with the table, which the user is attempting to access, in order to acquire the key.

4. The method of claim 1 , wherein restricting further includes removing rows, which are not part of the selective rows, from each view of the table presented to the user.

5. The method of claim 1 , wherein detecting further includes authenticating the user for access to the database before detecting the access attempt.

6. The method of claim 1 , wherein detecting further includes identifying the row level security as a security attribute of the table.

7. A system comprising:

a data access table residing in a database and accessible from a non-transitory machine-readable medium, the data access table includes a plurality of entries, and each entry having a user identifier and a key value;

row level security service accessible in the machine-readable medium and to be processed by a machine, the row level security service is to access the data access table to determine when a particular row of a particular user table is accessible and viewable by a particular user in response to a particular key value noted in the data access table for a particular user identifier, the key value is a hash value that defines specific combination of rows for a specific table of the database for which access is permissible when the particular user or other users are associated with the key value and the key value represented as a signature that is independent of any user including the particular user and can be used and associated with the other users; and

a key table residing in the database and accessible from the non-transitory machine-readable medium, wherein the key table includes a plurality of entries and each entry includes a selective combination of qualifier types, wherein each qualifier type identifies a particular row of a particular table, wherein the row level security service is to use the key table to identify selective rows of the particular user table that are viewable and accessible by the particular user.

8. The system of claim 7 further comprising, a data access population service accessible from the machine-readable medium and to be processed by the machine, wherein the data access population service is to populate the entries of the data access table in response to row level security defined for users and tables of the database that support row level security.

9. The system of claim 7 , wherein the row level security service is to dynamically acquire columns defining row qualifier types for user tables and combine selective qualifier types together to regenerate key values that can be compared to key values housed in the entries of the data access table.

10. The system of claim 9 , wherein the row level security service is to identify each row qualifier type as a unique prime number.

11. The system of claim 10 , wherein the row level security service is to multiply each unique prime number associated with the selective qualifier types together in order to regenerate the key values.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2008
From: NCR CORPORATION
To: TERADATA US, INC.
Reel/Frame 020666/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2007
From: HOLMES, DAVID; CHRISTOPH, GARY
To: NCR CORPORATION
Reel/Frame 018971/0722 →
Continuity (1)
Related Publication 20080162402A1 · Jul 3, 2008