IP Library Granted Patent US 8,316,051
Granted Patent B1
US 8,316,051 · App. 10/006,543 · Granted Nov 20, 2012

Techniques for adding multiple security policies to a database system

Assignee: Oralce International Corporation
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,316,051
App. No.
10/006,543
Granted
Nov 20, 2012
Kind
B1
Abstract

Techniques for managing access to data in a database allow several policies to be applied simultaneously to the same row in a database table, and provide a pluggable module in the form of the database package that allows one or more access control security policies to be added to a common database server without taking the database server off line. Techniques include registering one or more packages of routines with a database management system. An access mediation routine in a first package is invoked for determining whether to allow operation on data in a first table associated with a first policy. Other techniques include, for each operation in an operation set, determining whether to perform the operation on a row of the table based on a set of labels associated with the row. The set of labels correspond to a policy set associated with the table.

Claims (23)

1. A method for managing access to data in a database subject to a plurality of label-based security policies, the method comprising the steps of:

receiving, a request for performing an operation set of one or more operations on data in a table of the database;

determining which policies, of the plurality of label-based security policies, apply to the table based on a policy set of one or more policies associated with the table;

for each operation in the operation set, determining whether to perform the operation on a row of the table based on a set of labels associated with the row, the set of labels corresponding to the policy set;

adding, to the table, a first policy column that stores labels for a first policy of the policy set that has a first policy type that is selected from the group consisting of: (a) a compartmented policy type in which a label associated with a particular row must exactly match a subject's label in order for the subject to gain access to the particular row, (b) a multi-level policy type in which a label associated with the particular row must be at a same or lower level of security than a level of security associated with the subject in order for the subject to gain access to the particular row, and (c) a hierarchical policy type in which a label associated with the particular row must be at a same level of security associated with the subject or at a lower level on a same branch of a hierarchy that contains the level of security associated with the subject in order for the subject to gain access to the particular row; and

adding, to the table, a second policy column that stores labels for a second policy of the policy set that has a second policy type that is selected from the group;

wherein the first policy type differs from the second policy type; and

wherein the method is executed by a database management system comprising one or more computer systems.

2. A method according to claim 1 , further comprising adding a policy column to the table for each policy in the policy set associated with the table.

3. A method according to claim 2 , further comprising storing a label, of the set of labels associated with the row, in a corresponding policy column of the row.

4. A method according to claim 2 , said step of determining which policies apply further comprising the step of determining whether a column is a policy column.

5. A method according to claim 1 , wherein the policy set associated with the table includes two or more policies of the plurality of label-based security policies.

6. A non-transitory computer-readable storage medium storing one or more sequences of instructions for managing access to data in a database subject to a plurality of label-based security policies, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:

receiving a request for performing an operation set of one or more operations on data in a table of the database;

determining which policies, of the plurality of label-based security policies, apply to the table based on a policy set of one or more policies associated with the table;

for each operation in the operation set, determining whether to perform the operation on a row of the table based on a set of labels associated with the row, the set of labels corresponding to the policy set;

adding, to the table, a first policy column that stores labels for a first policy of the policy set that has a first policy type that is selected from the group consisting of: (a) a compartmented policy type in which a label associated with a particular row must exactly match a subject's label in order for the subject to gain access to the particular row, (b) a multi-level policy type in which a label associated with the particular row must be at a same or lower level of security than a level of security associated with the subject in order for the subject to gain access to the particular row, and (c) a hierarchical policy type in which a label associated with the particular row must be at a same level of security associated with the subject or at a lower level on a same branch of a hierarchy that contains the level of security associated with the subject in order for the subject to gain access to the particular row;

adding, to the table, a second policy column that stores labels for a second policy of the policy set that has a second policy type that is selected from the group; and

wherein the first policy type differs from the second policy type.

7. The non-transitory computer-readable storage medium according to claim 1 , wherein execution of the one or more sequences of instructions further causes the one or more processors to perform the step of adding a policy column to the table for each policy in the policy set associated with the table.

8. The non-transitory computer-readable storage medium according to claim 7 , wherein execution of the one or more sequences of instructions further causes the one or more processors to perform the step of storing a label, of the set of labels associated with the row, in a corresponding policy column of the row.

9. The non-transitory computer-readable storage medium according to claim 7 , said step of determining which policies apply further comprising the step of determining whether a column is a policy column.

10. The non-transitory computer-readable storage medium according to claim 6 , wherein the policy set associated with the table includes two or more policies of the plurality of label-based security policies.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 013944/0938 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2001
From: BURNS, RAE K.; SACK, PATRICK F.; PESATI, VIKRAM REDDY
To: ORACLE CORPORATION
Reel/Frame 012360/0853 →