Create user or role from inside a function?

Поиск
Список
Период
Сортировка
От Dan
Тема Create user or role from inside a function?
Дата
Msg-id 39844.203.143.226.132.1157105594.squirrel@secure.x32i.net
обсуждение исходный текст
Ответы Re: Create user or role from inside a function?  (Roman Neuhauser <neuhauser@sigpipe.cz>)
Re: Create user or role from inside a function?  (Martijn van Oosterhout <kleptog@svana.org>)
Re: Create user or role from inside a function?  (Karsten Hilbert <Karsten.Hilbert@gmx.net>)
Re: Create user or role from inside a function?  (Andreas Kretschmer <akretschmer@spamfence.net>)
Список pgsql-general
Hey,

I am running PostgreSQL 8.1.4 and I want to create a user from inside a
function. Is this possible in 8.1?

Ive found quite a few references on google using EXECUTE, but this seems
relevant to earlier versions, not 8.1.

I have a function like this:

CREATE FUNCTION user_create (un varchar, uid bigint, pw varchar) RETURNS
VARCHAR LANGUAGE plpgsql AS '
  BEGIN
    EXECUTE "CREATE USER " || un || " WITH PASSWORD " || pw;

    RETURN un;
  END
';

Executing this function yields:

# SELECT user_create('bob',1234,'bobspassword');
ERROR:  column "CREATE USER " does not exist
CONTEXT:  SQL statement "SELECT  "CREATE USER " ||  $1  || " WITH PASSWORD
" ||  $2 "
PL/pgSQL function "user_create" line 2 at execute statement

Directly executing CREATE USER in this function also fails.. CREATE USER
$1 appears to be what is being executed.

Any tips would be appreciated.

Cheers,

Dan

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

Предыдущее
От: "SunWuKung"
Дата:
Сообщение: Re: number of elements in a multidimensional array
Следующее
От: Roman Neuhauser
Дата:
Сообщение: Re: Create user or role from inside a function?