Ćwiczenia > Mechanizmy bezpieczeństwa w MS SQL Server 2000 > Role w serwerze

9.4 Role w serwerze



Zarządzanie uprawnieniami w zakresie serwera jest o wiele łatwiejsze, jeśli użyjemy ról w serwerze. Role w serwerze to grupy - analogiczne do grup użytkowników w systemach Windows - do których możesz dodać użytkowników w celu łatwiejszego zarządzania uprawnieniami w zakresie działań w serwerze (nie w bazach danych). Działania w serwerze to na przykład: sporządzanie kopii zapasowych, dodawanie użytkowników serwera czy tworzenie baz danych. SQL Server daje Ci do dyspozycji zestaw gotowych ról serwera, z których każda ma określone uprawnienia.

Krok 1 - Poznaj role w serwerze

Poniższa tabela przedstawia role serwera i uprawnienia ich członków.

Rola w serwerze Członek tej roli może...
sysadmin Wykonywać wszystkie akcje w danej instancji SQL Servera. Domyślnie, administratorzy Windows i użytkownik sa należą do tej roli.
serveradmin Konfigurować serwer przy pomocy sp_configure oraz zamknąć serwer. Odpowiednią grupą Windows do tej roli jest Server Operators.
setupadmin Instalować i konfigurować serwery dołączone, serwery zdalne i replikację. Może ustawić procedurę na start serwera. Odpowiednią grupą Windows do tej roli jest Server Operators.
securityadmin Wykonywać operacje związane z bezpieczeństwem: zarządzać uprawnieniami do wykonywania CREATE DATABASE, kontrolować loginy serwera, czytać dziennik błędów serwera. Odpowiednią grupą Windows do tej roli jest Server Operators oraz personel pomocniczy.
processadmin Zarządzać procesami serwera. Może zabijać procesy. Personel pomocniczy jest grupą odpowiednią do tej roli.
dbcreator Tworzyć, modyfikować i usuwać bazy danych. Administratorzy nie należący do roli sysadmin nadają się do tej roli.
diskadmin Zarządzać plikami i nośnikami dla kopii zapasowych..
bulkadmin Wykonywać BULK INSERT. Posiada uprawnienia do czytania danych wstawnianych do bazy i wstawiania danych do tabeli, na której wykonuje INSERT.


Najbardziej uprzywilejowaną rolą jest sysadmin. Należy bardzo rozważnie dodawać do niej użytkowników i jak najrzadziej korzystać z niej do wykonywania czynności w bazach danych. Pamiętaj jednak, że niektóre inne role także mają poważne uprawnienia (np. serveradmin może zamknąć serwer) i również ostrożnie należy planować przynależność użytkowników do tych ról.

Krok 2 - Dodaj nowego użytkownika serwera i dodaj go do roli serwera

1. Uruchom program Query Analyzer.
2. Zaloguj się używając uwierzytelnienia systemu Windows.
3. W menu głównym programu wybierz File - Open.
4. W oknie Open Query File wybierz plik demo_9_4_1.sql.
5. Zaznacz i uruchom (klawisz F5) fragment kodu oznaczony w komentarzu jako (1).


-- (1) dodaj nowy login SQL
EXEC sp_addlogin 'Janek', 'haslo', 'Northwind'
GO


Wynikiem wykonania powyższego kodu jest dodanie w serwerze nowego loginu SQL (użytkownik: Janek, hasło: haslo, domyślna baza danych: Northwind). Procedura systemowa sp_addlogin służy do dodawania loginów SQL Servera. Do dodawania loginów systemu Windows (tzn. do "zamapowania" loginu Windows do serwera SQL) służy procedura sp_grantlogin.

6. Zaznacz i uruchom (F5) fragment kodu oznaczony w komentarzu jako (2).


-- (2) dodaj uzytkownika do roli w serwerze
EXEC sp_addsrvrolemember 'Janek', 'dbcreator'
GO


Wynikiem wykonania powyższego kodu jest dodanie użytkownika Janek do roli w serwerze dbcreator. Procedura systemowa sp_addsrvrolemember służy do dodawania loginów (Windows i SQL Server - bez znaczenia) do ról w serwerze.

7. Zaznacz i uruchom (F5) fragment kodu oznaczony w komentarzu jako (3).


-- (3) wyswietlmy czlonkow roli w serwerze
EXEC sp_helpsrvrolemember 'dbcreator'
GO


Wynikiem wykonania powyższego kodu jest wyświetlenie listy członków roli w serwerze dbcrator. Procedura systemowa sp_helpsrvrolemember umożliwia podejrzenie aktualnej listy członków ról serwera.

8. Zaznacz i uruchom (F5) fragment kodu oznaczony w komentarzu jako (4).


-- (4) usun uzytkownika z roli serwera
EXEC sp_dropsrvrolemember 'Janek', 'dbcreator'
GO


Wynikiem wykonania powyższego kodu jest usunięcie użytkownika Janek z roli w serwerze dbcrator. Procedura systemowa sp_dropsrvrolemember służy do usuwania loginów z ról w serwerze.

9. Zaznacz i uruchom (F5) fragment kodu oznaczony w komentarzu jako (5).


-- (5) usun login SQL Servera
EXEC sp_droplogin 'Janek'
GO


Wynikiem wykonania powyższego kodu jest usunięcie z serwera loginu SQL Servera Janek. Procedura systemowa sp_droplogin służy do usuwania z serwera loginów SQL Servera (uniemożliwienia dostępu do serwera użytkownikowi o wybranym loginie). Do ograniczenia dostępu do serwera loginom Windows służy procedura sp_revokelogin.

Loginami i ich przynależnością do ról w serwerze możesz zarządzać także przy użyciu programu Enterprise Manager. W lewej części okna programu po rozwinięciu grupy serwera wejdź w folder Security. Po kliknięciu na pozycji Logins po prawej stronie zobaczysz listę loginów w serwerze, zaś po kliknięciu na pozycji Server Roles zobaczysz listę ról w serwerze (klikając dwukrotnie na wybranej roli możesz podejrzeć listę jej członków i uprawnienia roli).


Do projektu Prace dyplomowe dołącz skrypt uzytkownicy.sql, w którym umieść kod dodający do serwera loginy SQL Servera dla użytkowników Twojej bazy danych. Nie dodawaj loginów do ról w serwerze.


Przejdź dalej



Ćwiczenia > Mechanizmy bezpieczeństwa w MS SQL Server 2000 > Role w serwerze