DROP ROLE 命令:限制删除当前主要角色(待定)

注意

此行为变更在 2025_01 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

启用此行为变更捆绑包后,DROP ROLE 命令的行为变更如下:

变更前:

用户可以执行删除当前主角色的 DROP ROLE 命令。当前主要角色是会话中当前处于活动状态的角色。例如,可以使用 USE ROLE 命令设置此角色,将其定义为用户连接的一部分,或定义为用户的默认角色。

变更后:

用户不再能执行删除当前主角色的 DROP ROLE 命令。尝试删除此角色将返回以下错误:

SQL execution error: Cannot drop role <x> as it is the current primary role.

进行此变更的原因

之所以进行此变更,是因为当前的行为具有以下后果:

  • 删除当前主要角色时,对象所有权元数据将处于不一致的状态。

  • 使用已删除主要角色的会话中断。

为此变更做好准备

要为此变更做好准备,请检查使用 DROP ROLE 命令的所有自动化流程,并确保这些命令不会试图删除当前主要角色。此外,还要检查查询历史记录,了解此行为的任何过往实例。

参考:1843

语言: 中文