SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;



Podobne dokumenty
Ćwiczenie 4. Użytkownicy

Zarządzanie kontami użytkowników w i uprawnieniami

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

Uprawnienia, role, synonimy

Tworzenie u ytkownika. ORACLE (Wykład 6) Uwierzytelnianie u ytkowników. Przył czenie u ytkownika do bazy. Nadawanie uprawnie systemowych

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Zarządzanie użytkownikami bazy danych Oracle11g

Użytkownicy, uprawnienia, role, obserwacja bazy danych. (c) Instytut Informatyki Politechniki Poznańskiej 60

CREATE USER

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Baza danych inside. Biologiczne Aplikacje Baz Danych

Cwiczenie 7. Retrospekcja

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Oracle PL/SQL. Paweł Rajba.

Instrukcja instalacji aplikacji PlanSoft.org

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

1. Wyzwalacze BD (ang. triggers)

Instrukcja instalacji aplikacji Plansoft.org

Zadania do wykonania na laboratorium

Zarzdzanie uytkownikami Uytkownicy, przywileje, role, audyt

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

SQL 4 Structured Query Lenguage

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Zarządzanie obiektami bazy danych Oracle11g

Pakiety podprogramów Dynamiczny SQL

(a) T (b) N (c) N (d) T

Zarządzanie strukturą bazy danych Oracle11g

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenie 2. Struktura bazy danych Oracle

Instalacja Oracle Designera ( )

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Systemowe aspekty baz

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Zaawansowane bazy danych i hurtownie danych semestr I

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Ćwiczenie 2. Struktura bazy danych Oracle

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

BAZA DANYCH SIECI HOTELI

Oracle Label Security

Ćwiczenie 14 autoryzacja

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Wyzwalacze TWORZENIE WYZWALACZY

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Ćwiczenie 2. Opcja przestrzenna bazy danych

PODSTAWY BAZ DANYCH 13. PL/SQL

Język PL/SQL Procedury i funkcje składowane

Domyślna przestrzeń tabel. Domena bezpieczeństwa. zasobowe

Rozproszone bazy danych

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Język SQL, zajęcia nr 1

Hurtownia Świętego Mikołaja projekt bazy danych

Administrowanie serwerami baz danych ZADANIA ADMINISTRATORA BAZ DANYCH

Podnoszenie poziomu bezpieczeństwa instalacji i baz danych Oracle

Wyzwalacze (triggery) Przykład

Ćwiczenie 8. Rozproszone bazy danych

Podstawy systemów UNIX Podstawy RMAN

Laboratorium administracji ORACLE DATABASE 12c. Informacje na temat środowiska systemowego

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Oracle11g: Wprowadzenie do SQL

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Cele. Definiowanie wyzwalaczy

Systemowe aspekty baz danych

Bazy danych 10. SQL Widoki

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Administracja i programowanie pod Microsoft SQL Server 2000

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

asist Uproszczona procedura migracji danych aplikacji asist przy błędnych ustawieniach zestawu znaków bazy danych Oracle

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i

Zarządzanie obiektami bazy danych Oracle11g

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

SQL :: Data Definition Language

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Instalacja MySQL.

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Ćwiczenie 3. Współbieżność i transakcje

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wykład 8. SQL praca z tabelami 5

Bazy danych. dr inż. Arkadiusz Mirakowski

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Transkrypt:

Administrowanie użytkownikami Ćwiczenia laboratoryjne (2) Przygotowanie środowiska 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz dwie sesje w dwóch różnych okienkach. 2. W jednej z Twoich sesji (będziemy ja nazywać sesją czarną) uruchom program SQL*Plus i zaloguj się jako sys as sysdba. [admx@miner ~]$ sqlplus /nolog SQL> connect / as sysdba 3. Wystartuj bazę danych korzystając ze wskazanego pliku parametrów SQL> startup pfile=./admin/pfile/initdbx.ora 4. Dla ułatwienia późniejszych startów utwórz dynamiczny plik parametrów SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' Użytkownicy i role 5. W sesji A utwórz użytkownika Bolek. create user bolek identified by bolek; 6. W drugiej sesji (będziemy ją nazywać sesją zieloną) połącz się jako Bolek. sqlplus bolek/bolek ORA-01045: user BOLEK lacks CREATE SESSION privilege; logon denied 7. W sesji czarnej nadaj Bolkowi uprawnienie systemowe potrzebne do zalogowania się. grant CREATE SESSION to bolek; 8. W sesji zielonej zaloguj się jako Bolek. Jako Bolek utwórz tabelę test. Co się stało? Sprawdź aktywne przywileje. sqlplus bolek/bolek create table test ( test number(1)); ORA-01031: insufficient privileges select * from session_privs;

