IS_DATABASE_ROLE_IN_SESSION: resolução de nomes com política e avaliação de UDF (pendente)

Atenção

Essa mudança de comportamento está no pacote 2024_01.

Para saber o status atual do pacote, consulte Histórico do pacote.

O comportamento da função IS_DATABASE_ROLE_IN_SESSION com uma política de mascaramento, política de acesso a linhas e UDF é o seguinte:

Antes da mudança:
  • Você não pode usar o nome completo da função de banco de dados como argumento para a função, no formato database_name.database_role_name, a menos que o nome do banco de dados seja o mesmo banco de dados que contém a política ou UDF.

  • A avaliação da função depende se a função de banco de dados existe no banco de dados especificado. Se você especificar um nome relativo como argumento para a função, a função sempre será avaliada para o banco de dados que contém a política ou UDF; a função de banco de dados deve estar no mesmo banco de dados que a política ou UDF.

Após a mudança:
  • Você pode usar o nome totalmente qualificado da função de banco de dados como argumento; no entanto, a função sempre é avaliada como False.

  • Ao especificar o nome relativo da função de banco de dados como argumento, a função verifica se a função de banco de dados está no mesmo banco de dados que a tabela protegida ou o banco de dados que contém a UDF.

Se sua UDF ou condições de política chamarem a função, confirme se as funções de banco de dados existem no mesmo banco de dados que a UDF ou tabela protegida. Se necessário, recrie as funções de banco de dados no banco de dados que contém a UDF ou a tabela protegida.

Importante

Se você estiver usando essa função com Secure Data Sharing, é importante que tanto o provedor quanto o consumidor ativem ou desativem o pacote para garantir um comportamento consistente.

Ref: 1499