US 12,067,019 B2
Dynamic data restriction in a database clean room
Rachel Frances Blum, South Orange, NJ (US); Justin Langseth, Kailua, HI (US); and Michael Earle Rainey, Pasco, WA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Nov. 30, 2021, as Appl. No. 17/538,785.
Prior Publication US 2023/0169198 A1, Jun. 1, 2023
Int. Cl. G06F 16/2455 (2019.01); G06F 16/242 (2019.01); G06F 16/27 (2019.01); G06F 21/62 (2013.01)
CPC G06F 16/24565 (2019.01) [G06F 16/2443 (2019.01); G06F 16/27 (2019.01); G06F 21/6227 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A method comprising:
accessing, by a first database account of a distributed database, a shared source dataset from a second database account of the distributed database, the first database account comprising a first local dataset stored locally by the first database account, the shared source dataset being synchronized between the first and second database accounts;
collectively generating, by the first and second database accounts, an approved-statements table comprising one or more database statements that are executable by the distributed database collectively against the first local dataset and the data that is synchronized between the first and second database accounts in the shared source dataset, the first local dataset being different than the shared source dataset;
generating, by the first database account, a database statement that includes a query operation configured to execute on the first local dataset and the shared source dataset;
based on determining, by the distributed database, that the database statement is in the approved-statements table, generating results data by executing the database statement against the first local dataset and the synchronized data in the shared source dataset;
dynamically restricting data of the distributed database by masking one or more columns of data corresponding to a database restriction object, masking the one or more columns of data corresponding to the database restriction object; and
storing, by the distributed database, the results data in the first database account.