On Fri, Nov 26, 2021 at 1:36 AM Jeff Davis <pg...@j-davis.com> wrote: > > > as soon as possible instead of at the transaction > > boundary. > > I don't understand why it's important to detect a loss of privileges > faster than a transaction boundary. Can you elaborate? >
The first reason is that way it would be consistent with what we can see while doing the operations from the backend. For example, if we revoke privileges from the user during the transaction, the results will be reflected. postgres=> Begin; BEGIN postgres=*> insert into t1 values(1); INSERT 0 1 postgres=*> insert into t1 values(2); ERROR: permission denied for table t1 In this case, after the first insert, I have revoked the privileges of the user from table t1 and the same is reflected in the very next operation. Another reason is to make behavior predictable as users can always expect when exactly the privilege change will be reflected and it won't depend on the number of changes in the transaction. -- With Regards, Amit Kapila.