Comando DROP ROLE: restrição ao descarte da função primária atual (pendente)¶
Atenção
Essa mudança de comportamento está no pacote 2025_01.
Para saber o status atual do pacote, consulte Histórico do pacote.
Quando esse pacote de mudança de comportamento é habilitado, o comportamento do comando DROP ROLE muda da seguinte forma:
- Antes da mudança:
Os usuários podem executar um comando DROP ROLE que descarta a função primária atual. A função primária atual é a função que está ativa no momento para uma sessão. Por exemplo, essa função pode ser definida com o comando USE ROLE, definida como parte de uma conexão de usuário ou definida como a função padrão de um usuário.
- Após a mudança:
Os usuários não podem mais executar um comando DROP ROLE que descarta a função primária atual. Uma tentativa de descartar essa função retorna o seguinte erro:
SQL execution error: Cannot drop role <x> as it is the current primary role.
Motivos para essa mudança¶
Essa mudança está sendo feita porque o comportamento atual tem as seguintes consequências:
Os metadados de propriedade do objeto são deixados em um estado inconsistente quando a função primária atual é descartada.
As sessões que estavam usando a função primária descartada são interrompidas.
Preparação para essa mudança¶
Para se preparar para essa mudança, verifique todos os seus processos automatizados quanto ao uso do comando DROP ROLE e certifique-se de que esses comandos não tentem descartar a função primária atual. Verifique também seu histórico de consultas para ver se há alguma instância anterior desse comportamento.
Ref: 1843