Categorias:

Funções de contexto (Objeto da sessão)

IS_GRANTED_TO_INVOKER_ROLE

Retorna TRUE se a função retornada pela função INVOKER_ROLE herdar os privilégios da função especificada no argumento com base no contexto no qual a função é chamada.

A função INVOKER_ROLE identifica e retorna apenas a função da conta do objeto executando uma instrução SQL. As funções de banco de dados não são suportadas.

Consulte também:

IS_OBJECT

Sintaxe

IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
Copy

Argumentos

'string_literal'

O nome da função.

Notas de uso

  • Se usar a função IS_GRANTED_TO_INVOKER_ROLE com a política de mascaramento ou a política de acesso a linhas, verifique se sua conta Snowflake é Enterprise Edition ou superior.

  • Apenas um nome de função pode ser passado como argumento.

  • A tabela a seguir resume o contexto no qual você pode chamar a função e a hierarquia da função que o Snowflake avalia.

    Contexto

    Função avaliada

    Usuário

    CURRENT_ROLE

    Tabela

    CURRENT_ROLE.

    Exibição

    Função do proprietário da exibição.

    UDF

    Função do proprietário da UDF.

    Procedimento armazenado com direitos do chamador

    CURRENT_ROLE.

    Procedimento armazenado com direitos 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.

  • Se preferir avaliar a hierarquia da função da sessão atual, chame IS_ROLE_IN_SESSION em vez disso.

Exemplo

Chame a função diretamente:

IS_GRANTED_TO_INVOKER_ROLE('ANALYST')

--------------------------------------+
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') |
--------------------------------------+
                TRUE                  |
--------------------------------------+
Copy

Especifique a função no corpo da política de mascaramento:

CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
  WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
  ELSE '*******'
END;
Copy