Re: BUG #9923: "reassign owned" does not change permissions grantor

Alexey Bashtanov <bashtanov@imap.cc>

From: Alexey Bashtanov <bashtanov@imap.cc>
To: pgsql-bugs@postgresql.org
Date: 2014-04-09T07:35:09Z
Lists: pgsql-bugs
after a series of tests and source code reading I realized that
1) the bug is not fixed in last git repository version
2) the bug could be reproduced on types and foreign servers, maybe also 
on foreign data wrappers, triggers, but not on any other objects
3) it does not matter if we assign owner using "reassign owned" or using 
"alter .. owner to ..."
4) there is a problem on revoking such incorrect grants: a workaround is 
to reassign back to old owner, then revoke, than reassign once again
5) to fix the bug we need to perform aclnewowner call in 
AlterForeignServerOwner_internal and AlterTypeOwner (including the 
typtype == TYPTYPE_COMPOSITE case, cause we pass recursing=true to 
ATExecChangeOwner)
and maybe in AlterForeignDataWrapperOwner_internal and 
AlterEventTriggerOwner_internal

sorry I do not provide the exact patch

Regards,
   Alexey Bashtanov


Commits

  1. adjust ACL owners for REASSIGN and ALTER OWNER TO