IP Library › Granted Patent US 10,715,524
Granted Patent B1
US 10,715,524 · App. 16/683,641 · Granted Jul 14, 2020

External credential-less stages for data warehouse integrations

Inventors: Polita Paulus (Kirkland, WA); Peter Povinec (Redwood City, CA); Saurin Shah (Kirkland, WA); Srinidhi Karthik Bisthavalli Srinivasa (Seattle, WA)
Assignee: Snowflake Inc.
H04L63/0884G06F16/254H04L63/107H04L63/126H04L2463/081
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,715,524
App. No.
16/683,641
Granted
Jul 14, 2020
Kind
B1
Abstract

A storage integration object is created in a database of a data warehouse system. The storage integration object identifies a storage location in a storage platform of a cloud storage provider system and a cloud identity object maintained by a network-based data warehouse system. The cloud identity object is associated, at the storage platform of the cloud storage provider, with a proxy identity object granted permission to access the storage location. An external stage object is created based on the storage integration object. The external stage object identifies the storage location and includes an association with the storage integration object. A command to load or unload data at the storage location is received. In response to the command, the data is loaded or unloaded, via the proxy identity object, at the storage location using the external stage object.

Claims (82)

1. A network-based data warehouse system comprising:

at least one hardware processor; and

a memory storing instructions that cause the at least one hardware processor to perform operations comprising:

creating, in a database, a storage integration object identifying a cloud identity object and a storage location in a storage platform of a cloud storage provider system, the cloud identity object corresponding to a cloud identity that is associated, at the storage platform of the cloud storage provider, with a proxy identity object corresponding to a proxy identity granted permission to access the storage location;

creating, in the database, an external stage object based on the storage integration object, the external stage object identifying the storage location and including an association with the storage integration object;

receiving, from a computing device, a command to load or unload data at the storage location; and

in response to the command, loading or unloading, via the proxy identity object, the data at the storage location in the storage platform using the external stage object, the loading or unloading of the data comprising:

identifying the storage integration object based on the external stage object; and

accessing the storage location by causing the cloud identity to assume the proxy identity using security credentials obtained from the cloud storage provider system based on information included in the storage integration object.

2. The network-based data warehouse system of claim 1 , wherein the operations further comprise:

setting usage permissions associated with the storage integration object; and

setting usage permissions associated with the external stage object.

3. The network-based data warehouse system of claim 2 , wherein:

the setting of the usage permissions associated with the storage integration object comprise granting a first user permission to use the storage integration object; and

the setting of the usage permissions associated with the external stage object comprise granting a second user permission to use the external stage object.

4. The network-based data warehouse system of claim 1 , wherein the operations further comprise:

receiving a command to create the storage integration object, the command identifying the storage location and the cloud storage provider system, wherein the creating of the storage integration object is based on the command to create the storage integration object.

5. The network-based data warehouse system of claim 1 , wherein the operations further comprise:

receiving a command to create the external stage object, the command comprising an identifier corresponding to the storage location and an identifier corresponding to the storage integration object.

6. The network-based data warehouse system of claim 1 , wherein:

the security credentials are first security credentials; and

the loading or unloading of the data at the storage location comprises:

accessing the first security credentials associated with the proxy identity object using second security credentials associated with the cloud identity object; and

accessing the proxy identity object using the first security credentials.

7. The network-based data warehouse system of claim 6 , wherein the accessing of the security credentials comprises:

transmitting, to an access management system of the cloud storage provider system, a request for the first security credentials, the request comprising the second security credentials associated with the cloud identity object.

8. The network-based data warehouse system of claim 1 , wherein the operations further comprise verifying that the storage location is allowed by the storage integration object based on information included in the storage integration object.

9. The network-based data warehouse system of claim 1 , wherein the operations further comprise:

verifying user permissions of a user associated with the command.

10. The network-based data warehouse system of claim 9 , wherein the verifying of the user permissions includes one or more of:

verifying that the user has permission to use the storage integration object; or

verifying that the user has permission to use the external stage object.

11. The network-based data warehouse system of claim 1 , wherein:

the storage integration object includes a first identifier corresponding to the storage location; and

the external stage object includes a second identifier corresponding to a portion of the storage location.

12. A method comprising:

