Search code examples
amazon-web-servicespermissionssnowflake-cloud-data-platformamazon-quicksight

Quicksight - "No tables found" for Snowflake data source


I have a database with a schema, table and views in Snowflake, plus a warehouse to run queries. The public role has been granted SELECT and USAGE access on all.

But no schemas or tables are available when I connect Snowflake to AWS QuickSight.

enter image description here

To test the permissions I have checked I can query the views in a Snowflake worksheet using the public role and the warehouse, database and schema. As a further test I’ve also connected Redash to Snowflake and can query the views there.

Still, using the same credentials nothing is available in QuickSight. I have tried with capitalised and lowercase database and warehouse names (Quicksight Data sets - Unable to see snowflake schema and tables).

If I change QuickSight to connect to the SNOWFLAKE_SAMPLE_DATA database I can see a list of schema, but no tables are shown for any schema.

enter image description here

What could I be missing?


Solution

  • I recommend you to create a new ROLE for Quicksight/Redash or this type of application, and grant this to your Quicksight user. Weird that you can see from redash.

    Imagine that you have a role called REPORTING, here the minimum privileges that you need:

    GRANT USAGE ON WAREHOUSE YOUR_WH TO ROLE REPORTING;
    
    GRANT USAGE ON DATABASE YOUR_DB TO ROLE REPORTING;
    
    GRANT USAGE ON SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
    
    GRANT SELECT ON ALL TABLES IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
    GRANT SELECT ON FUTURE TABLES IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
    
    GRANT SELECT ON ALL VIEWS IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
    GRANT SELECT ON FUTURE VIEWS IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
    

    Also, be sure to run this:

    GRANT ROLE REPORTING TO USER QUICKSIGHTS;
    

    We always use CAPITAL case keywords with Snowflake.