非互換
ロールに付与された権限に対して依存関係のチェックが強化されました。
付与されていた権限を使用してオブジェクトを作成していた場合に、ロールからその権限を削除するとエラーとなる場合があります。
postgres=# CREATE ROLE role_1; CREATE ROLE postgres=# CREATE ROLE role_2 WITH ADMIN role_1; CREATE ROLE postgres=# CREATE ROLE grp WITH ADMIN role_1; CREATE ROLE postgres=# SET ROLE role_1; SET postgres=> GRANT grp TO role_2 GRANTED BY role_1; GRANT ROLE postgres=> SET ROLE postgres; SET postgres=# REVOKE ADMIN OPTION FOR grp FROM role_1; REVOKE ROLE
postgres=# CREATE ROLE role_1; CREATE ROLE postgres=# CREATE ROLE role_2 WITH ADMIN role_1; CREATE ROLE postgres=# CREATE ROLE grp WITH ADMIN role_1; CREATE ROLE postgres=# SET ROLE role_1; SET postgres=> GRANT grp TO role_2 GRANTED BY role_1; GRANT ROLE postgres=> SET ROLE postgres; SET postgres=# REVOKE ADMIN OPTION FOR grp FROM role_1; ERROR: dependent privileges exist HINT: Use CASCADE to revoke them too.
対処方法
REVOKEコマンドにCASCADEオプションを指定してください。