Functions To Let Users Cancel/Terminate own Back Ends

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Functions To Let Users Cancel/Terminate own Back Ends
Дата
Msg-id E2F88530-BF6F-4D03-A37E-0C0D347CA6E7@kineticode.com
обсуждение исходный текст
Ответы Re: Functions To Let Users Cancel/Terminate own Back Ends  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-general
PostgreSQLers,

I have a need at my $dayjob to let users cancel their own back ends. See any issues with this function to allow them to
dothat? Any security gotchas or anything? 

CREATE OR REPLACE FUNCTION iov_cancel_user_backend(
    pid INTEGER
) RETURNS BOOLEAN LANGUAGE plpgsql SECURITY DEFINER AS $$
DECLARE
   username NAME;
BEGIN
    SELECT usename INTO username FROM iov_catalog.iov_stat_activity WHERE procpid = pid;
    IF username IS NULL THEN RETURN FALSE; END IF;

    IF username <> session_user THEN
        RAISE EXCEPTION 'You do not own back end %', pid;
    END IF;

    RETURN iov_catalog.pg_cancel_backend(pid);
END;
$$;

I plan to have one that calls pg_terminate_backend(), as well.

Thanks,

David

В списке pgsql-general по дате отправления:

Предыдущее
От: Christophe Pettus
Дата:
Сообщение: xlog min recovery request ... is past current point ...
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: Functions To Let Users Cancel/Terminate own Back Ends