9. W sesji czarnej sprawdź, jakie uprawnienia mieszczą się w roli CONNECT. Nadaj Bolkowi rolę CONNECT. select PRIVILEGE from dba_sys_privs where GRANTEE = 'CONNECT'; grant CONNECT to bolek; 10. W sesji zielonej ponownie spróbuj utworzyć tabelę test. Co się stało? Dlaczego? Ponownie sprawdź aktywne przywileje. Co się stało? Dlaczego? Wyjdź z SQL*Plusa i zaloguj się ponownie. create table test ( test number(1)); ORA-01031: insufficient privileges select * from session_privs; exit sqlplus bolek/bolek 11. Ponownie w zielonej sesji spróbuj utworzyć tabelę test. Co się stało? Dlaczego? create table test ( test number(1)); ORA-01950: no privileges on tablespace 'USERS' 12. W czarnej sesji jako SYS nadaj prawo wykorzystania przez użytkownika Bolek przestrzeni tabel USERS. Ogranicz zajętość przestrzeni przez tego użytkownika do 5MB. alter user bolek quota 5M on USERS; 13. W zielonej sesji spróbuj ponownie utworzyć tabelę test. create table test ( test number(1)); 14. W czarnej sesji utwórz nowego użytkownika Lolek dając mu możliwość tworzenia obiektów w przestrzeni tabel USERS (ograniczone do 5M). Nadaj mu rolę CONNECT. create user lolek identified by Lolek quota 5M on USERS; grant CONNECT to lolek; 15. Zaloguj się w czarnej sesji jako Lolek; connect lolek/lolek 16. Utwórz przykładowe tabele (skrypt /ora1/oracle/pldemobld.sql) w schemacie Bolka i Lolka, czyli w sesji czarnej Lolka i zielonej Bolka. @/ora1/oracle/pldemobld.sql 17. Jako Lolek (sesja czarna) spróbuj przeczytać tabelę PRACOWNICY należącą do schematu Bolka. select * from bolek.pracownicy; ORA-00942: table or view does not exist

18. Bolek (sesja zielona) nadaje Lolkowi prawo czytania swojej tabeli pracownicy. grant select on pracownicy to lolek; 19. Lolek czyta tabele Bolka, obaj użytkownicy oglądają słownik bazy danych (informacje o udzielonych i otrzymanych uprawnieniach obiektowych). select * from bolek.pracownicy; select GRANTEE, OWNER, TABLE_NAME, PRIVILEGE from user_tab_privs; 20. Bolek nadaje Lolkowi prawo modyfikowania płac pracowników, Lolek sprawdza działanie przywileju. grant update(placa_pod) on pracownicy to lolek; update bolek.pracownicy set placa_pod = placa_pod; 21. Bolek nadaje Lolkowi wszystkie prawa do tabeli pracownicy z możliwością ich propagowania. grant all on pracownicy to lolek with grant option; 22. Lolek odbiera Bolkowi prawa do tabeli pracownicy będącej własnością Bolka. revoke all on bolek.pracownicy from bolek; 23. Bolek odbiera Lolkowi wszystkie prawa do tabeli pracownicy. revoke all on pracownicy from lolek; 24. Jako Bolek spróbuj utworzyć rolę zabezpieczoną hasłem. create role pracownicy_role identified by pracownicy; ORA-01031: insufficient privileges 25. W sesji czarnej zaloguj się jako sys as sysdba. Sprawdź czy do tworzenia roli wystarczy rola RESOURCE. Nadaj uprawnienia create role użytkownikowi Bolek. connect / as sysdba select PRIVILEGE from dba_sys_privs where GRANTEE = 'RESOURCE'; grant create role to Bolek; 26. W sesji czarnej zaloguj się jako Lolek. connect lolek/lolek;

