Thread: pgsql: Adjust permissions checking for ALTER OWNER commands: instead of
pgsql: Adjust permissions checking for ALTER OWNER commands: instead of
From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message: ----------- Adjust permissions checking for ALTER OWNER commands: instead of requiring superuserness always, allow an owner to reassign ownership to any role he is a member of, if that role would have the right to create a similar object. These three requirements essentially state that the would-be alterer has enough privilege to DROP the existing object and then re-CREATE it as the new role; so we might as well let him do it in one step. The ALTER TABLESPACE case is a bit squirrely, but the whole concept of non-superuser tablespace owners is pretty dubious anyway. Stephen Frost, code review by Tom Lane. Modified Files: -------------- pgsql/src/backend/commands: aggregatecmds.c (r1.27 -> r1.28) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/aggregatecmds.c.diff?r1=1.27&r2=1.28) conversioncmds.c (r1.20 -> r1.21) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/conversioncmds.c.diff?r1=1.20&r2=1.21) dbcommands.c (r1.166 -> r1.167) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c.diff?r1=1.166&r2=1.167) functioncmds.c (r1.63 -> r1.64) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/functioncmds.c.diff?r1=1.63&r2=1.64) opclasscmds.c (r1.34 -> r1.35) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/opclasscmds.c.diff?r1=1.34&r2=1.35) operatorcmds.c (r1.23 -> r1.24) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/operatorcmds.c.diff?r1=1.23&r2=1.24) schemacmds.c (r1.32 -> r1.33) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/schemacmds.c.diff?r1=1.32&r2=1.33) tablecmds.c (r1.163 -> r1.164) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c.diff?r1=1.163&r2=1.164) tablespace.c (r1.25 -> r1.26) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablespace.c.diff?r1=1.25&r2=1.26) typecmds.c (r1.75 -> r1.76) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c.diff?r1=1.75&r2=1.76) pgsql/src/backend/utils/adt: acl.c (r1.118 -> r1.119) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/acl.c.diff?r1=1.118&r2=1.119) pgsql/src/include/utils: acl.h (r1.81 -> r1.82) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/acl.h.diff?r1=1.81&r2=1.82)