Sled
HomeBlog
  • Welcome to Sled
  • Sled for Business Users (Viewer)
  • Sled for Data Users (Editors)
    • Checks
    • Data Profiles
    • Lineage and Data Flows
  • Connect with Snowflake
    • Grant permissions on future tables
    • Background Tasks for Snowflake
    • Configure Paths for Snowflake Background Tasks
    • Enabling SSO on Snowflake
  • Other Integrations
    • Tableau
    • PowerBI
    • Qlik
    • Looker
    • dbt
Powered by GitBook
On this page

Was this helpful?

  1. Connect with Snowflake

Grant permissions on future tables

The following code block grants future permission to the role snowboard_role on all future tables and views in a database. This is needed for older Snowflake installations that only support future grants on the schema level.

EXECUTE IMMEDIATE $$
-- TODO CHANGE database_name
DECLARE
  database_name TEXT := 'EXAMPLE_DB';
  log_text TEXT;
  grant_statement TEXT;
  schema_name TEXT;
  res_schemas RESULTSET;
  res resultset;
BEGIN
  log_text := 'START - ';
  grant_statement := 'show schemas in database ' || :database_name;
  res_schemas := (EXECUTE IMMEDIATE :grant_statement);
  FOR record IN res_schemas DO
    IF (record."name" != 'INFORMATION_SCHEMA') THEN
      schema_name := :database_name || '.' || record."name";
      grant_statement := 'grant select, references on future tables in schema ' || schema_name || ' to role snowboard_role; ';
      res := (EXECUTE IMMEDIATE :grant_statement);
      grant_statement := 'grant select, references on future views in schema ' || schema_name || ' to role snowboard_role; ';
      res := (EXECUTE IMMEDIATE :grant_statement);
      log_text := log_text || record."name" || ' GRANTED - ';
    END IF;
  END FOR;
  RETURN log_text;
END;
$$;
PreviousConnect with SnowflakeNextBackground Tasks for Snowflake

Last updated 2 years ago

Was this helpful?