27. Bolek (sesja zielona) tworzy rolę zabezpieczoną hasłem i przekazuje tej roli prawa do odczytu tabeli pracownicy, następnie nadaje rolę Lolkowi. create role pracownicy_role identified by pracownicy; grant select on pracownicy to pracownicy_role; grant pracownicy_role to lolek; 28. Lolek próbuje wykorzystać tę rolę. select * from bolek.pracownicy; ORA-00942: table or view does not exist 29. Lolek sprawdza aktualnie włączone role. Włącza rolę przyznaną mu przez Bolka i korzysta z niej. select * from session_roles; set role pracownicy_role identified by pracownicy; 30. Bolek i Lolek przeglądają słownik bazy danych i oglądają informacje o przywilejach i rolach. select GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTOR from user_tab_privs; select USERNAME, GRANTED_ROLE, ADMIN_OPTION, DEFAULT_ROLE from user_role_privs; select USERNAME, PRIVILEGE, ADMIN_OPTION from user_sys_privs; 31. Lolek ponownie loguje się ponownie i bez podłączania sobie nowo nadanej roli próbuje odczytać zawartość tabeli pracownicy. Dlaczego jest to możliwe bez podania hasła? connect lolek/lolek; select * from bolek.pracownicy; 32. W sesji czarnej zaloguj się jako sys as sysdba. Zdejmij rolę przyznaną Lolkowi przez Bolka z listy jego ról domyślnych. connect / as sysdba alter user lolek default role all except PRACOWNICY_ROLE;

33. Zmień konfiguracje bazy danych tak, aby możliwe było utworzenie użytkownika spbd$admxx autoryzowanego przez system operacyjny. Następnie utwórz takiego użytkownika. shutdown immediate; startup; alter system set os_authent_prefix = 'spbd$' scope=spfile; shutdown immediate; startup; create user spbd$adm45 identified externally; grant connect to spbd$adm45; 34. Sprawdź w sesji zielonej, czy może się on zalogować do bazy danych. Po zalogowaniu sprawdź jako kto został ten użytkownik podłączony. sqlplus /nolog connect / select user from dual; Profile 35. W sesji czarnej sprawdź czy zostało uaktywniona weryfikacja profili (jeśli nie to włącz tę opcję). show parameter resource_limit alter system set resource_limit = TRUE; 36. Utwórz profil zawierający ograniczenie liczby równoczesnych sesji do 1 i czas bezczynności do 3 minut. Obejrzyj słownik i sprawdź informacje o profilach. create profile maly limit SESSIONS_PER_USER 1 IDLE_TIME 3; 37. Nadaj utworzony przez siebie profil Bolkowi. alter user bolek profile maly; 38. Zweryfikuj działanie profilu. Spróbuj zalogować się w więcej niż jednej sesji (zielonej i nowej brązowej). Pozostaw sesję zieloną nieaktywną przez ponad 3 minuty.

39. Zmień profil tak, aby ograniczał liczbę nieudanych prób zalogowania do 1 czas blokady konta po nieudanych próbach 1 dzień. alter profile maly limit FAILED_LOGIN_ATTEMPTS 1 PASSWORD_LOCK_TIME 1; 40. Zweryfikuj działanie profilu. Podaj błędne hasło. Postaraj się zalogować ponownie podając hasło prawidowe. 41. W sesji czarnej odblokuj konto Bolka i przypisz mu na powrót profil domyślny. alter user bolek account unlock; alter user bolek profile default; Obserwacje 42. Sprawdź, czy zostało uaktywnione zbieranie informacji o obserwowanych operacjach użytkowników. Jeśli nie, włącz obserwacje rejestrowane w bazie danych. select value from v$parameter where name = 'audit_trail'; alter system set audit_trail=db scope=spfile; shutdown immediate; startup; 43. Włącz obserwację poleceń DDL operujących na tabelach przez użytkownika Bolek. Sprawdź, czy w słowniku zapisało się polecenie obserwacji (dba_stmt_audit_opts) audit table by bolek; select * from dba_stmt_audit_opts; 44. Jako Bolek utwórz, zmień i usuń jakąś tabelę. create table test2 ( test number ); alter table test2 add test2 number; drop table test2; 45. Sprawdź dziennik obserwacji (dba_audit_object). Pamiętaj, że obserwacja jest realizowana dopiero w nowej sesji użytkownika. select USERNAME, OWNER, OBJ_NAME, ACTION_NAME from DBA_AUDIT_OBJECT;

