Zadania z laboratorium Bezpieczeństwo w bazie danych Oracle

advertisement
Oracle – tworzenie użytkowników; bezpieczeństwo baz danych – zadania
1
I. W bazie istnieją następujące tabele:
DOCHOD (NRP, NRT, KWOTA, DATA),
TEMAT (NRT, NAZWA),
ZESPOL (NRZ, NRK, NAZWA),
PRACOWNIK (NRP, NAZWISKO, IMIE, DATA_UR, NRZ, PLEC, TELEFON, ADRES, ZDJECIE),
STANOWISKO (NRS, STANOWISKO),
których właścicielem jest użytkownik dev1 oraz następujące przestrzenie tabel:
SYSTEM – systemowa
TEMP – tymczasowa
TOOLS– narzędziowa
USERS – użytkownika
Uwaga! x jest określonym przez prowadzącego numerem użytkownika!. Każda podsekcja ma
przydzielony inny numer z zakresu 1-8.
I.
używając programu SQLPlus Worksheet podłączyć się jako systemx/managerx do instancji orcl –
polecenie: connect systemx/managerx@orcl – i utworzyć poleceniem create user:
1.
użytkownika sxadmin o takim samym haśle jak nazwa użytkownika z domyślną (default)
przestrzenią tabel users, tymczasową (temporary) temp oraz nie mającego ograniczeń do
przestrzeni users (quota unlimited on users).Sprawdzić ustawienia, oglądając perspektywy1
all_users, dba_ts_quotas),
2.
użytkownika sxprojektant z tym samym hasłem, z domyślną przestrzenią tabel users
i tymczasową temp.
3.
Użytkownika sxksiegowa o takim samym haśle.
a.
Po stworzeniu użytkownika nadać mu poleceniem grant ... to ..prawo
tworzenia sesji (create session),
b.
Podłączyć się do systemu jako użytkownik sxksiegowa i zobaczyć perspektywę
user_users,
c.
Zmienić domyślną i temporalną przestrzeń tabel na odpowiednio: users,oraz temp.
Co się stanie?
d.
Podłączyć się jako użytkownik systemx/managerx@orcl i wykonać powyższe
polecenie.
4.
Użytkownika sxpracownik z tym samym hasłem i domyślnymi przestrzeniami jak powyżej,
5.
Użytkownika sxstudent z tym samym hasłem, przypisując mu ograniczenie na nieistniejącą
przestrzeń tabel appl_data. Co się stanie?
II.
Podłączony jako użytkownik systemx/managerx@orcl nadaj (poleceniem: grant .. to ..)
użytkownikom następujące przywileje:
1.
Użytkownikowi sxadmin przywileje do tworzenia, zarządzania i usuwania użytkowników:
create session, create user, alter user, drop user, create role, grant any role, grant any privilege
z możliwością przekazania tych przywilejów innym użytkownikom (opcja with admin
option),
a.
Podłącz się do bazy jako sxadmin i zobacz perspektywy: user_sys_privs,
session_privs,
b.
Stwórz użytkownika sxadx z hasłem adx nadaj mu te same prawa co użytkownikowi
sxadmin z opcją with admin option,
c.
Podłącz się do bazy jako użytkownik sxadx/adx@orcl i zobacz czy ma przywileje
z opcją ADM, (perspektywa user_sys_privs),
d.
Podłącz się do bazy jako użytkownik systemx/managerx@orcl, odbierz
użytkownikowi sxadmin przywilej drop user poleceniem revoke .. from...
1
Perspektywy oglądamy poleceniem: select ..
from .nazwa_perspektywy.
Oracle – tworzenie użytkowników; bezpieczeństwo baz danych – zadania
2
Podłącz się jako użytkownik sxadmin. Usuń poleceniem drop user użytkownika
sxadx. Co się stanie?
e.
Podłącz się jako użytkownik sxadx, wyświetl nadane sobie przywileje (perspektywa
user_sys_privs). Czy coś się stało?
2.
Jako systemx/managerx@orcl nadaj użytkownikowi sxprojektant przywileje tworzenia sesji
(create session), tworzenia, modyfikowania, przeglądania tabel (create table, alter any table,
select any table).
a.
Podłącz się jako użytkownik sxadmin przydziel użytkownikowi sxprojektant
ograniczenie na przestrzeń users na 15k (polecenie: alter user sxprojektant
quota 15K on users). Podłącz się do bazy jako użytkownik sxprojektant stwórz
dwie nowe tabele:
Create table sxNowa1 (p1 number(4), p2 number(8), p3 varchar2(20));
Create table sxnowa2 (p1 number (9), p2 number(6), p3 varchar2(13));
3.
4.
III.
1.
b.
Co się stanie? Czy tabele zostaną stworzone?
Jako użytkownik systemx/managerx@orcl nadaj użytkownikowi sxksiegowa przywileje
przeglądania, wstawiania, modyfikowania danych w tabelach pracownik, dochod, temat, zespol.
(polecenie grant insert, select, update on pracownik to sxksiegowa;) Co się stanie?
a.
podłącz się do bazy jako użytkownik dev1/dev1@orcl i spróbuj jeszcze raz.
Jako systemx/managerx@orcl nadaj użytkownikowi sxpracownik przywilej tworzenia sesji
(create session) oraz select na tabelę pracownik i temat, oraz update na kolumny nrp, data i nrt
tabeli dochod. (polecenie: grant update (nrp, data, nrt) on dochod to sxpracownik;)
a.
Podłącz się jako użytkownik dev1/dev1@orcl nadaj użytkownikowi
systemx/managerx przywilej select na tabele i kolumny takie, jakie ma mieć
użytkownik sxpracownik z opcją with grant option;
b.
Podłącz się jako użytkownik systemx/managerx nadaj użytkownikowi sxpracownik
przywileje select na tabelę pracownik, temat i kolumny nrp, data i nrt tabeli dochod.
z opcją with grant option; sprawdź jako systemx/managerx@orcl jakie masz
przywileje (perspektywy: user_tab_privs, user_col_privs),
c.
Podłącz się do bazy jako sxpracownik i zobacz swoje (instrukcja: select ...from
...where
user_name
=... ) przywileje (perspektywy: user_tab_privs,
user_col_privs),
d.
wykonaj operację select na tabeli pracownik,
e.
spróbuj wykonać operację modyfikowania kolumny kwota tabeli dochod (polecenie
update dochod set kwota=kwota+10 lub insert),
f.
podłącz się jako użytkownik dev1 i odbierz (polecenie revoke) przywilej select na
tabelę pracownik użytkownikowi systemx/managerx,
g.
podłącz się jako użytkownik systemx/managerx@orcl i zobacz swoje przywileje
(perspektywy: user_tab_privs, user_col_privs),
h.
podłącz się jako użytkownik sxpracownik i zobacz swoje przywileje (pesrspektywa:
user_tab_privs, user_col_privs). Czy coś się zmieniło? Co się stało z przywilejem
select na tabelę pracownik?
Przydział ról – jako użytkownik systemx/managerx@orcl
Stwórz poleceniem create role rolę sxadmin_role, przydziel roli następujące przywileje:
create session, create user, alter user, drop user, create role, grant any role, grant any privilege.
a.
Zobacz perspektywy dba_role_privs, dba_roles, dba_sys_privs przy warunku
‘where granted_role=’admin_role’’; lub select * from dba_role_privs
where grantee = ‘SYSTEMx’;
b.
Przydziel użytkownikowi sxadmin domyślną rolę sxadmin_role. (polecenie: alter
user sxadmin default role sxadmin_role;)
c.
Podłącz się jako użytkownik sxadmin i sprawdź perspektywy session_privs,
session_roles, user_role_privs, role_sys_privs.
Oracle – tworzenie użytkowników; bezpieczeństwo baz danych – zadania
3
2.
Jako systemx/managerx@orcl stwórz rolę o nazwie sxszuk_tab poleceniem create role,
zawierającą przywilej systemowy select any table;
3.
Utwórz rolę sxtw_tab zawierającą przywileje tworzenia i usuwania tabel (create table, drop
table)
4.
Utwórz użytkownika sxnowy z hasłem nowy nadaj mu przywilej podłączania się do bazy (create
session), domyślną przestrzeń users, limit bez ograniczeń.
a.
Podłącz się do bazy jako użytkownik sxnowy i spróbuj wykonać operację select na
tabeli. Co się stanie?
IV.
1.
Profile i zasoby:
Stworzyć profil sxprojekt_profil ograniczający zasoby (polecenie create profile) tak, aby:
a.
Liczba równoległych sesji użytkownika wynosiła 5 (opcja SESSIONS_PER_USER)
b.
Czas w sesji bez pracy 60 min. (opcja IDLE_TIME)
c.
Nieograniczony czas CPU mierzony w setnych sekundy (opcja CPU_PER_CALL),
d.
Zobaczyć stworzony profil, używając perspektyw dba_profiles, sys.dba_profiles:
2.
Zmodyfikować poleceniem alter profile profil sxprojekt_profil tak, aby:
a.
Zredukować liczbę równoległych sesji dla jednego użytkownika do1,
b.
Możliwy czas bez pracy w sesji ograniczyć do 1 minuty,
c.
Czas CPU na wywołanie (w setnych sekundy) skrócić do 7 (0,07 sekundy),
d.
Liczbę
bloków
danych
(czytanych
fizycznie
i
logicznie)
LOGICAL_READS_PER_SESSION zmniejszyć do 20;
e.
Włączyć kontrolę czasu trwania operacji pleceniem set timing on,
Przydziel profil użytkownikowi sxprojektant (jako użytkownik systemx/managerx@orcl),
a.
Podłącz się do bazy jako użytkownik sxprojektant
b.
Wykonaj operację select username, profile from sys.dba_users; oraz
operację select * from user_resource_limits;
c.
sprawdź, czy wprowadzone ograniczenia są widoczne;
d.
Podłącz się do bazy jako systemx/managerx@orcl i komendą alter system ustaw
parametr RESOURCE_LIMIT na true, który włącza kontrolę zasobów, bez przerywania
pracy bazy danych,
e.
Zrób sobie przerwę i sprawdź co się stanie po około 1 minucie bez pracy;
f.
Spróbuj podłączyć się drugi raz, otworzyć drugą sesję – co się stanie?
g.
Spróbuj wykonać jakąś długą operację (select, insert);
h.
Spróbuj stworzyć tabelę – co się stanie?
SELECT * FROM DBA_PROFILES WHERE PROFILE=’PROJEKT’;
3.
Download