Hello all,
James Sewell,
PostgreSQL Team Lead / Solutions Architect
______________________________________
I have a table which makes use of pg_largeobjects. I am inserting rows into the table as user1. If I connect to the database as user2 I can SELECT data, but can not open the large object for reading (user1 can do this). I don't want to set lo_compat_privileges as then user3 (who can't SELECT from the services tables) would be able to read the large object.
I realise that pg_largeobjects is "partially obsolete" and I could solve the problem by just using TOAST, but this still seems incorrect.
As an aside, is there any reason to use pg_largeobjects if I am storing data under 1GB which doesn't require random reads any more? My impression is no?
SELECT * from services where payload = '51414';
-[ RECORD 1 ]--------------+------------------------
id | 2263
insert_date | 2013-08-16 15:39:56.774
instance | createApp4
payload | 51414
update_date | 2013-09-09 09:39:31.454
pe_service_transactions_id | 2262]
\lo_list
Large objects
-[ RECORD 1 ]--------
ID | 51414
Owner | user1
Description |
SELECT loread(lo_open(51414, 262144), 999999999);
ERROR: permission denied for large object 51414
James Sewell,
PostgreSQL Team Lead / Solutions Architect
______________________________________
The contents of this email are confidential and may be subject to legal or professional privilege and copyright. No representation is made that this email is free of viruses or other defects. If you have received this communication in error, you may not copy or distribute any part of it or otherwise disclose its contents to anyone. Please advise the sender of your incorrect receipt of this correspondence.