IP Library Granted Patent US 11,386,213
Granted Patent B2
US 11,386,213 · App. 15/187,950 · Granted Jul 12, 2022

Systems and methods for efficient access control

Inventor: Adam Gallagher (Roseville, MN)
Assignee: Unisys Corporation
G06F21/6209G06F9/45545
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 11,386,213
App. No.
15/187,950
Granted
Jul 12, 2022
Kind
B2
Abstract

An apparatus configured for database access control. The apparatus includes a memory and a processor coupled to the memory, wherein the processor is configured to execute instructions. The instructions include receiving a statement requesting access for a user to data files stored in a non-transitory memory medium; parsing the statement into one or more arguments, wherein each argument ends with a logical operator; computing a skip count for each of the arguments; evaluating the statement using the skip counts to determine whether the access should be granted to the user; retrieving the data files from the non-transitory memory medium; and sending the data files to the user, if the access is granted.

Claims (53)

1. A method of determining user access to a data file comprising:

receiving, at a processor, a statement, containing a plurality of user identities, requesting access for a user to a data file stored in a non-transitory memory medium;

parsing, by the processor, the statement into one or more user identity, wherein each user identity ends with a logical operator except a last user identity in the statement;

computing, by the processor, a skip count for each of the one or more user identity by counting a number of left parenthesis of the user identity and counting a number of left parenthesis of a next user identity, wherein the next user identity is subsequently adjacent to the user identity in the statement;

evaluating, by the processor, the statement using the skip counts to determine whether the access should be granted to the user, by skipping a number of the one or more user identity following a respective user identity based on the skip count of the respective user identity, and ending evaluation of the one or more user identity following a respective user identity if the skip count of the respective user identity is zero to increase the efficiency of access control using the one or more user identity;

if access is granted to the user, retrieving, by the processor, the data file from the non-transitory memory medium and sending the datafile to the user; and

if access is not granted, denying the statement requesting access;

wherein a lengthy statement containing a plurality of user identities can be evaluated more efficiently by using skip counts to skip portions of the statement during the evaluation.

2. The method according to claim 1 , wherein the statement includes at least one logical operator separating user identities and at least one parenthesis.

3. The method according to claim 1 , wherein the step of parsing, by the processor, the statement into one or more user identities ignores parenthesis.

4. The method according to claim 1 , wherein the step of computing, by the processor, a skip count for each of the user identity further includes setting, by the processor, the skip count equal to a variable Count.

5. The method according to claim 4 , wherein the step of computing, by the processor, a skip count for each of the user identity further includes

calculating, by the processor, a variable P, wherein P=P+(a number of left parenthesis of a user identity)−(a number of right parenthesis of the user identity); and

calculating, by the processor, the variable Count, wherein Count=Count+1,

wherein the method accumulatively repeats the calculations of P and Count for each user identity in the statement.

6. The method according to claim 5 , wherein the step of computing, by the processor, a skip count for each of the user identity further includes

terminating, by the processor, the calculations of P and Count, if P is not less or not equal to zero;

terminating, by the processor, the calculations of P and Count, if the user identity is the final user identity argument in the statement.

7. A computer program product, comprising:

a non-transitory computer-readable medium comprising instructions which, when executed by a processor of a computing system, cause the processor to perform the steps of:

receiving a statement, containing a plurality of user identities, requesting an access for a user to a data file stored in a non-transitory memory medium;

parsing the statement into one or more user identity, wherein each user identity ends with a logical operator except a last user identity in the statement;

computing a skip count for each of the one or more user identity by counting a number of left parenthesis of the user identity and counting a number of left parenthesis of a next user identity, wherein the next user identity is subsequently adjacent to the user identity in the statement;

evaluating the statement using the skip counts to determine whether the access should be granted to the user, by skipping a number of one or more user identity following a respective user identity based on the skip count of the respective user identity, and ending evaluation of the one or more user identities following a respective user identity if the skip count of the respective user identity is zero to increase the efficiency of access control;

if access is granted to the user, retrieving the data file from the non-transitory memory medium; and sending the data file to the user; and

if access is not granted, denying the statement requesting access;

wherein by using skip counts to skip portions of the statement during evaluation, lengthy statements for access to data files in a database environment can be evaluated more efficiently.

8. The computer program product of claim 7 , wherein the statement includes user identities, at least one logical operator, and at least one parenthesis.

9. The computer program product of claim 7 , wherein the step of parsing the statement into one or more user identity ignores parenthesis.

10. The computer program product of claim 7 , wherein the step of computing a skip count for each of the user identity further includes setting the skip count equal to a variable Count.

11. The computer program product of claim 10 , wherein the step of computing a skip count for each of the user identity further includes calculating a variable P, wherein P=P+(a number of left parenthesis of a user identity)−(a number of right parenthesis of the user identity); and

calculating the variable Count, wherein Count=Count+1,

wherein the method accumulatively repeats the calculations of P and Count for each user identity in the statement.

12. The computer program product of claim 11 , wherein the step of computing a skip count for each of the user identity further includes

terminating the calculations of P and Count, if P is not less or not equal to zero;

terminating the calculations of P and Count, if the argument is the user identity in the statement.

13. An apparatus, comprising:

a memory; and

a processor coupled to the memory, the processor being configured to execute the steps of:

receiving a statement requesting an access for a user to a data file stored in a non-transitory memory medium;

parsing the statement into one or more user identity, wherein each argument user identity ends with a logical operator except a last user identity in the statement;

computing a skip count for each of the user identity by counting a number of left parenthesis of a user identity and counting a number of left parenthesis of a next user identity, wherein the next user identity is subsequently adjacent to the user identity in the statement;

evaluating the statement using the skip counts to determine whether the access should be granted to the user, by skipping a number of user identity following a respective user identity based on the skip count of the respective user identity, and ending evaluation of user identity following a respective user identity if the skip count of the respective user identity argument is zero to increase the efficiency of access control;

if access is granted, retrieving the data file from the non-transitory memory medium; and sending the data file to the user;

and if access is not granted, denying the statement requesting access;

wherein by using skip counts to skip portions of the statement during evaluation, lengthy statements for access to data files in a database environment can be evaluated more efficiently.

14. The apparatus of claim 13 , wherein the statement includes user identities, at least one logical operator, and at least one parenthesis.

15. The apparatus of claim 13 , wherein the step of parsing the statement into one or more user identity ignores parenthesis.

16. The apparatus of claim 13 , wherein the step of computing a skip count for each of the user identity further includes setting the skip count equal to a variable Count.

17. The apparatus of claim 16 , wherein the step of computing a skip count for each of the user identity further includes

calculating a variable P, wherein P=P+(a number of left parenthesis of a user identity)−(a number of right parenthesis of the user identity); and

calculating the variable Count, wherein Count=Count+1,

wherein the method accumulatively repeats the calculations of P and Count for each user identity in the statement.

Assignments (8)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
SECURITY INTEREST Recorded Nov 19, 2020
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 054481/0865 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2018
From: GALLAGHER, ADAM
To: UNISYS CORPORATION
Reel/Frame 045681/0963 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 044416/0114 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY INTEREST Recorded Oct 6, 2016
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 039960/0057 →
Continuity (1)
Related Publication 20170364693A1 · Dec 21, 2017
Cited By (1)
US 12,291,998