46. Włącz obserwację nieudanych prób wykorzystania przywileju CREATE SESSION przez Bolka. Sprawdź, czy w słowniku zapisało się polecenie obserwacji (dba_priv_audit_opts). audit session by bolek WHENEVER NOT SUCCESSFUL; select * from dba_priv_audit_opts; 47. Jako Bolek kilka razy połącz się z błędem. Sprawdź dziennik obserwacji (dba_audit_trail, dba_audit_session) select USERNAME, ACTION_NAME, TIMESTAMP from dba_audit_trail; 48. Włącz obserwację odczytu tabeli pracownicy użytkownika Bolek. Sprawdź, czy w słowniku zapisało się polecenie obserwacji (dba_obj_audit_opts) AUDIT SELECT on bolek.pracownicy; select * from dba_obj_audit_opts where OBJECT_NAME = 'PRACOWNICY' and OWNER = 'BOLEK'; 49. Po kilku zapytaniach do tabeli pracownicy (przez Bolka i Lolka) sprawdź dziennik obserwacji (dba_audit_object) select USERNAME, TIMESTAMP, OWNER, OBJ_NAME, ACTION_NAME from dba_audit_object; Wyzwalacze 50. W czarnej sesji napisz wyzwalacz, który zabroni użytkownikom logowania się do bazy danych, jeżeli czas logowania zawiera parzyste minuty. Sprawdź działanie wyzwalacza create or replace trigger afterlogon after logon on database begin if mod(to_number(to_char(sysdate,'mi')),2)=1 then raise_application_error(-20000,'zapraszam za minute'); end;

51. W czarnej sesji napisz wyzwalacz, który do tabeli historia(uzytkownik,tabela,czas) wpisze informacje o każdym utworzeniu tabeli w bazie danych. Uwaga: najpierw utwórz tabelę historia. Sprawdź działanie wyzwalacza. create table historia ( uzytkownik varchar2(32), tabela varchar2(100), czas date); create or replace trigger aftercreate after create on database begin if ora_dict_obj_type = 'TABLE' then insert into historia(uzytkownik,tabela,czas) values (USER,ora_dict_obj_owner '.' ora_dict_obj_name,sysdate); end; 52. W sesji zielonej w schemacie użytkownika Bolek stwórz tabelę pracownicy_historia. Napisz wyzwalacz, który będzie przechowywał historię zmian z tabeli pracownicy w tabeli pracownicy_historia. Oprócz informacji dotyczących tego co zmodyfikowano, powinna się w niej znaleźć informacja kto i kiedy dokonywał danej modyfikacji. Jeśli Bolek nie posiada odpowiednich uprawnień, nadaj mu je create table pracownicy_historia ( co_zmieniono varchar2(100), z_wartosci varchar2(100), na_wartosc varchar2(100), kto varchar2(32), kiedy date); grant create trigger to bolek; -- sesja czarna create or replace trigger afterupdatepracownicy after update on pracownicy for each row begin if :NEW.NAZWISKO <> :OLD.NAZWISKO then insert into pracownicy_historia values ('NAZWISKO',:OLD.NAZWISKO,:NEW.NAZWISKO,USER,SYSDATE); if :NEW.ZATRUDNIONY <> :OLD.ZATRUDNIONY then insert into pracownicy_historia values ('ZATRUDNIONY',:OLD.ZATRUDNIONY,:NEW.ZATRUDNIONY,USER,SYSDATE); end; 53. Napisz wyzwalacz, który będzie sprawdzał, czy modyfikacji w tabeli zespoly dokonuje użytkownik Bolek. Jeżeli dane próbuje zmodyfikować inny użytkownik, to odrzuć takie modyfikacje. Nadaj uprawnienia do tabeli zespoly użytkownikowi Lolek i przetestuj działanie swojego wyzwalacza. create or replace trigger afterupdatezespoly after update on zespoly for each row begin if USER <> 'BOLEK' then raise_application_error(-20000, 'Nie masz prawa do modyfikacji tej tabeli'); end;...