powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание логина из триггера
5 сообщений из 5, страница 1 из 1
Создание логина из триггера
    #39687013
NX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NX
Гость
Коллеги, помогите пожалуйста : нужно при добавлении строчки в табличку создать логин на сервере, ну и дальше пустить его в роль по базе. Не выходит, ругается мне...
Собственно, триггер таков :

-- FUNCTION: public.add_login()

-- DROP FUNCTION public.add_login();

CREATE FUNCTION public.add_login()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF
AS $BODY$
BEGIN
EXECUTE 'CREATE USER $1 WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD $2;'
USING quote_ident(NEW."UserLogin"), quote_ident(NEW."Password");
END;

$BODY$;

ALTER FUNCTION public.add_login()
OWNER TO postgres;

GRANT EXECUTE ON FUNCTION public.add_login() TO dev;

GRANT EXECUTE ON FUNCTION public.add_login() TO PUBLIC;

GRANT EXECUTE ON FUNCTION public.add_login() TO postgres;
...
Рейтинг: 0 / 0
Создание логина из триггера
    #39687016
NX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NX
Гость
Да, сама табличка такова :
INSERT INTO public."Logins"(
"Id", "Password", "Role", "UserLogin")
VALUES ('b88c84a1-d380-484a-b061-2e359301b2a5', 'pwd', 'role', 'user');
...
Рейтинг: 0 / 0
Создание логина из триггера
    #39687131
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NX,

Идея описать запросы и все что угодно кроме собственно сообщения о ошибке - она была удачной.
Но телепаты увы в отпуске все.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Создание логина из триггера
    #39687412
NX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NX
Гость
Вчера с телефона был, не мог ошибку показать :)
В итоге рабочий код триггера:

BEGIN
EXECUTE 'CREATE ROLE '|| quote_ident(NEW."UserLogin") ||
' WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD ''' || quote_ident(NEW."Password") || ''';';
RETURN NULL;
END;
...
Рейтинг: 0 / 0
Создание логина из триггера
    #39687479
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NXВчера с телефона был, не мог ошибку показать :)
В итоге рабочий код триггера:

BEGIN
EXECUTE 'CREATE ROLE '|| quote_ident(NEW."UserLogin") ||
' WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD ''' || quote_ident(NEW."Password") || ''';';
RETURN NULL;
END;

т.е. типа сегодня уже ошибку показал
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание логина из триггера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]