Обсуждение: Grant on lo_export()

Поиск
Список
Период
Сортировка

Grant on lo_export()

От
Nelson Gonzaga
Дата:
Hi all,
I'm trying to use lo_import / lo_export and apparently I have permission denied:

command:
select lo_export(oid_imagem, '/tmp2/erro_export1.png') from imagem where nome_imagem = 'erro';

ERROR: must be superuser to use server-side lo_export()
SQL state: 42501
Hint: Anyone can use the client-side lo_export() provided by libpq.


It's okay when I enter the data as superuser like this:
insert into image (image_name, oid_picture) values ('error1', lo_import ('/ tmp2 / erro.png'));

and the table:
create table image (image_name varchar (20), oid_image oid);

I Use Linux Debian 7 and Postgresql 9.4

Any idea?



Re: Grant on lo_export()

От
Tom Lane
Дата:
Nelson Gonzaga <ngonzaga@yahoo.com> writes:
> Hi all,I'm trying to use lo_import / lo_export and apparently I have permission denied:
> command:select lo_export(oid_imagem, '/tmp2/erro_export1.png') fromimagem where nome_imagem = 'erro';
> ERROR: must be superuser to use server-side lo_export()
> SQL state:42501
> Hint:Anyone can use the client-side lo_export() provided by libpq.

The error message means exactly what it says.

As of v11 it'll be possible to grant usage of lo_export() to
non-superusers, but in all released branches that check is hard-wired.

Note that since you can use that function to overwrite PG data or config
files, granting use of it to someone you wouldn't trust with full
superuser would be a damfool idea anyway.

            regards, tom lane


Re: Grant on lo_export()

От
Nelson Gonzaga
Дата:
I understand that I have to use libpq for the lo_import command to work.
but I did not find .NET code to use this library.
Is there an example? Or just this in C ++ [1]?

[1] https://www.postgresql.org/docs/current/static/lo-examplesect.html


Em quarta-feira, 1 de agosto de 2018 11:06:43 BRT, Tom Lane <tgl@sss.pgh.pa.us> escreveu:


Nelson Gonzaga <ngonzaga@yahoo.com> writes:

> Hi all,I'm trying to use lo_import / lo_export and apparently I have permission denied:
> command:select lo_export(oid_imagem, '/tmp2/erro_export1.png') fromimagem where nome_imagem = 'erro';
> ERROR: must be superuser to use server-side lo_export()
> SQL state:42501
> Hint:Anyone can use the client-side lo_export() provided by libpq.


The error message means exactly what it says.

As of v11 it'll be possible to grant usage of lo_export() to
non-superusers, but in all released branches that check is hard-wired.

Note that since you can use that function to overwrite PG data or config
files, granting use of it to someone you wouldn't trust with full
superuser would be a damfool idea anyway.

            regards, tom lane