1. A method of providing a generic database security application, comprising: operating, using a programmed computer processor circuit, a database providing virtual private database functionality; inserting a plurality of rows into a user security table in the database, each of the rows comprising one of a first user identification and user group for which database access is to be controlled, the name of a first database object to be secured in the database, and a first predicate; defining in the database a common security policy function that generates a second predicate to be appended by the virtual private database functionality to a query made on one of the first database objects by a querying user, the second predicate being generated based on a first predicate in a row in the user security table, the row referencing a name of the one of the first database objects and one of the user identification and user group of the querying user; using the virtual private database functionality to associate the common security policy function with each of the first database objects named in the user security table; and inserting a plurality of rows into a user table in the database, each of the rows of the user table comprising a second user identification and a user group, for which database access is to be controlled; linking the user table with the user security table, such that one of the first user identification and user group in each row in the user security table corresponds to one of a second user identification and user group in respective rows of the user table; and allowing the querying user to log in to the database only if the querying user's user identification is present in the user table; wherein the user security table and the user table are separate tables in the database.