IP Library Granted Patent US 10,652,246
Granted Patent B2
US 10,652,246 · App. 15/396,185 · Granted May 12, 2020

Security descriptors for record access queries

Inventor: Venkat Chandrasekaran (Pleasanton, CA)
Assignee: salesforce.com, inc.
H04L63/101G06F16/2282G06F16/245G06F16/24552G06F16/24575G06F16/284G06F16/951G06F21/6227
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 10,652,246
App. No.
15/396,185
Granted
May 12, 2020
Kind
B2
Abstract

Embodiments regard security descriptors for record access queries. An embodiment of a method includes: receiving a record access query, the query regarding records for a certain one or more users at a certain access level; searching one or more sharing tables of entities in a computing environment for security descriptors, each security descriptor being associated with a set of one or more users having access to one or more records of a set of records at an access level; identifying any security descriptors in the one or more sharing tables that relate to the certain one or more users with at least the certain access level; and searching the one or more records associated with each of the identified security descriptors according to the record access query.

Claims (47)

1. A method comprising:

maintaining, with one or more hardware processing devices, a security descriptor structure storing one or more security descriptors each of which is associated with one or more security descriptor members, wherein each descriptor member comprises at least a record that has been shared with one or more users, groups of users, or both;

receiving, with the one or more hardware processing devices, a record access query regarding records for one or more users all at a certain access level;

searching, with the one or more hardware processing devices, the security descriptor structure for security descriptors, each security descriptor being associated with a set of one or more users having access to one or more records of a set of records at the certain access level;

identifying, with the one or more hardware processing devices, any security descriptors in the security descriptor structure that relate to the one or more users with at least the certain access level; and

searching, with the one or more hardware processing devices, the one or more records associated with each of the identified security descriptors according to the record access query.

2. The method of claim 1 , further comprising reporting results of the search of the one or more records associated with each of the identified security descriptors.

3. The method of claim 1 , wherein each unique set of users that have the same access level to at least one record in a set of records are associated with a same security descriptor in a sharing table.

4. The method of claim 1 , wherein the searching of one or more sharing tables includes search of one or more of records owned by a user, records that have been shared with the user, records in private groups of which the user is a member, records in public groups, and records in libraries of which the user is a member.

5. The method of claim 1 , wherein the search of one or more tables includes searching cached results from a previous search.

6. The method of claim 1 , wherein the search of one or more tables includes caching one or more results of the search.

7. The method of claim 1 , wherein the computing environment comprises a multi-tenant database environment.

8. A method comprising:

determining, with one or more hardware processing devices, that one or more users are provided access to one or more records at a certain access level in a computing environment;

maintaining, with the one or more hardware processing devices, a security descriptor structure storing one or more security descriptors each of which is associated with one or more security descriptor members, wherein each descriptor member comprises at least a record that has been shared with one or more users, groups of users, or both;

determining, with the one or more hardware processing devices, whether the security descriptor structure in a share table of an entity includes the one or more users at the certain access level;

modifying the entry to include the one or more records with the one or more hardware processing devices if an entry in a share table of an entity includes an existing security descriptor for the one or more users at the certain access level; and

generating, with the one or more hardware processing devices, a new security descriptor and modifying the share table to include the new security descriptor if the share table does not include an existing security descriptor for the one or more users, groups, or both at the certain access level.

9. The method of claim 8 , wherein each unique set of users that have the same access level to at least one record in a set of records are associated with a same security descriptor in a sharing table.

10. The method of claim 8 , wherein the access level includes one of full access, read-write access, or read only access.

11. The method of claim 8 , further comprising indexing the new security descriptor based upon the one or more users.

12. The method of claim 11 , wherein indexing includes performing indexing when a number of security descriptors is below a certain threshold.

13. The method of claim 8 , wherein the computing environment comprises a multi-tenant database environment.

14. A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by one or more hardware processing devices, cause the one or more hardware processing devices to perform operations comprising:

maintaining, with the one or more hardware processing devices, a security descriptor structure storing one or more security descriptors each of which is associated with one or more security descriptor members, wherein each descriptor member comprises at least a record that has been shared with one or more users, groups of users, or both;

receiving, with the one or more hardware processing devices, a record access query regarding records for one or more users all at a certain access level;

searching, with the one or more hardware processing devices, the security descriptor structure for security descriptors, each security descriptor being associated with a set of one or more users having access to one or more records of a set of records at the certain access level;

identifying, with the one or more hardware processing devices, any security descriptors in the security descriptor structure that relate to the one or more users with at least the certain access level; and

searching, with the one or more hardware processing devices, the one or more records associated with each of the identified security descriptors according to the record access query.

15. The medium of claim 14 , further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:

reporting results of the search of the one or more records associated with each of the identified security descriptors.

16. The medium of claim 14 , wherein each unique set of users that have the same access level to at least one record in a set of records are associated with a same security descriptor in a sharing table.

17. The medium of claim 14 , wherein the searching of one or more sharing tables includes search of one or more of records owned by a user, records that have been shared with the user, records in private groups of which the user is a member, records in public groups, and records in libraries of which the user is a member.

18. The medium of claim 14 , wherein the search of one or more tables includes searching cached results from a previous search.

19. The medium of claim 14 , wherein the search of one or more tables includes caching one or more results of the search.

20. The medium of claim 14 , wherein the computing environment comprises a multi-tenant database environment.

21. A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:

determining, with the one or more hardware processing devices, that one or more users are provided access to one or more records at a certain access level in a computing environment;

determining, with the one or more hardware processing devices, whether an entry in a share table of an entity includes an existing security descriptor in a share table of an entity includes the one or more users at the certain access level;

modifying the entry to include the one or more records, with the one or more hardware processing devices, if an entry in a share table of an entity includes an existing security descriptor for the one or more users, groups, or both at the certain access level; and

generating a new security descriptor and modifying the share table to include the new security descriptor, with the one or more hardware processing devices, if the share table does not include an existing security descriptor for the one or more users, groups, or both at the certain access level.

22. The medium of claim 21 , wherein each unique set of users that have the same access level to at least one record in a set of records are associated with a same security descriptor in a sharing table.

23. The medium of claim 21 , wherein the access level includes one of full access, read-write access, or read only access.

24. The medium of claim 21 , further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:

indexing the new security descriptor based upon the one or more users.

25. The medium of claim 24 , wherein indexing includes performing the indexing when a number of security descriptors is below a certain threshold.

26. The medium of claim 21 , wherein the computing environment comprises a multi-tenant database environment.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: CHANDRASEKARAN, VENKAT
To: SALESFORCE.COM, INC.
Reel/Frame 041068/0414 →
Continuity (3)
Continuation 14507728 · Oct 6, 2014
Provisional Application 61895238 · Oct 24, 2013
Related Publication 20170111363A1 · Apr 20, 2017
Cited By (2)
US 12,210,540 US 12,423,356