ďťż
 
[pgsql] BLOBy i uprawnienia ďťż
 
[pgsql] BLOBy i uprawnienia
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[pgsql] BLOBy i uprawnienia



yamma - 29-03-2006 00:26
[pgsql] BLOBy i uprawnienia
  Witam!
Moje pytanie dotyczy sposobu przechowywania BLOBów w postgresie. Mam sobie
bazę danych, która przechowuje jakieś zdjęcia. Chciałbym aby część takich
zdjęć była dostępna dla wszystkich a część tylko po zalogowaniu. W tym celu
tworzę dwie tabelę "tb_all" - dla wszystkich i "tb_logged" - dla
zalogowanych oraz dwóch postgresowych użytkowników, dajmy na to: "www" - dla
wszystkich i "logged" - dla zalogowanych. Nadaję odpowiednie uprawnienia, a
więc "GRANT SELECT ON tb_all TO www" oraz "GRANT SELECT ON tb_logged TO
logged". Jak dotąd sprawa jest oczywista: uzytkownik "www" nie będzie miał
prawa do przeglądania tabeli "tb_logged". Problem pojawia się gdy chcę
przechowywać w bazie BLOBy (zdjęcia). Jedynym sposobem wyświetlenia takich
zdjęć na stronie WWW jest odpowiedni skrypt (np. php), któremu podaję oid
danego rekordu, który to skrypt jest przypisany do atrybutu SRC znacznika
IMG. Skrypt na podstawie numerku "oid" pobiera poprzez funkcję lo_read()
odpowiedni obrazek i wypluwa na stronie. Problem polega na tym, że funkcje
do obsługi BLOBów w ogóle nie przejmują się uprawnieniami. A przynajmniej ja
nic takiego nie znalazłem. Jeśli chcę aby skrypt mogli wykonywać wszyscy, to
równie dobrze każdy może obejrzeć sobie dowolny obrazek w bazie, niezależnie
od tego, czy jest zalogowany czy nie. Wystarczy, że losowo będzie sobie
zmieniał "oid" w URLu. Pytanie: czy gdzieś popełniłem błąd w swoim
rozumowaniu czy to jest aż taka dziura?
yamma





=?ISO-8859-2?Q?Grzegorz_Prze=BCdziecki?= - 29-03-2006 00:26

  Witaj
Nie wiem która wersja PostgreSQL'a jest przez ciebie używana
ale używanie lo_read() i do tego php to się dawno temu robiło

teraz używaj pola bytea w którym można przechowywać zdjęcia
http://www.postgresql.org/docs/8.1/i...pe-binary.html
a w manualu do php sobie doczytaj
np
http://www.php.net/manual/en/functio...cape-bytea.php
jak obsługiwać pliki

yamma wrote:
> Witam!
> Moje pytanie dotyczy sposobu przechowywania BLOBów w postgresie. Mam sobie
> bazę danych, która przechowuje jakieś zdjęcia. Chciałbym aby część takich
> zdjęć była dostępna dla wszystkich a część tylko po zalogowaniu. W tym celu
> tworzę dwie tabelę "tb_all" - dla wszystkich i "tb_logged" - dla
> zalogowanych oraz dwóch postgresowych użytkowników, dajmy na to: "www" - dla
> wszystkich i "logged" - dla zalogowanych. Nadaję odpowiednie uprawnienia, a
> więc "GRANT SELECT ON tb_all TO www" oraz "GRANT SELECT ON tb_logged TO
> logged". Jak dotąd sprawa jest oczywista: uzytkownik "www" nie będzie miał
> prawa do przeglądania tabeli "tb_logged". Problem pojawia się gdy chcę
> przechowywać w bazie BLOBy (zdjęcia). Jedynym sposobem wyświetlenia takich
> zdjęć na stronie WWW jest odpowiedni skrypt (np. php), któremu podaję oid
> danego rekordu, który to skrypt jest przypisany do atrybutu SRC znacznika
> IMG. Skrypt na podstawie numerku "oid" pobiera poprzez funkcję lo_read()
> odpowiedni obrazek i wypluwa na stronie. Problem polega na tym, że funkcje
> do obsługi BLOBów w ogóle nie przejmują się uprawnieniami. A przynajmniej ja
> nic takiego nie znalazłem. Jeśli chcę aby skrypt mogli wykonywać wszyscy, to
> równie dobrze każdy może obejrzeć sobie dowolny obrazek w bazie, niezależnie
> od tego, czy jest zalogowany czy nie. Wystarczy, że losowo będzie sobie
> zmieniał "oid" w URLu. Pytanie: czy gdzieś popełniłem błąd w swoim
> rozumowaniu czy to jest aż taka dziura?
> yamma
>
>




yamma - 29-03-2006 00:26

 
Użytkownik "Grzegorz Przeździecki" <grzegorz@przezdziecki.pl> napisał w
wiadomości news:e0b94a$psa$1@atlantis.news.tpi.pl...
> Witaj
> Nie wiem która wersja PostgreSQL'a jest przez ciebie używana
> ale używanie lo_read() i do tego php to się dawno temu robiło
>
> teraz używaj pola bytea w którym można przechowywać zdjęcia
> http://www.postgresql.org/docs/8.1/i...pe-binary.html
> a w manualu do php sobie doczytaj
> np
> http://www.php.net/manual/en/functio...cape-bytea.php
> jak obsługiwać pliki

Na szczęście mój ISP ma wersję 7.3.4, więc powinno pójść. Dzięki!
yamma
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?= [sql][pgsql] zapytanie sql [pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?= [pgsql] =?ISO-8859-2?Q?Prawid=B3owe_post=EApowanie_w_przyp?==?ISO-8859-2?Q?adku_awarii?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= [pgsql] 7.4 =?ISO-8859-2?Q?og=B3upia=B3_przy_zak=B3adaniu_?==?ISO-8859-2?Q?indeksu?= [pgsql] Zmiana schematu do =?ISO-8859-2?Q?kt=F3rego_nalezy_o?==?ISO-8859-2?Q?biekt=2E?= Która z baz: [PGSQL] czy [MySQL] będzie lepsza w takim zastosowaniu (masowe UPDATE) PL/pgSQL jak =?ISO-8859-2?Q?u=BFy=E6_transakcji=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • autwywalczyl.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com