IP Library Granted Patent US 9,639,570
Granted Patent B2
US 9,639,570 · App. 15/155,011 · Granted May 2, 2017

Data store access permission system with interleaved application of deferred access control filters

Inventors: Charles Wright (Cortlandt Manor, NY); Ryan Caudy (New York, NY); Raffi Basralian (New York, NY); Herve Bronnimann (New York, NY)
G06F17/30368G06F3/0481G06F3/0482G06F3/0485G06F3/04847G06F3/04895G06F3/0605G06F3/067G06F3/0656G06F8/30G06F8/41G06F8/427G06F8/60G06F11/1451G06F11/1464G06F11/1469G06F12/0261G06F12/084G06F15/17331G06F17/2235G06F17/24G06F17/246G06F17/276G06F17/2715G06F17/30117G06F17/30312G06F17/30315G06F17/30321G06F17/30324G06F17/30327G06F17/30333G06F17/30336G06F17/30339G06F17/30345G06F17/30371G06F17/30374G06F17/30377G06F17/30398G06F17/30424G06F17/30448G06F17/30454G06F17/30477G06F17/30522G06F17/30528G06F17/30554G06F17/30563G06F17/30584G06F17/30598G06F17/30864G06F17/30867G06F17/30887G06F17/30958G06F17/30997H04L12/18H04L51/12H04L61/2069H04L63/101H04L63/102H04L67/1002H04L67/34H04L67/42H04L69/16G06F2201/805G06F2201/84G06F2212/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,639,570
App. No.
15/155,011
Granted
May 2, 2017
Kind
B2
Abstract

Described are methods, systems and computer readable media for a permissions system including relationships of partitioning, grouping, and the application of access control deferred filters.

Claims (41)

1. A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

receiving a user request submitted from a computing device for data from a first table object:

requesting, from an access control list source stored in a computer medium, access control groups for a user:

requesting, from an access control filter source in the computer medium, a set of filter generators for each access control group:

determining, for each set of filter generators for each access control group, a filter generator based on first table metadata for the first table object configured to identify a computer medium source of the first table object data: for each determined filter generator, executing the determined filter generator to create a generated filter for the first table object:

combining each of the generated filters for the first table object into an access control filter:

creating a second table object in memory that references the first table object: associating the access control filter with the second table object: making the second table object available for user operations

receiving a second user request from a computing device to perform a filtering operation on the second table object;

accessing metadata of the second table object;

retrieving a tree-based table storage structure from the metadata;

traversing the tree-based table storage structure starting at a table root of the tree-based table storage structure;

when the second user request requests data from one or more partition columns of the tree-based table storage structure, applying one or more partition column filters based on a partition column structure of the tree;

when the second user request contains a filtering operation for one or more grouping columns of the tree-based table storage structure, in a first pass, executing user-specified filters on the one or more partition columns that execute only system-specified code, and on a second pass, applying internal access-control filters, thereby removing all rows for which the user does not have authorized access by;

retrieving the access control filter from the metadata;

extracting filters from the access control filter that apply to the access control groups for the user;

choosing a filter from the extracted filters;

applying the chosen filter to the second user request;

applying one or more second grouping column filters based on a first filter request contained in the second user request;

applying one or more normal filters contained in the second user request to identify a filtered data source result; and

return a final set of data.

2. A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

receiving a user request submitted from a computing device for data from a first table object;

requesting, from an access control list source stored in a computer medium, access control groups for a user;

requesting, from an access control filter source in the computer medium, a set of filter generators for each access control group;

determining, for each set of filter generators for each access control group, a filter generator based on first table metadata for the first table object configured to identify a computer medium source of the first table object data;

for each determined filter generator, executing the determined filter generator to create a generated filter for the first table object;

combining each of the generated filters for the first table object into an access control filter;

creating a second table object in memory that references the first table object;

associating the access control filter with the second table object;

making the second table object available for user operations;

receiving a second user request from a computing device to perform a data access operation on the second table object;

accessing metadata of the second table object;

retrieving a tree-based table storage structure from the metadata;

traversing the tree-based table storage structure starting at a table root of the tree-based table storage structure;

when the second user request requests data from one or more columns of the tree-based table storage structure, applying internal access-control filters, thereby removing all rows for which the user does not have authorized access by;

retrieving the access control filter from the metadata;

extracting filters from the access control filter that apply to the access control groups for the user;

choosing a filter from the extracted filters;

applying the chosen filter to the second user request;

applying the data access operation; and

returning a final set of data.

Assignments (3)
CHANGE OF NAME Recorded Sep 5, 2018
From: ILLUMON LLC
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 047017/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: RIES, BRIAN; FERRETTI-SMYTHE, JUAN CRISTIAN; WRIGHT, CHARLES; VYDROV, OLEG; CAUDY, RYAN; KENT, DAVID R., IV; DORFMAN, NATHANIEL J.; TEODORESCU, RADU; ZELDIS, MARK; BRONNIMANN, HERVE; BASRALIAN, RAFFI
To: ILLUMON LLC
Reel/Frame 044557/0029 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: WALLEYE SOFTWARE, LLC
To: ILLUMON LLC
Reel/Frame 043722/0092 →
Continuity (2)
Provisional Application 62161813 · May 14, 2015
Related Publication 20160337366A1 · Nov 17, 2016