Clarification on View Privileges and Operator Execution in PostgreSQL

From: Ayush Vatsa <ayushvatsa1810(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Clarification on View Privileges and Operator Execution in PostgreSQL
Date: 2024-04-07 16:10:05
Message-ID: CACX+KaN-Lqv+k6d4b37oKFiqF6ibMkq1RVHbcTby5EjRtNQewg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi PostgreSQL community,
I am recently studying about operators and views and I had doubts in two
small things
1. I know if a view (security definer) is accessing a table then it is
getting accessed by view owners privileges
but what about the view which contains inbuilt operators or inbuilt
functions with whose privileges those will be executed. Eg.
SET ROLE postgres;
CREATE TABLE x(id INT);
CREATE VIEW v AS SELECT * FROM x WHERE id > 100;
CREATE ROLE alex;
GRANT SELECT ON v TO alex;
SET ROLE alex;
SELECT * FROM v;

Now table x will be accessed (SELECT * FROM x) with "postgres" privileges
but who will execute the
underlying function inside the ( > ) operator ? Is it postgres or alex?

2. What if I used a user defined operator in the above example, then with
whose privileges that operator will be executed?

Thanks
Ayush Vatsa
SDE AWS

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David G. Johnston 2024-04-07 16:25:23 Re: Clarification on View Privileges and Operator Execution in PostgreSQL
Previous Message Tom Lane 2024-04-07 15:18:13 Re: Query regarding functions of postgres