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