Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
lo_export не для superuser
|
|||
|---|---|---|---|
|
#18+
Реализую достаточно традиционную задачу по перекачке файла с клиента на сервер, с положением его на сервере в виде файла. Файл передается на сервер в виде 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 не подходит по соображениям минимизации трафика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2008, 12:31 |
|
||
|
lo_export не для superuser
|
|||
|---|---|---|---|
|
#18+
SECURITY INVOKER ---> SECURITY DEFINER ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2008, 12:41 |
|
||
|
lo_export не для superuser
|
|||
|---|---|---|---|
|
#18+
Имеется ввиду 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2008, 12:45 |
|
||
|
lo_export не для superuser
|
|||
|---|---|---|---|
|
#18+
Может кто посоветует как сохранить lo в файл зная OID на сервере какими иными средствами используя plperlu или plperlu ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2008, 13:06 |
|
||
|
lo_export не для superuser
|
|||
|---|---|---|---|
|
#18+
VasonikИмеется ввиду GRANT EXECUTE ON FUNCTION "pg_catalog"."lo_export"(oid, text) TO "my_liber_user"; Я имел виду при опредении функции указать, что она исполняется от unix пользоватея postgres. Если postgres имеет право на запись в папку, то должно работать. Если же под superuser имеется в виду root, то постгрес от него никогда не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2008, 13:17 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35273809&tid=2004408]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
15ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 317ms |

| 0 / 0 |
