Thread
Commits
-
Simplify permissions for LOCK TABLE.
- c44f6334ca6f 16.0 landed
-
Rework confusing permissions for LOCK TABLE
Jeff Davis <pgsql@j-davis.com> — 2022-12-14T02:59:48Z
The existing permissions for LOCK TABLE are surprising/confusing. For instance, if you have UPDATE privileges on a table, you can lock in any mode *except* ACCESS SHARE. drop table x cascade; drop user u1; create user u1; create table x(i int); grant update on x to u1; set session authorization u1; begin; lock table x in access exclusive mode; -- succeeds commit; begin; lock table x in share mode; -- succeeds commit; begin; lock table x in access share mode; -- fails commit; I can't think of any reason for this behavior, and I didn't find an obvious answer in the last commits to touch that (2ad36c4e44, fa2642438f). Patch attached to simplify it. It uses the philosophy that, if you have permissions to lock at a given mode, you should be able to lock at strictly less-conflicting modes as well. -- Jeff Davis PostgreSQL Contributor Team - AWS
-
Re: Rework confusing permissions for LOCK TABLE
Nathan Bossart <nathandbossart@gmail.com> — 2022-12-14T17:23:15Z
On Tue, Dec 13, 2022 at 06:59:48PM -0800, Jeff Davis wrote: > I can't think of any reason for this behavior, and I didn't find an > obvious answer in the last commits to touch that (2ad36c4e44, > fa2642438f). I can't think of a reason, either. > Patch attached to simplify it. It uses the philosophy that, if you have > permissions to lock at a given mode, you should be able to lock at > strictly less-conflicting modes as well. +1. Your patch looks reasonable to me. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
-
Re: Rework confusing permissions for LOCK TABLE
Nathan Bossart <nathandbossart@gmail.com> — 2022-12-30T18:51:43Z
I filed a commitfest entry for this so that it doesn't get lost: https://commitfest.postgresql.org/41/4093 -- Nathan Bossart Amazon Web Services: https://aws.amazon.com