Re: How to store "blobs" efficiently for small and large sizes, with random access - Mailing list pgsql-general

From Daniel Verite
Subject Re: How to store "blobs" efficiently for small and large sizes, with random access
Date
Msg-id b4525ab3-48b4-40fa-887f-37005d95543c@manitou-mail.org
Whole thread Raw
In response to How to store "blobs" efficiently for small and large sizes, with random access  (Dominique Devienne <ddevienne@gmail.com>)
Responses Re: How to store "blobs" efficiently for small and large sizes, with random access
List pgsql-general
    Dominique Devienne wrote:

> the fact the lo table is unique for the whole database would allow
> users to see blobs from any schema, as I understand it.

Direct access to pg_largeobject is only possible for superusers.
If lo_compat_privileges is on, any user can read any large
object with the lo* functions.
If it's off, they can read a large object only if they're the owner
or they have been granted permissions with

GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
    ON LARGE OBJECT loid [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY role_specification ]

Each large object has its own set of permissions. This is a significant
difference with bytea, since every creation of a new large object
may need to be followed by GRANT statements.
Also if the roles and the access policies are changed in the
lifetime of the app, that might imply massive REVOKE/GRANT
statements to apply to existing objects.


Best regards,
--
Daniel Vérité
https://postgresql.verite.pro/
Twitter: @DanielVerite



pgsql-general by date:

Previous
From: esconsult1@gmail.com
Date:
Subject: Re: How to store "blobs" efficiently for small and large sizes, with random access
Next
From: Alvaro Herrera
Date:
Subject: Re: How to store "blobs" efficiently for small and large sizes, with random access