powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / lo_export не для superuser
6 сообщений из 6, страница 1 из 1
lo_export не для superuser
    #35273728
Vasonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реализую достаточно традиционную задачу по перекачке файла с клиента на сервер, с положением его на сервере в виде файла.

Файл передается на сервер в виде lo.

Дальше на сервере пытаюсь сохранить lo в файл.

CREATE OR REPLACE FUNCTION "public"."reply_copy_rses" (integer, oid) RETURNS integer AS
$body$
my $rses_id = $_[0];
my $dir = spi_exec_query('select current_setting(\'data_directory\')')->{rows}[0]->{current_setting}.'/base/';
my $zip_file = "$dir$rses_id.zip";
spi_exec_query("select lo_export ($_[1], \'$zip_file\')");

return $rses_id;
$body$
LANGUAGE 'plperlu' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

Но этот код будет работать только если подсоединяться пользователем с правами superuser, что по соображениям безопасности мне не подходит.
А как сделать сохранение lo на сервере не под superuser?
Использование bytea не подходит по соображениям минимизации трафика.
...
Рейтинг: 0 / 0
lo_export не для superuser
    #35273791
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SECURITY INVOKER ---> SECURITY DEFINER ?
...
Рейтинг: 0 / 0
lo_export не для superuser
    #35273809
Vasonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется ввиду
GRANT EXECUTE ON FUNCTION "pg_catalog"."lo_export"(oid, text) TO "my_liber_user"; ?
Не помогает, в логе все равно
error from Perl function "reply_copy_rses": must be superuser to use server-side lo_export() at line 11.
...
Рейтинг: 0 / 0
lo_export не для superuser
    #35273924
Vasonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто посоветует как сохранить lo в файл зная OID на сервере какими иными средствами используя plperlu или plperlu ?
...
Рейтинг: 0 / 0
lo_export не для superuser
    #35273974
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VasonikИмеется ввиду
GRANT EXECUTE ON FUNCTION "pg_catalog"."lo_export"(oid, text) TO "my_liber_user";
Я имел виду при опредении функции указать, что она исполняется от unix пользоватея postgres.
Если postgres имеет право на запись в папку, то должно работать.

Если же под superuser имеется в виду root, то постгрес от него никогда не работает.
...
Рейтинг: 0 / 0
lo_export не для superuser
    #35274076
Vasonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Понятно.. Как всегда все написано в документации :-)
http://www.postgresql.org/docs/8.3/interactive/sql-createfunction.html
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / lo_export не для superuser
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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