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:
Conceda todos os privilégios, exceto OWNERSHIP, na tabela dinâmica a uma função.
Conceda o privilégio OWNERSHIP ou ALL PRIVILEGES em futuras tabelas dinâmicas a uma função.
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. |
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 usado para atualizar a tabela. |
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:
Suspender uma tabela dinâmica usando ALTER … SUSPEND.
Retomar uma tabela dinâmica usando ALTER … RESUME.
Atualizar uma tabela dinâmica usando ALTER … REFRESH.
Definir ou alterar o warehouse e/ou o meta de atraso usando ALTER … SET.
Privilégios para visualizar os metadados de uma tabela dinâmica¶
Para visualizar os metadados e o Information Schema de uma tabela dinâmica, você deve usar uma função que tenha o 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
esuspend_reason_code
(somente UI).Usar o comando SHOW DYNAMIC TABLES para visualizar a quais tabelas dinâmicas você tem acesso.
Navegar até a função de tabela DYNAMIC_TABLE_GRAPH_HISTORY para visualizar o histórico do gráfico.
Navegar até a função de tabela DYNAMIC_TABLE_REFRESH_HISTORY para visualizar 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.