11. A computer-implemented method of performing fine-grained access control of a database, comprising: receiving a query expression for processing against the database; evaluating a plurality of possible plans for executing the query expression, the evaluating including: comparing cost associated with each plan; and in an event that the query expression includes a join, determining a join plan and an order in which tables are evaluated or joined; removing redundant authorizations associated with the query expression; 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 generating a safe query plan, the safe query plan including a relocation of at least one unsafe function to an optimal safe location determined in part by a safety analysis and in part by a cost-based analysis; and maintaining safety of the query plan, the maintaining including: parsing the query expression and determining base relations; 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.
12. The method of claim 11 , further comprising an act of inferring the safe query plan.