IP Library Granted Patent US 11,216,582
Granted Patent B2
US 11,216,582 · App. 17/333,343 · Granted Jan 4, 2022

Secure data sharing in a multi-tenant database system

Inventors: Allison Waingold Lee (San Mateo, CA); Peter Povinec (Redwood City, CA); Martin Hentschel (Seattle, WA); Robert Muglia (Mercer Island, WA)
Assignee: Snowflake Inc.
G06F21/6227G06F16/2282G06F16/245G06F21/6218
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,216,582
App. No.
17/333,343
Granted
Jan 4, 2022
Kind
B2
Abstract

Systems, methods, and devices for implementing secure views for zero-copy data sharing in a multi-tenant database system are disclosed. A method includes granting, to one or more cross-accounts, access to a share object comprising a secure view and usage functionality associated with a user-defined function (UDF) to underlying data without providing a view of the procedural logic associated with the UDF.

Claims (50)

1. A multi-tenant database system comprising:

a memory; and

one or more processors operatively coupled to the memory, the one or more processors to:

grant, to one or more cross-accounts, access to a share object comprising a secure view and usage functionality associated with a secure user-defined function (UDF) to underlying data without providing a view of a procedural logic associated with the secure UDF;

receive a request from a first cross-account of the one or more cross-accounts to implement the secure view and the usage functionality associated with the secure UDF;

receive a query from the first cross-account; and

implement the secure UDF in response to receiving the query from the first cross-account.

2. The multi-tenant database system of claim 1 , wherein the share object is defined within first account and the secure UDF is configured to provide the secure view and usage functionality to the underlying data from the first account to the one or more cross-accounts of the multi-tenant database without copying the underlying data to the one or more cross-accounts.

3. The multi-tenant database system of claim 1 , wherein the share object further comprises one or more of:

a data field of an underlying table of the share object;

a structural element of an underlying table of the share object; or

a quantity of data in an underlying table of the share object.

4. The multi-tenant database system of claim 1 , wherein to respond to the query, the one or more processors are configured to respond such that the procedural logic is hidden from the first cross-account when the first cross-account accesses the secure UDF, wherein the procedural logic comprises one or more of:

a table access according to the secure UDF; or

a quantity of data processed according to the secure UDF.

5. The multi-tenant database system of claim 1 , wherein the secure UDF is a scalar UDF comprising parameters such that the scalar UDF returns a single row and a single column, and wherein responding to the query from the second account comprises providing one or more of a simple SQL expression or a subquery.

6. The multi-tenant database system of claim 1 , wherein the secure UDF is a table-valued UDF comprising a correlated table, and wherein the table-valued UDF governs each of the:

restriction of the first cross-account from viewing a secure UDF definition of the secure UDF;

restriction of the first cross-account from viewing the underlying data of the share object; and

restriction of the first cross-account from viewing data that is filtered out by the secure UDF definition.

7. The multi-tenant database system of claim 1 , wherein the one or more processors further configured to grant different corresponding access rights to each account of a list of accounts, wherein the list of accounts is stored in the share object and comprises the one or more cross-accounts.

8. A method, comprising:

receiving a share object comprising a secure view and usage functionality associated with a secure user-defined function (UDF) comprising procedural logic;

granting the secure view and usage functionality associated with the secure UDF to underlying data to one or more cross-accounts without providing a view of a procedural logic associated with the secure UDF to the one or more cross-accounts;

receiving a request from a first cross-account of the one or more cross-accounts to implement the secure view and the usage functionality associated with the secure UDF;

receiving a query from the first cross-account; and

implementing the secure view in response to receiving the query from the first cross-account.

9. The method of claim 8 , wherein the share object is defined within first account and the secure UDF is configured to provide the secure view and usage functionality to the underlying data from the first account to the one or more cross-accounts of the multi-tenant database without copying the underlying data to the one or more cross-accounts.

10. The method of claim 8 , wherein the share object further comprises one or more of:

a data field of an underlying table of the share object;

a structural element of an underlying table of the share object; or

a quantity of data in an underlying table of the share object.

11. The method of claim 8 , wherein responding to the query comprises responding such that the procedural logic of the share object is hidden from the first cross-account when the first cross-account accesses the secure-UDF, wherein the procedural logic comprises one or more of:

a table accessed according to the secure UDF; or

a quantity of data processed according to the secure UDF.

12. The method of claim 10 , wherein the secure UDF is a scalar UDF comprising parameters such that the scalar UDF returns a single row and a single column, and wherein responding to the query from the first cross-account comprises providing one or more of a simple SQL expression or a subquery.

13. The method of claim 10 , wherein the secure UDF is a table-valued UDF comprising a correlated table, and wherein the table-valued UDF governs each of:

restricting the first cross-account from viewing the secure UDF definition;

restricting the first cross-account from viewing underlying data of the share object; and

restricting the first cross-account from viewing data that is filtered out by the secure UDF definition.

14. The method of claim 8 , wherein the share object is accessible in a query profile of the first cross-account as a single node, and wherein the procedural logic is not exposed in the query profile.

15. The method of claim 8 , further comprising:

granting different corresponding access rights to each account of a list of accounts, wherein the list of accounts is stored in the share object and comprises the one or more cross-accounts.

16. A non-transitory computer readable storage media storing instructions that, when executed by one or more processors, cause the one or more processors to grant access to a share object when executed in a multi-tenant database, the instructions to cause the one or more processors to:

grant, to one or more cross-accounts by the one or more processors, access to a share object comprising a secure view and usage functionality associated with a secure user-defined function (UDF) to underlying data without providing a view of a procedural logic associated with the secure UDF;

receive a request from a first cross-account of the one or more cross-accounts to implement the secure view and the usage functionality associated with the secure UDF;

receive a query from the first cross-account; and

implement the secure UDF in response to the query from the first cross-account.

17. The non-transitory computer readable storage media of claim 16 , the instructions further to cause the one or more processors to:

grant different corresponding access right to each account of a list of accounts, wherein the list of accounts is stored in the share object and comprises the one or more cross-accounts.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2021
From: LEE, ALLISON WAINGOLD; POVINEC, PETER; HENTSCHEL, MARTIN; MUGLIA, ROBERT
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 056382/0743 →
CHANGE OF NAME Recorded May 28, 2021
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 056424/0025 →
Continuity (3)
Continuation 16241463 · Jan 7, 2019
Continuation In Part 16055824 · Aug 6, 2018
Related Publication 20210286893A1 · Sep 16, 2021
Cited By (1)
US 12,724,761