BUG #15546: alter large object n owner to new owner
The following bug has been logged on the website:
Bug reference: 15546
Logged by: Stefan Kadow
Email address: git17@ska67.de
PostgreSQL version: 9.6.10
Operating system: Debian 9.6 (Stretch)
Description:
Documentation describes:
ALTER LARGE OBJECT large_object_oid OWNER TO { new_owner | CURRENT_USER |
SESSION_USER }
You must be superuser or owner of the large object to use ALTER LARGE
OBJECT.
If you want to use this statement for assigning a "new owner", you have to
be a superuser.
If you are only the owner of the large object, you receive an error message
Postgresql-Error 42501 saying that you must be in the role of the "new
owner".
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes:
Documentation describes:
ALTER LARGE OBJECT large_object_oid OWNER TO { new_owner | CURRENT_USER |
SESSION_USER }
You must be superuser or owner of the large object to use ALTER LARGE
OBJECT.
If you want to use this statement for assigning a "new owner", you have to
be a superuser.
If you are only the owner of the large object, you receive an error message
Postgresql-Error 42501 saying that you must be in the role of the "new
owner".
Yeah, the ALTER LARGE OBJECT page could use improvement. The correct
general rule is explained in section 5.6:
An object can be assigned to a new owner with an ALTER command of the
appropriate kind for the object, e.g. ALTER TABLE. Superusers can
always do this; ordinary roles can only do it if they are both the
current owner of the object (or a member of the owning role) and a
member of the new owning role.
Most other ALTER-something pages have wording like "To alter the owner,
you must also be a direct or indirect member of the new owning role",
but this seems to have been missed in the ALTER LARGE OBJECT docs.
regards, tom lane