Controle de acesso a tabelas dinâmicas

Este tópico discute os privilégios necessários para executar operações com tabelas dinâmicas, como criar, consultar, alterar, visualizar e descartar.

Para fornecer a um usuário acesso total a uma tabela dinâmica, você pode fazer o seguinte:

Ao atribuir concessões, certifique-se de especificar o tipo de objeto como DYNAMIC TABLE, pois as tabelas dinâmicas têm um conjunto diferente de privilégios das tabelas regulares.

Para saber mais sobre o modelo de privilégio Snowflake, consulte Visão geral do controle de acesso e Privilégios de controle de acesso.

Privilégios para criar uma tabela dinâmica

Para criar uma tabela dinâmica, você deve usar uma função que tenha os seguintes privilégios:

Privilégio

Objeto

CREATE DYNAMIC TABLE

Esquema no qual você planeja criar a tabela dinâmica.

SELECT

As tabelas e exibições existentes que você planeja consultar para a nova tabela dinâmica.

USAGE

Banco de dados e esquema que você planeja usar para a nova tabela dinâmica.

Warehouse que você planeja usar para atualizar a tabela.

Nota

Embora você possa executar CREATE DYNAMIC TABLE ... INITIALIZE = ON_SCHEDULE com uma função secundária que tenha o privilégio USAGE, a tabela dinâmica não será atualizada com sucesso se a função primária não tiver esse privilégio e, portanto, ela não será inicializada.

Para criar uma tabela dinâmica que depende de outra tabela dinâmica, você deve usar uma função que tenha os seguintes privilégios:

Privilégio

Objeto

SELECT

Tabela dinâmica que você planeja consultar para criar a nova tabela dinâmica.

OPERATE

Todas as tabelas dinâmicas upstream das quais a nova tabela dinâmica depende. Necessário apenas se você definir a tabela dinâmica para ser atualizada de forma síncrona na criação.

Privilégios para consultar uma tabela dinâmica

Para consultar uma tabela dinâmica, você pode usar uma função que tenha privilégios para criar uma tabela dinâmica. Para cenários em que um usuário só precisa consultar uma tabela dinâmica – por exemplo, um analista de dados – use uma função que tenha os seguintes privilégios:

Privilégio

Objeto

USAGE

Banco de dados e esquema que contém a tabela dinâmica.

Warehouse utilizado para executar a consulta.

SELECT

A tabela dinâmica que está sendo consultada.

Privilégios para alterar uma tabela dinâmica

Para alterar uma tabela dinâmica, você deve usar uma função que tenha o privilégio OWNERSHIP ou OPERATE nessa tabela dinâmica.

Se você tiver o privilégio OPERATE em uma tabela dinâmica, poderá fazer o seguinte com o comando ALTER DYNAMIC TABLE:

Privilégios para visualizar os metadados de uma tabela dinâmica

Para exibir metadados, você deve usar uma função que tenha privilégio MONITOR nessa tabela dinâmica.

Embora o privilégio OPERATE conceda esse acesso, ele também inclui a capacidade de alterar tabelas dinâmicas, tornando MONITOR a opção mais adequada para cenários em que um usuário não precisa alterar uma tabela dinâmica. Por exemplo, funções desempenhadas por cientistas de dados.

Se você tiver o privilégio MONITOR em uma tabela dinâmica, poderá fazer o seguinte:

  • Usar o comando DESCRIBE DYNAMIC TABLE e a página de detalhes de tabelas dinâmicas Snowsight para visualizar os detalhes específicos de uma tabela dinâmica. Os campos a seguir ficarão ocultos se você tiver apenas o privilégio SELECT em uma tabela dinâmica: text, warehouse, scheduling_state, last_suspended_on e suspend_reason_code (somente UI).

  • Usar o comando SHOW DYNAMIC TABLES para visualizar a quais tabelas dinâmicas você tem acesso.

  • Chame a função de tabela DYNAMIC_TABLE_GRAPH_HISTORY para exibir o histórico do gráficos.

  • Chame a função de tabela DYNAMIC_TABLE_REFRESH_HISTORY para exibir o histórico de atualizações.

Privilégios para descartar uma tabela dinâmica

Para descartar uma tabela dinâmica, você deve usar uma função que tenha o privilégio OWNERSHIP nessa tabela dinâmica.