role w bazie + role w aplikacji

0

Mam w bazie kilka różnych ról np:
-użytkownik (nie zalogowany do aplikacji)
-admin
-student
Każda z tych ról ma uprawnienia do odpowiednich tabel w tej bazie. Jak w aplikacji wybrać odpowiedni login i hasło dla konkretnej roli?
Czy dobrym wyjściem jest wykonywanie połączenia z bazą danych w funkcji init() każdego kontrolera i wybranie odpowiedniego loginu i hasła dla konkretnego użytkownika (admin lub student).

Czy może w takich sytuacjach robi się jedną rolę w bazie danych dla wszystkich użytkowników w aplikacji www?

0

większość osób uprawnienia do aplikacji implementuje po swojemu, oddzielnie od uprawnień do BD

0

ale chodzi mi o to czy robić kilka ról w bazie danych czy stworzyć jedną dla wszystkich użytkowników?

0

generalnie 1 dla programu (bez możliwości zmiany ddl i np. robienia truncate) i 1 dla admina bez ograniczeń, który łączy się jakimś narzędziem (np. phpmyadminem dla mysqla).

0

a kiedy jest sens stworzenie większej liczby ról?
zastanawiam się nad stworzeniem ról np, nauczyciel i uczeń i nadanie im odpowiednich uprawnień do odczytu i zapisu danych w odpowiednich tabelach (np. uczeń nie może wpisać oceny na poziomie bazy danych), czyli uczeń lub nauczyciel będą łączyć się z baza danych, przez odpowiednią role w bazie danych, było by to dodatkowe zabezpieczenie. Jeśli np. programista popełniłby błąd w jakimś zapytaniu (np. wpisanie przez ucznia oceny) to baza danych nie pozwoliła by na takie zachowanie.

0

Tak naprawde nie zaszkodzi, jesli jest to dodatkowe zabezpieczenie. Czyli zakladamy, ze program normalnie nie pozwala na wywolanie takiego zapytania, a dla swietego spokoju dodatkowo ograniczasz to na poziomie bazy. To oczywiscie oznacza tez koniecznosc pozniejszego utrzymania spojnosci, przy czym trzeba wziac pod uwage, ze pewnych rzeczy nie da sie w 100% odniesc po jednej i drugiej stronie tak samo - np. tabela z konfiguracja przechowuje te dla aplikacji w obu trybach, zas poszczegolne wersje odpytuja o inne zbiory danych z tejze tabeli. Jesli rozlaczne to mozna to od biedy dac w 2 tabelach (choc bez sensu, bo sa takie same), jesli z czescia wspolna to juz jest problem.

W normalnych sytuacjach kilka rol ma sens, jesli do tej samej bazy dobija sie kilka roznych aplikacji, np. jakis przegladacz, admin, wpisujacy dane, itp. Tak samo, jesli do bazy maja dostep rozni klienci (w sensie np. firmy tworzace dla nas oprogramowanie) i z jakiegos powodu po pierwsze w ogole maja dostep do bazy, a po drugie do pewnych rzeczy dostepu maja nie miec.

1 użytkowników online, w tym zalogowanych: 0, gości: 1