# US 2017/0364555 A1 · Method and system for enforcing user policy on database records

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0364555 A1
- Document ID: US20170364555A1
- Status: Published application
- Kind: A1
- Application number: 15/629,404
- Filed: 2017-06-21
- Published: 2017-12-21
- Earliest claimed: 2016-06-21
- Assignees: Tata Consultancy Services Limited
- Applicants: Tata Consultancy Services Limited
- Inventors: Gangadhara Reddy SIRIGIREDDY; Kumar Mansukhlal VIDHANI; Akhil Anand DIXIT; Vijayanand Mahadeo BANAHATTI; Sachin Premsukh LODHA
- Web page: https://patentgrep.com/patent/US20170364555A1

## CPC

- G06F 16/24534: {Query rewriting; Transformation}
- G06F 16/24553: {of query operations}
- G06F 16/2457: with adaptation to user needs
- G06F 16/24575: {using context}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method are provided for enforcing user policies on database. In one aspect a user policy and/or enterprise policy is predefined and mapped to the column of the database. Further, the query is run through a query parsing module, the result is sent to a query analyzing module to analyze the sensitivity of each query. A query rewriting module rewrites the query and the rewritten query is sent to the database. A sensitive tree is generated using database metadata, which is used during query analysis and query re-writing. In cases the original query does not contain any set operators the rewritten query is executed on the database and results are displayed as per the user policy. The cases where the original query comprises set operators a function called merger is implemented in the database or at the proxy server and data is displayed as per the user policy.

## Claims

### Claim 1

A system for enforcing user policy to control access of sensitive data stored in a database, wherein the system comprising:
a processor;
a memory coupled to the processor, wherein the processor is capable of executing a plurality of modules stored in the memory;
a receiving module configured to receive a query to retrieve data stored in the database;
a query parsing module configured to parse the received query;
a sensitive tree generator module configured to generate a sensitive tree from metadata of the database;
a query analyzing module configured to analyze the sensitivity of the parsed query using the sensitive tree;
a preference manager module configured to manage the preferences of one or more data subjects, wherein the one or more data subjects are present in the database, wherein the preferences are set on sensitive fields of the database;
a query re-writing module configured to re-write the received query using the sensitive tree and send the rewritten query to the database, and
a preference enforcement module configured to notify data subjects according to the preferences to protect sensitive data stored in database.

### Claim 2 (depends on 1)

The system claimed in claim 1, wherein the sensitive tree generator module takes privacy preferences as input to determine the sensitivity of fields of the database which may be subsequently used in marking tree nodes.

### Claim 3 (depends on 1)

The system claimed in claim 1, wherein the user policy is mapped to the column(s) of the database.

### Claim 4 (depends on 1)

The system claimed in claim 1, wherein the sensitive tree is generated using database metadata.

### Claim 5 (depends on 1)

The system claimed in claim 1, wherein the system is configured to have merger function to resolve the query with set operators.

### Claim 6

A method for enforcing user policy to control access of sensitive data stored in a database, wherein the method comprising one or more steps of:
receiving a query to retrieve data stored in the database using a receiving module;
parsing the received query using a query parsing module;
generating a sensitive tree from metadata of the database using a sensitive tree generator module;
analyzing sensitivity of the parsed query using sensitive tree by a query analyzing module;
re-writing the received query using the sensitive tree by are-writing module;
managing one or more preferences of one or more data subjects using a preference manager module, wherein the one or more preferences are set on the sensitive fields of the database; and
enforcing one or more preferences related to the sensitive data using a preference enforcement module, wherein the preference enforcement module is configured to notify data subjects according to the preference document to protect sensitive data stored in database.

### Claim 7 (depends on 6)

The method claimed in claim 6, wherein the query comprises one or more sub-queries.

### Claim 8 (depends on 6)

The method claimed in claim 6, wherein the one or more preferences are access preferences.

### Claim 9 (depends on 6)

The method claimed in claim 6, wherein the preference policy is mapped to the column(s) of the database.

### Claim 10 (depends on 6)

The method claimed in claim 6, wherein the sensitive tree is generated using database metadata.

### Claim 11 (depends on 6)

The method claimed in claim 6, wherein the merger function to resolve the query with set operators.

### Claim 12

A computer readable medium storing instructions for enforcing user policy to control access of sensitive data stored in a database, the instructions comprise:
receiving a query to retrieve data stored in the database using a receiving module;
parsing the received query using a query parsing module;
generating a sensitive tree from metadata of the database using a sensitive tree generator module;
analyzing sensitivity of the parsed query using sensitive tree by a query analyzing module;
re-writing the received query using the sensitive tree by are-writing module;
managing one or more preferences of one or more data subjects using a preference manager module, wherein the one or more preferences are set on the sensitive fields of the database; and
enforcing one or more preferences related to the sensitive data using a preference enforcement module, wherein the preference enforcement module is configured to notify data subjects according to the preference document to protect sensitive data stored in database.
