DROP ROLE 命令:限制删除当前主要角色(待定)¶
启用此行为变更捆绑包后,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