Função IS_GRANTED_TO_INVOKER_ROLE: mudança na saída¶
Atenção
Essa mudança de comportamento está no pacote 2023_04.
Para saber o status atual do pacote, consulte Histórico do pacote.
O comportamento da função IS_GRANTED_TO_INVOKER_ROLE é o seguinte:
- Anteriormente:
A função é avaliada como FALSE quando o argumento corresponde a uma função no seguinte contexto:
Chamando a função por si só: a hierarquia de funções da função principal ativa (ou seja, CURRENT_ROLE()).
Direitos do chamador do procedimento armazenado.
Direitos do proprietário do procedimento armazenado.
Proprietário da tarefa.
Se a função for usada em uma política de mascaramento que protege uma tabela, a função avaliará a hierarquia de funções do proprietário da política. Se a função no argumento da função estiver na hierarquia de funções da função que possui a política, a função será avaliada como TRUE. Caso contrário, a função é avaliada como FALSE.
- Atualmente:
A avaliação da função usa a hierarquia de funções principal para a sessão nos seguintes contextos:
Chamando a função sozinha.
Tabela
Procedimento armazenado com direitos do chamador.
Se a função for usada em um procedimento armazenado com direitos de proprietário, a função avaliará a hierarquia de função da função que possui o procedimento armazenado com direitos de proprietário.
Da mesma forma, se a função for usada com uma tarefa, ela avaliará a hierarquia de funções da função que possui a tarefa.
Para identificar políticas de mascaramento existentes que usam a função IS_GRANTED_TO_INVOKER_ROLE, execute as seguintes instruções:
USE ROLE ACCOUNTADMIN;
SELECT *
FROM snowflake.account_usage.masking_policies
WHERE policy_body ilike '%is_granted_to_invoker_role%';
Ref: 984