- Categorias:
Funções de contexto (Objeto da sessão)
INVOKER_ROLE¶
Retorna o nome da função a nível de conta do objeto que executa a consulta ou NULL se o nome da função for uma função de banco de dados.
- Consulte também:
Neste tópico:
Sintaxe¶
INVOKER_ROLE()
Argumentos¶
Nenhum.
Notas de uso¶
Se usar a função INVOKER_ROLE com a política de mascaramento, verifique se sua conta Snowflake é Enterprise Edition ou superior.
A tabela a seguir resume a relação entre a consulta e o valor INVOKER_ROLE na expressão SQL da política de mascaramento.
Consulta onde se aplica a política de mascaramento
Valor devolvido por INVOKER_ROLE
Exibição
Função do proprietário da exibição.
UDF
Função do proprietário da UDF.
Procedimento armazenado com direito do chamador
Procedimento armazenado com direito do proprietário
Função do proprietário do procedimento armazenado
Tarefa
Função do proprietário da tarefa.
Fluxo
A função que consulta um determinado fluxo.
O diagrama a seguir mostra a relação de um executor de consulta, funções no Snowflake e políticas de mascaramento em tabelas ou exibições.
Onde:
R0, R1, R2, R3
São funções no Snowflake.
P1, P2, P3
São políticas de mascaramento do Snowflake.
V1, V2
São exibições no Snowflake.
T
É uma tabela no Snowflake.
Com base neste diagrama, os valores de CURRENT_ROLE e INVOKER_ROLE em uma consulta são os seguintes:
Política
CURRENT_ROLE
INVOKER_ROLE
P1
R3
R1
P2
R3
R2
P3
R3
R3
Exemplos¶
Os exemplos seguintes mostram como usar a expressão INVOKER_ROLE em uma expressão SQL da política de mascaramento.
Retornar NULL para usuários não autorizados:
case when invoker_role() IN ('ANALYST') then val else NULL end;
Retornar um valor estático mascarado para usuários não autorizados:
case when invoker_role() in ('ANALYST') then val else '********' end;
Retornar um valor do hash usando SHA2 , SHA2_HEX para usuários não autorizados.
case when invoker_role() in ('ANALYST') then val else sha2(val) -- return hash of the column value end;