postgres=> set role alice;
SET
postgres=> table passwd;
-ERROR: permission denied for relation passwd
+ERROR: permission denied for table passwd
postgres=> select user_name,real_name,home_phone,extra_info,home_dir,shell from passwd;
user_name | real_name | home_phone | extra_info | home_dir | shell
-----------+-----------+--------------+------------+-------------+-----------
(3 rows)
postgres=> update passwd set user_name = 'joe';
-ERROR: permission denied for relation passwd
+ERROR: permission denied for table passwd
-- Alice is allowed to change her own real_name, but no others
postgres=> update passwd set real_name = 'Alice Doe';
UPDATE 1
postgres=> update passwd set shell = '/bin/xx';
ERROR: new row violates WITH CHECK OPTION for "passwd"
postgres=> delete from passwd;
-ERROR: permission denied for relation passwd
+ERROR: permission denied for table passwd
postgres=> insert into passwd (user_name) values ('xxx');
-ERROR: permission denied for relation passwd
+ERROR: permission denied for table passwd
-- Alice can change her own password; RLS silently prevents updating other rows
postgres=> update passwd set pwhash = 'abc';
UPDATE 1