Differentially private database permissions system
First Claim
1. A method of providing differentially private database security, comprising:
- receiving a request from a client to perform a query on data stored in a database;
establishing a set of permissions granted to the client with respect to the data in the database, wherein the set of permissions comprises a private compute permission granting permission to perform differentially private operations on specified data in the database;
deconstructing the query into query components, wherein the query components comprise at least one relation identifying a dataset in the database and at least one expression specifying an operation to be performed in the identified dataset;
identifying permissions necessary to perform the specified operation on the identified dataset, wherein the identified permissions comprise the private compute permission and the identified dataset comprises the specified data;
determining whether the established set of permissions granted to the client includes the identified permissions necessary to perform the specified operation on the identified dataset using a set of mutually recursive functions to check whether the established set of permissions granted to the client includes the identified permissions necessary to perform expressions on relations indicated by the deconstructed query components; and
selectively executing the query responsive to the determination.
2 Assignments
0 Petitions
Accused Products
Abstract
A differentially private system receives a request from a client to perform a query on data stored in a database. The differentially private system establishes a set of permissions of the client with respect to the data in the database. The differentially private system deconstructs the query into query components. The query components include at least one relation that identifies a dataset in the database and at least one expressions specifying an operation to be performed in the identified dataset. The differentially private system identifies permissions necessary to perform the specified operation on the identified dataset. The differentially private system determines whether the established permissions grants of the client include the identified permissions necessary to perform the specified operation on the identified dataset. The differentially private system selectively executes the query responsive to the determination.
-
Citations
18 Claims
-
1. A method of providing differentially private database security, comprising:
-
receiving a request from a client to perform a query on data stored in a database; establishing a set of permissions granted to the client with respect to the data in the database, wherein the set of permissions comprises a private compute permission granting permission to perform differentially private operations on specified data in the database; deconstructing the query into query components, wherein the query components comprise at least one relation identifying a dataset in the database and at least one expression specifying an operation to be performed in the identified dataset; identifying permissions necessary to perform the specified operation on the identified dataset, wherein the identified permissions comprise the private compute permission and the identified dataset comprises the specified data; determining whether the established set of permissions granted to the client includes the identified permissions necessary to perform the specified operation on the identified dataset using a set of mutually recursive functions to check whether the established set of permissions granted to the client includes the identified permissions necessary to perform expressions on relations indicated by the deconstructed query components; and selectively executing the query responsive to the determination. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium storing computer program instructions executable by a processor to perform operations, the operations comprising:
-
receiving a request from a client to perform a query on data stored in a database; establishing a set of permissions granted to the client with respect to the data in the database, wherein the set of permissions comprises a private compute permission granting permission to perform differentially private operations on specified data in the database; deconstructing the query into query components, wherein the query components comprise at least one relation identifying a dataset in the database and at least one expression specifying an operation to be performed in the identified dataset; identifying permissions necessary to perform the specified operation on the identified dataset, wherein the identified permissions comprise the private compute permission and the identified dataset comprises the specified data; determining whether the established set of permissions granted to the client includes the identified permissions necessary to perform the specified operation on the identified dataset using a set of mutually recursive functions to check whether the established set of permissions granted to the client includes the identified permissions necessary to perform expressions on relations indicated by the deconstructed query components; and selectively executing the query responsive to the determination. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a processor for executing computer program instructions; and a non-transitory computer-readable storage medium storing computer program instructions executable by the processor to perform operations, the operations comprising; receiving a request from a client to perform a query on data stored in a database; establishing a set of permissions granted to the client with respect to the data in the database, wherein the set of permissions comprises a private compute permission granting permission to perform differentially private operations on specified data in the database; deconstructing the query into query components, wherein the query components comprise at least one relation identifying a dataset in the database and at least one expression specifying an operation to be performed in the identified dataset; identifying permissions necessary to perform the specified operation on the identified dataset, wherein the identified permissions comprise the private compute permission and the identified dataset comprises the specified data; determining whether the established set of permissions granted to the client include the identified permissions necessary to perform the specified operation on the identified dataset using a set of mutually recursive functions to check whether the established set of permissions granted to the client includes the identified permissions necessary to perform expressions on relations indicated by the deconstructed query components; and selectively executing the query responsive to the determination. - View Dependent Claims (15, 16, 17, 18)
-
Specification