current_setting('role')
[2] tak je tam ta skupinová nesuperuser role.8. 9. 2021 v 17:44, Jiří Fejfar <juraf...@gmail.com>:
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CA%2B8wVNXgP2jy4cX9w5VnDW2xkPqceko%3Dixsm8z7LiMeyg_f8ow%40mail.gmail.com.
Ahoj, chtěl bych se zeptat:pokud udělám SECURITY DEFINER funkci, tak ona běží s právy toho, kdo ji vytvořil (jak je napsané v dokumentaci [1]) nebo toho, kdo je vlastník té funkce? Je to myšleno tak, že kdo funkci vytvořil = vlastník?Vytvářím takovou funkci pod superuserem, protože v té funkci potřebuju měni vlastníka large objectů. Pak nastavuju vlastníka té funkce na skupinovou roli administrátorů DB, která ale už není superuser. A ono to toho vlastníka LO nechce změnit, že bych musel být vlastníkem LO. A když si dám vypsatcurrent_setting('role')
[2] tak je tam ta skupinová nesuperuser role.On asi postgres v metadatech neeviduje samostatně, kdo funkci vytvořil, že? Předpokládá se, že to je ten vlastník...
Díky, J.[1] " the user that created it " https://www.postgresql.org/docs/9.6/sql-createfunction.html
--
středa 8. září 2021 Pavel Stehule <pavel....@gmail.com> napsal(a):
>
>
> st 8. 9. 2021 v 17:44 odesílatel Jiří Fejfar <juraf...@gmail.com> napsal:
>>
>> Ahoj, chtěl bych se zeptat:
>> pokud udělám SECURITY DEFINER funkci, tak ona běží s právy toho, kdo ji vytvořil (jak je napsané v dokumentaci [1]) nebo toho, kdo je vlastník té funkce? Je to myšleno tak, že kdo funkci vytvořil = vlastník?
>>
>> Vytvářím takovou funkci pod superuserem, protože v té funkci potřebuju měni vlastníka large objectů. Pak nastavuju vlastníka té funkce na skupinovou roli administrátorů DB, která ale už není superuser. A ono to toho vlastníka LO nechce změnit, že bych musel být vlastníkem LO. A když si dám vypsat current_setting('role')[2] tak je tam ta skupinová nesuperuser role.
>>
>> On asi postgres v metadatech neeviduje samostatně, kdo funkci vytvořil, že? Předpokládá se, že to je ten vlastník...
>
> juju - v Postgresu neni evidovan creator a zrovna tak neni nikde ulozene create time. Pracuje se pouze s vlastnikem - s tim, ze implicitnim prvnim vlastnikem je autor objektu (nicmene vlastnik se muze zmenit)
>
Diky za vysvetleni. Nepripadne vam, ze je to v te dokumentaci trochu zavadejici? Je tam primo napsane "the user that created it"... kdyby tam, bylo "owner" tak, je to jasne. Mam zkusit vykomunikovat upravu? Dava to smysl?
J.
> Pavel
>>
>> Díky, J.
>> [1] " the user that created it " https://www.postgresql.org/docs/9.6/sql-createfunction.html
>> [2] https://stackoverflow.com/questions/22501705/how-to-check-role-of-current-postgresql-user-from-qt-application
>>
>> --
>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
>> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CA%2B8wVNXgP2jy4cX9w5VnDW2xkPqceko%3Dixsm8z7LiMeyg_f8ow%40mail.gmail.com.
>
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRCHdp21NOo%3DE0%2Bm6z9Sd%2BNaNr2LiE-xBupQKtuUYU9r%2Bg%40mail.gmail.com.
> --
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CA%2B8wVNVGZY4gO%3Dq7rwjg0GJHXuXHBBH5Gt2U%3Dw-aNtaxq1Ebgg%40mail.gmail.com.
SECURITY DEFINER
specifies that the function is to be executed with the privileges of the user that owns it.8. 9. 2021 v 20:08, Jiří Fejfar <juraf...@gmail.com>:
Ta veta je uz upravena v dokumentaci pro novejsi verze postgresu. Na priklad pro 12:SECURITY DEFINER
specifies that the function is to be executed with the privileges of the user that owns it.Ty citujes dokumentaci 9.6. ale i tam to fungovalo jako v novejsich verzich. snad maji zajem na oprave stare dokumentace.
8. 9. 2021 v 20:08, Jiří Fejfar <juraf...@gmail.com>:Diky za vysvetleni. Nepripadne vam, ze je to v te dokumentaci trochu zavadejici? Je tam primo napsane "the user that created it"... kdyby tam, bylo "owner" tak, je to jasne. Mam zkusit vykomunikovat upravu? Dava to smysl?
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/44BCBD30-3B7E-4358-A249-74FFE574CC41%40gmail.com.