Analyzing access control configurations
US-2015143525-A1 · May 21, 2015 · US
US10592471B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10592471-B2 |
| Application number | US-201514948847-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 23, 2015 |
| Priority date | Nov 23, 2015 |
| Publication date | Mar 17, 2020 |
| Grant date | Mar 17, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer-implemented method of a database statement for a relational database. The database comprises one or more tables comprising one or more data rows. A database statement is received. A set of predicates from the database statement and a set of data rows from the tables to use to generate the result of the database statement are determined. A set of interdiction statements applicable to one or more data rows is obtained. For each predicate, a set of masks applicable to one or more data rows is obtained, where for each mask, the data masked by the mask is used by the predicate. It is determined if a data row has an applicable interdiction statement, and contains data masked by a mask. If so, the result of the database statement without using the result of applying the predicate to the data row.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method of processing a database statement for a relational database, wherein the database comprises one or more tables, each table comprising one or more columns and one or more data rows, the method comprising the steps of: receiving a database statement; determining a set of predicates from the database statement to use to generate the result of the database statement; determining a set of data rows from the one or more tables to use to generate the result of the database statement; obtaining a set of interdiction statements, wherein each interdiction statement defines one or more types of database statements to which the interdiction statement applies and defines at least one column of a database table to which the interdiction statement applies, and wherein at least one interdiction statement in the set of interdiction statements defines fewer than all types of database statements; for each predicate of the set of predicates: obtaining a set of masks applicable to one or more data rows of the set of data rows, wherein for each mask of the set of masks, at least a portion of the data used by the predicate is masked; determining whether a data row of the set of data rows has an applicable interdiction statement, by examining whether the data row contains a column and a type of database statement that are both defined in one of the interdiction statements in the set of interdiction statements; determining whether the data row contains data masked by a mask of the set of masks; and in the case that the data row has an applicable interdiction statement, and contains data masked by a mask of the set of masks, determining the result of the database statement without using the result of applying the predicate to the data row. 2. A computer-implemented method as claimed in claim 1 , wherein the result of the database statement is determined without using the result of applying the predicate to the data row, by: removing the data row from the set of data rows; and applying the set of predicates to the modified set of data rows. 3. A computer-implemented method as claimed in claim 1 , wherein the result of the database statement is determined without using the result of applying the predicate to the data row, by: removing the predicate from the set of predicates; and applying the modified set of predicates to the set of data rows. 4. A computer-implemented method as claimed in claim 1 , wherein each interdiction statement of the set of interdiction statement defines whether the result of the database statement is determined without using the result of applying the predicate to the data row, by performing one of: removing the data row from the set of data rows; and removing the predicate from the set of predicates. 5. A computer-implemented method as claimed in claim 1 , wherein in the step of determining whether a data row of the set of data rows has an applicable interdiction statement, and contains data masked by a mask of the set of masks, an interdiction statement is determined to be applicable only if the interdiction statement applies to a column of a table, the data of which is masked by the mask. 6. A database system comprising: a database engine comprising a processor and a memory, wherein the database engine is arranged to receive database statements from a client device; at least one database in communication with the database engine, the at least one database comprising one or more database tables, each table comprising one or more data rows; wherein the processor and memory in the database engine are arranged, on receiving a database statement from the client device, to: determine a set of predicates from the database statement to use to generate the result of the database statement; determine a set of data rows from the one or more tables to use to generate the result of the database statement; obtain a set of interdiction statements, wherein each interdiction statement defines one or more types of database statements to which the interdiction statement applies and defines at least one column of a database table to which the interdiction statement applies, and wherein at least one interdiction statement in the set of interdiction statements defines fewer than all types of database statements; for each predicate of the set of predicates: obtain a set of masks applicable to one or more data rows of the set of data rows, wherein for each mask of the set of masks, at least a portion of the data used by the predicate is masked; determine whether a data row of the set of data rows has an applicable interdiction statement, by examining whether the data row contains a column and a type of database statement that are both defined in one of the interdiction statements in the set of interdiction statements; determine whether the data row contains data masked by a mask of the set of masks; and in the case that the data has an applicable interdiction statement, and contains data masked by a mask of the set of masks, determine the result of the database statement without using the result of applying the predicate to the data row; and return the determined result to the client device. 7. A database system as claimed in claim 6 , wherein the processor and memory in the database engine are arranged to determine the result of the database statement without using the result of applying the predicate to the data row, by: removing the data row from the set of data rows; and applying the set of predicates to the modified set of data rows. 8. A database system as claimed in claim 6 , wherein the processor and memory in the database engine are arranged to determine the result of the database statement without using the result of applying the predicate to the data row, by: removing the predicate from the set of predicates; and applying the modified set of predicates to the set of data rows. 9. A database system as claimed in claim 6 , wherein each interdiction statement of the set of interdiction statement defines whether the result of the database statement is determined without using the result of applying the predicate to the data row, by performing one of: removing the data row from the set of data rows; and removing the predicate from the set of predicates. 10. A database system as claimed in claim 6 , wherein the processor and memory in the database engine are arranged, when determining whether a data row of the set of data rows has an applicable interdiction statement, and contains data masked by a mask of the set of masks, to determine that an interdiction statement is applicable only if the interdiction statement applies to a column of a table, the data of which is masked by the mask. 11. A computer program product for processing a database statement for a relational database, wherein the database comprises one or more tables, each table comprising one or more data rows, the computer program product comprising a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform the steps of: receiving a database statement; determining a set of predicates from the database statement to use to generate the result of the database statement; determining a set of data rows from the one or more tables to use to generate the result of the database statement; obtaining a set of interdiction statements, wherein each interdiction statement defines one or more types of database statements to which the interdiction statement applies and defines at least one column of a database table to which the interdiction statement applies, and wherei
Applying rules; Deductive queries · CPC title
Relational databases · CPC title
Delete operations (erasing in storage systems G06F3/0652) · CPC title
Optimisation of common expressions · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.