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