change current user in pl/pgsql function

Lists: pgsql-general
From: Sergey Karin <sergey(dot)karin(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: change current user in pl/pgsql function
Date: 2006-02-06 12:43:30
Message-ID: b78883bf0602060443l270c795ep@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Hi, List!

I use PG8.1

Are there any abilities to change current user during pl/pgsql function
execution?
I developed function that have 'security definer' option and created under
superuser. But for executing some command in the function I need to change
user to session_user and after execotion change user to superuser.

Sergey Karin


From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Sergey Karin <sergey(dot)karin(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: change current user in pl/pgsql function
Date: 2006-02-06 14:32:50
Message-ID: 20060206143250.GA31046@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

On Mon, Feb 06, 2006 at 15:43:30 +0300,
Sergey Karin <sergey(dot)karin(at)gmail(dot)com> wrote:
> Hi, List!
>
> I use PG8.1
>
> Are there any abilities to change current user during pl/pgsql function
> execution?
> I developed function that have 'security definer' option and created under
> superuser. But for executing some command in the function I need to change
> user to session_user and after execotion change user to superuser.

You can probably do what you want by having the top level function
run with the caller's security and have it call security definer functions
as necessary.