Row-level security in a relational database management system
AssigneeInternational Business Machines Corporation
InventorsCurt Cotner, Roger Lee Miller
Life of this patent
Estimating the term…
Abstract
An access control system provides multilevel and mandatory access control for a database management system. The access control systems provide access control at the row level in a relational database table. The database table contains a security label column within which is recorded a security label that is defined within a hierarchical security scheme. A user's security label is encoded with security information concerning the user. When a user requests access to a row, a security mechanism compares the user's security information with the security information in the row. If the user's security dominates the row's security, the user is given access to the row.
Claims18
An apparatus for use within a database management system having a data manager and a database, for determining whether a user is authorized to perform a requested operation on a row of data held within the database, the user being associated with a user security label and the row having a row security label, the apparatus comprising:
- a user security unit having recorded therein a hierarchy of security labels;
- a read security unit connected to the user security unit and between the data manager and the database, and configured to return the row from the database to the data manager only if the user security label is located in the hierarchy at a level with privileges that are greater than or equal to privileges for a level in the hierarchy at which the row security label is located.
A program product embodied on a computer readable medium, for controlling access to a relational database, comprising program instructions which when executed cause a computer to:
- receive a user request for data from the database, the request including a request to perform a database operation and a user security label;
- determine user security information from the user security label;
- retrieve, in response to the user request, rows of data from a table in the database satisfying the database operation, the rows each having a security label;
- determine row security information for each of the retrieved rows based on the row's security label;
- determine, for each retrieved row, whether the user is authorized to access the row based on the user security information and the row security information by determining if the user security information dominates the row security information;
- and
- return only the rows for which the user is determined to have authorization to access.
Dependencies are inferred from the claim text.