elwierka
23.04.2010, 14:22:23
Chciałabym zrobić prawa dostępu do aplikacji różnym użytkownikom.
Chciałabym stworzyć jakby grupy użytkowników (użytkownik(np. klient) z uprawnieniami do wykonywania zapytań Select, Insert, oraz Delete i Update tylko na określonych tabelach... , administrator, który może zrobić wszystko na wszystkich tabelach, ale tylko w obrębie jednej bazy danych, oraz użytkownik(np pracownik firmy), który może wykonywać jedynie niektóre zapytania Select, insert, update na jednej bazie danych.
Wiem, że mysql ma na to specjalną instrukcję GRANT .. tylko jak mam to później zastosować do użytkowników systemu? Np. rejestruję nowego użytkownika - zwykły user (klient) i powiedzmy, że użytkownikowi - klient nadam odpowiednie prawa w bazie danych za pomocą GRANT i jak to później "powiedzieć" aplikacji, która pozwoli, albo nie, na wykonywanie określonych zapytań temu użytkownikowi na bazie?
GRANT nie służy do konfigurowania uprawnień dla aplikacji, ale dla bazy danych. W dodatku jest to rozszerzenie specyficzne wyłącznie dla MySQL-a. Jeśli chcesz mieć w swojej aplikacji system uprawnień, musisz go samodzielnie napisać, np. w oparciu o bazę MySQL, tworząc własne tabelki dla użytkowników, grup, powiązań między nimi, a następnie dodając do skryptu kod do zarządzania i sprawdzania tych uprawnień.
thek
24.04.2010, 14:26:04
Zgodzę się, że GRANT jest już od poziomu bazy danych, ale SQL uczyłem się jako SQL, a nie jako dialekt MySQL (na dodatek standardy testowaliśmy na bazie Oracle) i GRANT jest standardem tego języka jeśli chodzi o uprawnienia użytkowników bazy. To nie tylko do MySQL jest ograniczone Zyx...
Jeśli chce zaś nieco na temat uprawnień, grup itp, niech sobie poczyta o ACL więcej i może to mu pomoże jakiś sensowny system wymyślić