IP Library Granted Patent US 11,977,650
Granted Patent B2
US 11,977,650 · App. 17/811,680 · Granted May 7, 2024

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,977,650
App. No.
17/811,680
Granted
May 7, 2024
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 (64)

1. A method, comprising steps of:

receiving, at a processor, a statement requesting an 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 arguments, wherein each argument ends with a logical operator except a last argument in the statement;

computing, by the processor, a skip count for each of the arguments, wherein the skip count for each argument in the statement is based on the logical operator with which it ends and the skip count is zero for an argument in the statement that does not end with a logical operator, and wherein the skip count for each argument in the statement is one of zero or a positive integer;

evaluating, by the processor, the statement using the skip counts to determine whether the access should be granted to the user, wherein the skip count indicates the number of subsequent arguments in the statement to evaluate;

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 can be evaluated more efficiently by using skip counts to skip portions of the statement during evaluation.

2. The method according to claim 1 , wherein the statement includes user identities, at least one logical operator, 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 arguments ignores parenthesis.

4. The method according to claim 1 , wherein the step of computing, by the processor, a skip count for each of the arguments further includes:

counting, by the processor, a number of left parenthesis of an argument; and

counting, by the processor, a number of left parenthesis of a next argument, wherein the next argument is subsequently adjacent to the argument in the statement.

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

setting, by the processor, the skip count equal to a variable Count.

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

calculating, by the processor, a variable P, wherein P=P+(a number of left parenthesis of an argument)−(a number of right parenthesis of the argument); 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 argument in the statement.

7. The method according to claim 6 , wherein the step of computing, by the processor, a skip count for each of the arguments 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 argument is a final argument in the statement.

8. 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 requesting an access for a user to a data file stored in a non-transitory memory medium;

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

computing a skip count for each of the arguments, wherein the skip count for each argument in the statement is based on the logical operator with which it ends and the skip count is zero for an argument in the statement that does not end with a logical operator, and wherein the skip count for each argument in the statement is one of zero or a positive integer;

evaluating the statement using the skip counts to determine whether the access should be granted to the user, wherein the skip count indicates the number of subsequent arguments in the statement to evaluate;

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.

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

10. The computer program product of claim 8 , wherein the step of parsing the statement into one or more arguments ignores parenthesis.

11. The computer program product of claim 8 , wherein the step of computing a skip count for each of the arguments further includes:

counting a number of left parenthesis of an argument; and

counting a number of left parenthesis of a next argument, wherein the next argument is subsequently adjacent to the argument in the statement.

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

setting the skip count equal to a variable Count.

13. The computer program product of claim 12 , wherein the step of computing a skip count for each of the arguments further includes:

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

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

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

14. The computer program product of claim 13 , wherein the step of computing a skip count for each of the arguments 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 a final argument in the statement.

15. 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 arguments, wherein each argument ends with a logical operator except a last argument in the statement;

computing a skip count for each of the arguments, wherein the skip count for each argument in the statement is based on the logical operator with which it ends and the skip count is zero for an argument in the statement that does not end with a logical operator, and wherein the skip count for each argument in the statement is one of zero or a positive integer;

evaluating the statement using the skip counts to determine whether the access should be granted to the user, wherein the skip count indicates the number of subsequent arguments in the statement to evaluate;

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.

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

17. The apparatus of claim 15 , wherein the step of parsing the statement into one or more arguments ignores parenthesis.

18. The apparatus of claim 15 , wherein the step of computing a skip count for each of the arguments further includes:

counting a number of left parenthesis of an argument; and

counting a number of left parenthesis of a next argument, wherein the next argument is subsequently adjacent to the argument in the statement.

19. The apparatus of claim 18 , wherein the step of computing a skip count for each of the arguments further includes

setting the skip count equal to a variable Count.

20. The apparatus of claim 19 , wherein the step of computing a skip count for each of the arguments further includes:

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

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

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

Assignments (2)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2024
From: GALLAGHER, ADAM
To: UNISYS CORPORATION
Reel/Frame 066865/0203 →