Recently started to use 2pc support in SPQR [0] for transactions that need to modify data on several postgres(shards). So, for partially committed 2pc we have a separate watchdog which finishes all half-done transactions.
And we want a separate role for this watchdog. But this just fails to finish transactions that were prepared. The reason is a two phase check that compares user oid with tx owner oid with ==. This was the original security restriction from [1] (valid at time), but didn't change after [2]. Before [2], server had logic that only user himself can do something with his object, for example dropping the table was ONLY for owner. After [2], it use role membership etc. So, can we use same in 2pc (prepared) tx? Is [1] sec restriction still true? I have simple patch for this, didn't posted yet, want to hear back [1]Discussion: https://www.postgresql.org/message-id/[email protected] [2]Discussion: https://www.postgresql.org/message-id/[email protected] [0] https://github.com/pg-sharding/spqr -- Best regards, Kirill Reshke
