- Categorias:
CURRENT_AVAILABLE_ROLES¶
Retorna uma lista de todas as funções de nível de conta concedidas ao usuário atual. A lista inclui todas as funções concedidas diretamente ao usuário, além de todas as funções de nível de conta mais baixas nas hierarquias dessas funções.
- Consulte também:
Sintaxe¶
CURRENT_AVAILABLE_ROLES()
Argumentos¶
Nenhum.
Retornos¶
Retorna uma cadeia de caracteres (VARCHAR) que é uma lista codificada em JSON de funções disponíveis em nível de conta. O valor retornado pode ser passado para a função PARSE_JSON para obter um VARIANT que contém uma lista de todas as funções disponíveis.
Notas de uso¶
Esta função retorna uma lista de funções de nível de conta somente quando consultada por um usuário. Consultar a função utilizando um serviço que não tem usuário ativo pode resultar em uma consulta com falha. Por exemplo, a função não retorna uma lista de funções quando consultada dentro de uma tarefa, porque a execução da tarefa é executada por um serviço do sistema que não está associado a um usuário. Neste caso, a consulta poderia ser demorada porque o plano de consulta não pode ser completado.
Esta função não retorna os nomes de funções de banco de dados, funções de aplicativo ou funções de instância de classe.
Essa função não é responsável pela ativação de funções em uma sessão.
Por exemplo, se especificar esta função nas condições de uma política política de mascaramento ou de uma política de acesso a linhas, a política poderá restringir inadvertidamente o acesso.
Se a ativação e a hierarquia de funções for necessária nas condições da política, use IS_ROLE_IN_SESSION.
Exemplos¶
Retornar a lista de funções concedidas ao usuário atual:
SELECT CURRENT_AVAILABLE_ROLES(); +----------------------------------------------------------+ | ROW | CURRENT_AVAILABLE_ROLES() | +-----+----------------------------------------------------+ | 1 | [ "PUBLIC", "ANALYST", "DATA_ADMIN", "DATA_USER" ] | +-----+----------------------------------------------------+
Use a função PARSE_JSON para retornar um VARIANT e a função FLATTEN para obter uma única linha para cada função:
SELECT INDEX,VALUE,THIS FROM TABLE(FLATTEN(input => PARSE_JSON(CURRENT_AVAILABLE_ROLES()))); +-----+-------+------------------------+---------------------------+ | ROW | INDEX | VALUE | THIS | +-----+-------+------------------------+---------------------------+ | 1 | 0 | "PUBLIC" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 2 | 1 | "ANALYST" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 3 | 2 | "DATA_ADMIN" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 4 | 3 | "DATA_USER" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+