Funções CURRENT_DATABASE e CURRENT_SCHEMA: garantia de resultados determinísticos com políticas, exibições e UDFs (adiado)¶
Nota
Essa mudança de comportamento fazia parte do pacote 2023_08, mas agora foi adiada. As atualizações ocorrerão em um pacote futuro.
O comportamento das funções CURRENT_DATABASE e CURRENT_SCHEMA é o seguinte:
- Antes da mudança:
Os valores de retorno ao chamar a função CURRENT_DATABASE ou CURRENT_SCHEMA não são determinísticos:
Quando você chama a função dentro de uma política de acesso a dados, como uma política de mascaramento ou de acesso a linhas, as funções retornam um de dois valores:
O banco de dados ou esquema que contém a política.
O banco de dados ou esquema em uso na sessão.
Quando você chama a função na definição de uma exibição ou de UDF e a palavra-chave SELECT não precede a função, a função retorna um de dois valores:
O banco de dados ou esquema em uso na sessão.
O banco de dados ou esquema que contém a UDF ou a exibição.
- Após a mudança:
Os valores de retorno ao chamar a função CURRENT_DATABASE ou CURRENT_SCHEMA são determinísticos:
Quando você chama a função dentro de uma política de acesso a dados, como uma política de mascaramento ou de acesso a linhas, as funções retornam o banco de dados ou o esquema que contém a tabela ou exibição protegida.
Quando você chama a função na definição de uma exibição ou UDF, a função retorna o banco de dados ou esquema que contém a UDF ou a exibição.
Para minimizar o impacto dessas alterações, faça o seguinte:
Se sua definição de visualização ou UDF usar qualquer uma dessas funções e a palavra-chave SELECT não preceder a função, verifique novamente para garantir que a definição da UDF esteja correta para como a função deve ser usada.
Se a sua política chamar qualquer uma dessas funções, verifique novamente para garantir que o corpo da política tenha sido gravado para o banco de dados ou esquema que contém a tabela protegida e não para o banco de dados ou esquema em uso para a sessão.
Ref: 1325