Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mssql] system bezpieczeństwa
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
beel
Witam!
Dręczy mnie druga cześć zadania zaliczeniowego otóż jest zrozumiale napisane (wiem co trzeba zrobić) tylko nie bardzo wiem jakich "narzędzi" (procedur, wyzwalaczy, funkcji, zapytań, innych?) do tego użyć. A wygląda to tak:

Cytat
System bezpieczeństwa obejmuje dwie pracownice (Ewa i Ela), które mogą tylko przyjmować modyfikować i przeglądać dane osobowe, księgową Anię, która ma wgląd w zarobki, kasjerkę Genowefę mogącą przeglądać tylko informacje o wypłatach pensji w danym miesiącu oraz Ewelinę i Baśkę, które mają dostęp do wszystkich danych bez możliwości ich modyfikowania i dodatkowo robienia podsumowania, bilansów itp. Irena, pracująca także w dziale płac jest bardzo zazdrosna o inne kobiety zarabiające więcej niż ona. Musi mieć dostęp do danych płacowych, ponieważ nalicza dodatki funkcyjne. Jednak, gdy wyświetla pensję całkowitą jakiejś koleżanki, system pokazuje jej kwotę mniejszą od jej pensji.


Nie prosze o rozwiazanie lecz o podpowiedź jak się za to w ogole zabrać. Czy to wszystko należy realizować za pomocą zapytań?

pzdr
Kicok
Ja zrobiłbym to w ten sposób:

1. Tworzę wszystkim pracownikom konta
2. Tworzę widok (np.: [place_v]), w którym sprawdzam nazwę zalogowanego użytkownika.
- Jeśli jest to Irena, to wyświetlam jej zawartość tabeli [place] z odpowiednio spreparowaną kolumną zarobków (Sprawdzanie czy zarobki danego pracownika są większe niż zarobki Ireny, jeśli tak - wyświetl niższe).
- Jeśli nie jest to Irena, to wyświetlam oryginalną zawartość tabeli [place]
3. Nadaję wszystkim pracownikom odpowiednie uprawnienia odczytu/zapisu do tabel. Przy czym żaden pracownik nie będzie widział tabeli [place] - zamiast tego udostępnię im widok: [place_v]
beel
O widokach właśnie czytam i odrazu wpadlem na pomysl aby ich do tego użyc winksmiley.jpg

Cytat
1. Tworzę wszystkim pracownikom konta

Jak to zrobić?

Cytat
Nadaję wszystkim pracownikom odpowiednie uprawnienia odczytu/zapisu do tabel.

Jak to zrobić ?

[edit]
Te konta ktore nalezy stworzyc to sa konta uzytkownikow baz danych rozumiem, czyli co wymaga to innego systemu logowania sie? Czy moge zdefiniowac gdzies (i jak ) te konta i nadac im uprawnienia (ale jak) a logowac sie w jednolity sposob? Hmm no nie zetchnalem sie nigdzie z tworzeniem takowych kont i nie wiem na czym to polega dokladnie. Za cokolwiek co mi pomoze bede wdzieczny winksmiley.jpg))))) Jakichś przykład?
Kicok
Tak, wymaga to utworzenia kilku kont użytkowników. Po jednym dla każdej pani z działu płac + może jeszcze jedno "administracyjne" z pełnymi uprawnieniami.


Jeśli masz dostęp do takich narzędzi jak np. Enterprise Manager (dla wersji MSSQL 2000) to uprawnienia możesz nadawać przez: Security -> Logins -> PPM: Właściwości -> Database Access
Zaznaczasz tam do których baz danych użytkownik ma mieć dostęp, a następnie klikasz na public -> Properties -> Permissions i ustawiasz uprawnienia dla tabel/kolumn/procedur itp.

Możesz również używać poleceń: GRANT, DENY, REVOKE do nadawania uprawnień, i EXEC sp_addlogin, sp_droplogin do zakładania kont użytkownikom
beel
Cytat(Kicok @ 5.05.2007, 09:32:52 ) *
Możesz również używać poleceń: GRANT, DENY, REVOKE do nadawania uprawnień, i EXEC sp_addlogin, sp_droplogin do zakładania kont użytkownikom


I na tym bym się raczej skupił, jednak kod to kod smile.gif Poczytam o tym na stronie MS gdzie podales linki i postaram sie poszzukac czegos po PL, bo nie lezy mi to ich tlumaczenie... ale jak sie nie ma co sie ... to sie .. co .. sie .. winksmiley.jpg

pzdr

[edit]
Do zarządzania kontami użytkowników to chyba powinienem skorzystac z sp_adduser i sp_dropuser.

[edit2]
Jednak masz rację, bo moje polecenie dodaje/usuwa istniejący login do aktualnie używanej bazy danych. Zwracam honory winksmiley.jpg

[edit3]
Bez EXEC przed poleceniami spp_addlogin, spp_droplogin dostajemy taki sam rezultat, więc chyba nie ma sensu aby pisac EXEC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.