Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.08.2011 Ostrzeżenie: (0%)
|
Witam,
posiadam utworzoną bazę danych : załóżmy że są tam tabele Pracownik(idpracownik, imie, nazwisko), oraz Zlecenie(idzlecenie, idpracownik, opis). Stworzyłem program, z którego będzie korzystało wiele osób - umożliwia on dodawanie rekordów do tabel, edytowanie i usuwanie. Zawiera on moduł logowania, w którym wpisuje się identyfikator pracownika - na jego podstawie pobierane są rekordy z bazy danych - w ten sposób użytkownik pracuje wyłącznie na rekordach dla niego przeznaczonych. Problemem jest zabezpieczenie bazy danych - do połączenia z bazą danych wykorzystywane jest konto "roota". Zastanawiam się nad stworzeniem użytkownika z uprawnieniami select, insert, update, oraz delete dla wybranej bazy danych - będzie to o wiele bezpieczniejsze (IMG:style_emoticons/default/smile.gif) Rodzi się kolejny problem - ponieważ w ten sposób, ktoś kto chciałby namieszać w bazie danych, mógłby nie korzystać ze stworzonego przeze mnie programu, ale bezpośrednio zalogować się do PhpMyAdmin. W ten sposób zobaczy on nie tylko swoje rekordy, ale wszystkie rekordy z tabel do których ma uprawnienia. Jak w takim razie nadać uprawnienia użytkownikowi np. "user", aby miał dostęp do tabeli Pracownicy ale tylko rekordu, którego id = 1, oraz tabeli Zlecenia ale tylko rekordów gdzie idpracownik = 1. Tabele są ze sobą powiązane tzn. pracownik może mieć wiele zleceń, ale zlecenie należy do 1 pracownika (stąd klucz obcy idpracownik w tabeli Zlecenia). Chodzi mi o to, że nawet jak ten user zaloguje się do phpmyadmin to będzie mógł robić tylko to samo co w moim programie - czyli przeglądać tabele z rekordami, których id = 1. ------------------- Może jeszcze raz napiszę o co mi chodzi .... W bazie danych posiadam tabelę "Zlecenia" z kolumnami "idzlecenie, idpracownik, opis". Tabela Zlecenie zawiera 5 rekordów : id_zlecenie, id_pracownik, opis 1 1 aaaa 2 1 vvvv 3 2 dddd 4 3 ssss 5 1 cccc W programie mam ustawione, że logując się na użytkownika o identyfikatorze 1 z bazy danych są pobierane rekordy z tabeli "Zlecenia" gdzie id_pracownik = 1 (to jest łatwe do zrobienia). Jednak do połączenia z bazą danych wykorzystywane jest konto z uprawnieniami, które pozwala przeglądać wszystkie rekordy w tabelach - czyli ktoś logując się na PhpMyAdmin zobaczy rekordy należące do pracownika z id =2, oraz z id=3 i może coś pomieszać. Czy można to jakoś zabezpieczyć ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%)
|
Mam wrażenie, że przemkowi chodzi o szerszy temat pod nazwą aplikacje bazodanowe.
Gdy jedna aplikacja jest uruchamiana na wielu maszynach. Często wszystko, co potrzebne do połączenia do z bazą danych przechowuje się w pliku ini. Wtedy aplikacja przy uruchomieniu zaczytuje plik ini, ustanawia połączenie z serwerem danych i przeprowadza autentykację użytkownika. Jeżeli trafi się rozgarnięty złoczyńca otworzy sobie taki ini notatnikiem, przeczyta jaki jest silnik bazy danych, adres serwera danych, nazwa użytkowkika bazy oraz hasło. Następnie MSSQL studio lub SqlYog w zależności od potrzeb i gotowy dostęp do całej bazy. Można na przykład sprawdzić ile zarabiają koledzy. W przypadku serwerów web ten temat właścieie nie istnieje. Jeżeli chodzi o aplikacje dane te należy przechowywać w postaci zaszyfrowanej. Ten post edytował bpskiba 14.06.2012, 16:25:24 |
|
|
|
przemek89k Nadanie uprawnień na rekordy - MYSQL 13.06.2012, 14:51:10
nospor Cytatale bezpośrednio zalogować się do PhpMyAdmin.... 13.06.2012, 15:24:42
przemek89k Tylko, że program korzysta z bazy danych mysql zew... 13.06.2012, 15:45:48
nospor No ale skoro użytkownik sam podaje dane do bazy i ... 13.06.2012, 16:06:28
przemek89k Tylko, że użytkownik ma dostęp do bazy za pomocą p... 13.06.2012, 17:59:59
nospor CytatA gdy teraz on zaloguje się na konto phpmyadm... 13.06.2012, 18:02:46
przemek89k CytatPrzecież to on ci podaje dane do bazy więc on... 14.06.2012, 08:22:56
nospor Coś motasz.... najpierw piszesz ze to user sam wpr... 14.06.2012, 08:43:28
przemek89k CytatCoś motasz.... najpierw piszesz ze to user sa... 14.06.2012, 09:28:26
trafas To może zrób sobie swoją tabelę z userami w ... 14.06.2012, 09:37:53
nospor CytatOczywiście mółbym login i hasło do bazy zaszy... 14.06.2012, 09:38:32
Crozin Nie, nie trzyma się danych w postaci zaszyfrowanej... 14.06.2012, 16:41:50 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 10:53 |