1. A computer-implemented system that facilitates fine-grained access control of a database, comprising: a processor configured to execute computer-readable instructions; a performance component for detecting and removing redundant authorizations associated with a query expression, the removing including: implementing a set of transformation rules, the transformation rules including: testing for semi-join subsumption and relation mapping; and given disjunction of query expression, transforming the expression into a disjunction of semi-joins, and testing for subsumption of each of the semi-joins; and initiating redundancy removal before applying decorrelation transformations; security component for controlling information leakage associated with the query expression, the security component configured to identify at least one unsafe function in the query expression and to determine an optimal safe location for the at least one unsafe function in an optimal query plan; and a safety component for maintaining safety of the query plan, the query plan including a relocation of the at least one unsafe function to a safe location determined in part by a safety analysis and in part by a cost-based analysis, the unsafe functions including user defined functions, system-defined functions, and operators that may reveal information whether directly or by means of exception or error messages, the maintaining including: parsing the query expression and determining base relations of the query expression; specifying authorizations based on predicated grants in the query expression; creating a regular view by combining a plurality of authorizations made to a user; and giving permission to the user on the regular view instead of underlying relations.
1. A computer-implemented system that facilitates fine-grained access control of a database, comprising: a processor configured to execute computer-readable instructions; a performance component for detecting and removing redundant authorizations associated with a query expression, the removing including: implementing a set of transformation rules, the transformation rules including: testing for semi-join subsumption and relation mapping; and given disjunction of query expression, transforming the expression into a disjunction of semi-joins, and testing for subsumption of each of the semi-joins; and initiating redundancy removal before applying decorrelation transformations; security component for controlling information leakage associated with the query expression, the security component configured to identify at least one unsafe function in the query expression and to determine an optimal safe location for the at least one unsafe function in an optimal query plan; and a safety component for maintaining safety of the query plan, the query plan including a relocation of the at least one unsafe function to a safe location determined in part by a safety analysis and in part by a cost-based analysis, the unsafe functions including user defined functions, system-defined functions, and operators that may reveal information whether directly or by means of exception or error messages, the maintaining including: parsing the query expression and determining base relations of the query expression; specifying authorizations based on predicated grants in the query expression; creating a regular view by combining a plurality of authorizations made to a user; and giving permission to the user on the regular view instead of underlying relations. 2. The system of claim 1 , wherein the information leakage is via at least one of an error message and an exception.