creating, by one or more hardware processors of a machine, a storage integration object in a database of a database system, the storage integration object identifying a cloud identity object and a storage location in a storage platform of a cloud storage provider system, the cloud identity object corresponding to a cloud identity that is associated, at the storage platform of the cloud storage provider, with a proxy identity object corresponding to a proxy identity granted permission to access the storage location;

creating, in the database, an external stage object based on the storage integration object, the external stage object identifying the storage location and including association with the storage integration object;

receiving, from a computing device, a command to load or unload data at the storage location; and

in response to the command, loading or unloading, via the proxy identity object, the data at the storage location in the storage platform using the external stage object, the loading or unloading of the data comprising:

identifying the storage integration object based on the external stage object; and

accessing the storage location by causing the cloud identity to assume the proxy identity using security credentials obtained from the cloud storage provider system based on information included in the storage integration object.

13. The method of claim 12 , further comprising:

setting usage permissions associated with the storage integration object; and

setting usage permissions associated with the external stage object.

14. The method of claim 13 , wherein:

the setting of the usage permissions associated with the storage integration object comprise granting a first user permission to use the storage integration object; and

the setting of the usage permissions associated with the external stage object comprise granting a second user permission to use the external stage object.

15. The method of claim 12 , further comprising:

receiving a command to create the storage integration object, the command identifying the storage location and the cloud storage provider system, wherein the creating of the storage integration object is based on the command to create the storage integration object.

16. The method of claim 12 , further comprising:

receiving a command to create the external stage object, the command comprising an identifier corresponding to the storage location and an identifier corresponding to the storage integration object.

17. The method of claim 12 , wherein:

the security credentials are first security credentials; and

the loading or unloading of the data at the storage location comprises:

accessing the first security credentials associated with the proxy identity object using second security credentials associated with the cloud identity object; and

accessing the proxy identity object using the first security credentials associated with the proxy identity object.

18. The method of claim 12 , further comprising verifying user permissions of a user associated with the command.

19. The method of claim 18 , wherein the verifying of the user permissions includes one or more of:

verifying that the user has permission to use the storage integration object; or

verifying that the user has permission to use the external stage object.

20. A computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

creating, by one or more hardware processors of a machine, a storage integration object in a database of a database system, the storage integration object identifying a cloud identity object and storage location in a storage platform of a cloud storage provider system, the cloud identity object corresponding to a cloud identity that is associated, at the storage platform of the cloud storage provider, with a proxy identity object corresponding to a proxy identity granted permission to access the storage location;

creating, in the database, an external stage object based on the storage integration object, the external stage object identifying the storage location and including association with the storage integration object;

receiving, from a computing device, a command to load or unload data at the storage location; and

in response to the command, loading or unloading, via the proxy identity object, the data at the storage location in the storage platform using the external stage object, the loading or unloading of the data comprising:

identifying the storage integration object based on the external stage object; and

accessing the storage location by causing the cloud identity to assume the proxy identity using security credentials obtained from the cloud storage provider system based on information included in the storage integration object.

21. The computer-storage medium of claim 20 , wherein the instructions configure the machine to perform further operations comprising:

setting usage permissions associated with the storage integration object; and

setting usage permissions associated with the external stage object.

22. The computer-storage medium of claim 20 , wherein the instructions configure the machine to perform further operations comprising:

receiving a command to create the storage integration object, the command identifying the storage location and the cloud storage provider system, wherein the creating of the storage integration object is based on the command to create the storage integration object.

23. The computer-storage medium of claim 20 , wherein the instructions configure the machine to perform further operations comprising:

receiving a command to create the external stage object, the command comprising an identifier corresponding to the storage location and an identifier corresponding to the storage integration object.

24. The computer-storage medium of claim 20 , wherein:

the security credentials are first security credentials; and

the instructions configure the machine to perform further operations comprising:

accessing the first security credentials for accessing the proxy identity object using second security credentials associated with the cloud identity object; and

accessing the proxy identity object using the first security credentials.

25. The computer-storage medium of claim 20 , wherein the instructions configure the machine to perform further operations comprising:

verifying that the storage location is allowed by the storage integration object based on information included in the storage integration object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: PAULUS, POLITA; POVINEC, PETER; SHAH, SAURIN; BISTHAVALLI SRINIVASA, SRINIDHI KARTHIK
To: SNOWFLAKE INC.
Reel/Frame 051008/0387 →
Cited By (4)
US 12,363,049 US 12,417,233 US 12,566,775 US 12,657,330