1. A computer implemented method for providing access to a database, comprising: receiving a request for data for a user; receiving a set of user access tokens associated with the user the set of user access tokens comprising a first label, object labels are assigned to rows or cells in the database, the database has one or more metadata tables that associate the user access tokens with the object labels; determining, based on the one or more metadata tables, which of the object labels are associated with each of the user access tokens to form a set of zero or more object labels for each of the user tokens in the first label; forming a subset of object labels that includes object labels that are common to the sets of object labels for the user tokens, the subset of object labels defines rows or cells in the database to which the user is allowed access, the subset of object labels is formed dynamically after receiving the user request for data; selecting data within the database associated with the subset of object labels, the selecting includes determining which row or cell in the database has associated therewith at least one of the object labels in the subset of object labels; and providing access to the data that is associated with the selected set of object labels.