Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> logowanie do bazy bez nazwy user'a
sbs2005
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.06.2011

Ostrzeżenie: (0%)
-----


Witam serdecznie.

Przegladalem caly dzial dotyczacy Postgresa.
Otoz borykam sie z tym od kilku dni i jestem w kropce.
Przejalem obsluge psql po adminie, ktory korzystal z cgi i c++ do obslugi bazy.
Ja natomiast chcialbym troche to zrobic po swojemu no i jest problem.
W c++ by polaczyc sie z okreslona baza wykorzystuje sie polecenie mag.connect, po tym okresla sie zmienna user i haslo. Po wpisaniu okreslonego user'a jak i hasla w formularzu logowania nastepuje polaczenie z okreslona baza. (Baza psql posiada zapisanych w "pg_user" okolo 10 uzytkownikow).
Z tego co wyczytalem w necie przy php nie ma takiej mozliwosci - musze utworzyc dodatkowa baze uzytkownikow i korzystajac z niej logowac sie do bazy przez www.
Czy moje rozumowanie jest prawidlowe, jezeli tak to troche bez sensu tworzyc dodatkowa baze uzytkownikow, jezeli sam psql przechowuje te informacje w swoich zasobach.
Pomimo, ze funkcja pg_connect pozwala stosowac zmienne odnosnie uzytkownika i hasla to jednak nie pozwala dostac sie bezposrednio do zapisanych w psql'u uzytkownikow. Prosze o rozwianie moich watpliwosci.

Pozdrawiam
Jacek

ps. klawiatura bez polskich znakow

Ten post edytował sbs2005 16.06.2011, 18:24:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Źle rozumujecie. Każdy taki użytkownik będzie miał możliwość połączenia się z bazą danych za pomocą dowolnego klienta. Jeśli dodatkowo nie będziesz kontrolował uprawnień tych użytkowników, to będą z tego niezłe "jaja" - za przeproszeniem. Wspomniane jaja będą już nawet wtedy, gdy skontrolujesz uprawnienia tych użytkowników (ograniczając im możliwość wykonywania zapytań do SELECT, UPDATE, INSERT). Załóżmy, że dany użytkownik prowadzi blog (jak i inni użytkownicy). I teraz jeśli on ma możliwość edycji własnego wpisu, to i ma możliwość edycji wpisów innych użytkowników (z poziomu dowolnego klienta), no chyba, że każdemu użytkownikowi będziesz tworzył osobną tabelę (a nawet kilka, czy kilkanaście tabel) lub nawet osobną bazę danych z takimi samymi tabelami, jak w przypadku innych użytkowników i przydzielał mu uprawnienia tylko do tych tabel czy baz danych. W ogóle "kosmos". Daj takiemu użytkownikowi uprawnienie do DELETE i szlag trafi wszystko.

Użytkownicy systemu baz danych (Ci z tabeli pg_user w przypadku PostgreSQL) to tacy, których dane nie powinny być nigdzie ujawnione na poziomie aplikacji (czy to w PHP, czy w C++, czy w czymkolwiek innym).

Użytkownicy aplikacji "niejawnie" posługują się danymi użytkownika systemu baz danych (zazwyczaj i tak posiadającego niezbędne minimum uprawnień), aby łączyć się z określoną bazą danych (może ich być więcej) i operować w ramach tylko i wyłącznie tej bazy (tych baz). To co użytkownik może zrobić, zależy od tego jak oprogramujesz obsługę takiego użytkownika we własnej aplikacji.

Tabela pg_user powinna być zatem wykorzystywana w aplikacjach służących do zarządzania systemem baz danych PostgreSQL.

Obsługę użytkowników danej aplikacji należy zorganizować na poziomie tej aplikacji (np. tabela users w odpowiedniej bazie danych), a nie systemu baz danych.

Ten post edytował mortus 17.06.2011, 10:46:47
Go to the top of the page
+Quote Post
sbs2005
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.06.2011

Ostrzeżenie: (0%)
-----


Cytat(mortus @ 17.06.2011, 11:39:35 ) *
Tabela pg_user powinna być zatem wykorzystywana w aplikacjach służących do zarządzania systemem baz danych PostgreSQL.


Tobie rowniez dziekuje za odpowiedz.
Troszeczke opowiem o calym systemie - nie pisalem wczesniej bo to nie bylo przedmiotem dywagacji.
Wszyscy uzytkownicy posiadaja odpowiednie uprawnienia na poziomie pg_user wedlug okreslonych kryteriow - kazdy user ma okreslone uprawnienia do poszczegolnych tabel w bazach.
Uzytkownik teraz - logujac sie poprzez odczytanie z pg_user informacji i uprawnien do okreslonej tabeli w bazie nie zrobi niczego innego co ma do wykonania - tak to ma dzialac i dziala.
System bazodanowy jest systemem w archiwum instytucji - tylko pracownicy jednostki maja dostep do bazy w sieci Intranetowej. Pracownicy dodaja okreslone rekordy do bazy lub wyszukuja informacji tylko i wylacznie wedlug okreslonych uprawnien nadanych do poszczegolnych tabel w bazach - jak juz wspomnialem. Nie ma mozliwosci by user z uprawnieniami "do odczytu" mogl dodac rekord do bazy. Poza tym Panie wiedza co maja robic w swoim zakresie obowiazkow.
To nie jest baza do uzytku zewnetrznego - ma za zadanie gromadzic informacje i je przechowywac i to czyni sukcesywnie (w sumie to kilka baz - wiadomo o co chodzi).

Chodzi tylko o ten dostep z poziomu PHP do bazy bezposrednio z pg_user - jak to zrobic.
Naprawde nie ma mozliwosci....

Jacek

Ten post edytował sbs2005 17.06.2011, 11:21:42
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 14:03