Owner of table x
is user dave
.
Only SELECT
is granted to cloudsqlsuperuser
, however user anton
is able to update data in table x
. How it's possible?
=> \du
List of roles
Role name | Attributes | Member of
---------------------------+------------------------------------------------------------+---------------------------------------
anton | Create role, Create DB | {cloudsqlsuperuser}
cloudsqladmin | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
cloudsqlagent | Create role, Create DB | {cloudsqlsuperuser}
cloudsqliamserviceaccount | Cannot login | {}
cloudsqliamuser | Cannot login | {}
cloudsqlimportexport | Create role, Create DB | {cloudsqlsuperuser}
cloudsqlreplica | Replication | {pg_monitor}
cloudsqlsuperuser | Create role, Create DB | {pg_monitor,pg_signal_backend}
dave | Create role, Create DB | {cloudsqlsuperuser,postgres}
=> \dt
List of relations
Schema | Name | Type | Owner
--------+--------------------------+-------+-----------
public | x | table | dave
=> \z x
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
--------+--------------+-------+-------------------------------+-------------------+----------
public | x | table | dave=arwdDxt/dave +| |
| | | =arwdDxt/dave +| |
| | | cloudsqlsuperuser=r/dave +| |
(1 row)
I am able to do UPDATE as anton
user. Shouldn't it be forbidden?
=> update x set ...
UPDATE 1