Patent ID: 8306999

Claim:
A computer-implemented method for providing row-level security, comprising: receiving, by one or more computer processors, a query from a user associated with an organization for data contained in a data table, wherein the data table contains one or more rows, wherein each row contains data, and wherein each row is associated with a person; accessing, by the one or more computer processors, a multi-table data model including a non-security related query policy which guides and governs the query against data warehouses of the organization, wherein the multi-table data model associates a row-level security policy with the data table, the row-level security policy controls access permissions to the data table based on identity of the user and references a sparse hierarchical security table including a hierarchical structure of the organization, the hierarchical structure identifies the user and any persons subordinate to the user in the organization, and each row of the sparse hierarchical security table includes only direct relationships of the user to other persons in the hierarchical structure; deriving a robust hierarchical security table from the sparse hierarchical security table when the multi-table data model is accessed, wherein each row of the robust hierarchical security table includes either direct or indirect relationships of the user to the other persons in the hierarchical structure; using, by the one or more computer processors, the multi-table data model to augment the query to include a JOIN-based filter and a WHERE-based filter that includes the robust hierarchical security table having the hierarchical structure, wherein the augmented query complies with the non-security related query policy and references the robust hierarchical security table; using, by the one or more computer processors, the augmented query to access one or more rows in the data table, wherein access to the one or more rows is dynamically filtered based upon the hierarchical structure contained in the robust hierarchical security table, wherein the direct and indirect relationships are used to dynamically filter access to the one or more rows, the dynamic filtering is done without additional traversal of the robust hierarchical security table to derive indirect relationships between the user and the persons subordinate to the user; and providing, by the one or more computer processors, access to data contained in rows of the data table associated with the user and rows associated with the persons subordinate to the user.