220 likes | 370 Views
ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/. ADMINISZTRÁCIÓS ISMERETEK http://psoug.org/reference/system_privs.html. RENDSZER-JOGOSULTSÁGOK. CREATE SESSION – Bejelentkezési jog, MINDIG KELL CREATE TABLE – Tábla létrehozása CREATE VIEW – Nézet létrehozása
E N D
ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ szabo.zsolt@nik.uni-obuda.hu
ADMINISZTRÁCIÓS ISMERETEK http://psoug.org/reference/system_privs.html szabo.zsolt@nik.uni-obuda.hu
RENDSZER-JOGOSULTSÁGOK • CREATE SESSION – Bejelentkezési jog, MINDIG KELL • CREATE TABLE – Tábla létrehozása • CREATE VIEW – Nézet létrehozása • CREATE PROCEDURE – Eljárás létrehozása (PL/SQL) • CREATE USER – Felhasználó létrehozása • ALTER ANY TABLE – Tábla módosítása • ALTER ANY TRIGGER – Trigger módosítása (PL/SQL) • SELECT ANY TABLE – Akármilyen SELECT • DROP ANY TABLE – Tábla törlése • DROP USER – Felhasználó törlése • ALL PRIVILEGES – MINDEN szabo.zsolt@nik.uni-obuda.hu
SZEREPEK, FELHASZNÁLÓK • CREATE USER {név} IDENTIFIED BY {jelszó}; • Jelszóban ' nem jó, maximum " • Felhasználói névben egyik sem • DROP USER {név}; • Szerep ~ Jogosultság-csoport • CREATE ROLE {szerep}; • DROP ROLE {szerep}; szabo.zsolt@nik.uni-obuda.hu
RENDSZER-JOGOSULTSÁGOK BEÁLLÍTÁSA • GRANT {jogosultság-lista} TO {szerepnév/usernév}; • "WITH GRANT OPTION": továbbadhatóság (!) • GRANT {szerepnév} TO {usernév}; • REVOKE {jogosultság-lista / szerepnév} FROM {usernév}; szabo.zsolt@nik.uni-obuda.hu
OBJEKTUM-JOGOSULTSÁGOK • SELECT • INSERT • UPDATE • DELETE • ALTER • EXECUTE – Közvetlen végrehajtási jog (PL/SQL) • READ – Olvasási jog, file-okra vonatkozik • REFERENCES – Megszorítások hozzáadása • INDEX – CREATE INDEX engedélyezése szabo.zsolt@nik.uni-obuda.hu
OBJEKTUM-JOGOSULTSÁGOK BEÁLLÍTÁSA • GRANT {jogosultság-lista} ON {objektum} TO {felhasználó} [WITH GRANT OPTION]; • REVOKE {jogosultás-lista / ALL} ON {objektum} FROM {felhasználó}; • TABLESPACE: könyvben, CREATE USER-nél is !!! szabo.zsolt@nik.uni-obuda.hu
connect system/gazda as sysdba • Hozzunk létre GUEST, USERS, ADMIN és ROOT jogosultság-csoportokat • GUEST csak bejelentkezni és lekérdezni, USERS táblát módosítani és létrehozni, ADMIN táblát törölni is tud. • Egy ROOTnak minden jogosultsága van • Mindegyik szerephez hozzunk létre usereket • Ezután töröljük az összes usert és szerepet szabo.zsolt@nik.uni-obuda.hu
FÉLÉVES FELADAT • Következő alkalom: Create Table + Insert Into + néhány lekérdezés • Mindegyik lekérdezés: sorszám + SQL + NORMÁLISAN KINÉZŐ kimenet + filenév ( CD mellékleten) • FF Pontozás, lekérdezés darabszámok! • Pót ZH: jövő péntek délután szabo.zsolt@nik.uni-obuda.hu
ISMÉTLÉS… szabo.zsolt@nik.uni-obuda.hu
SELECT (DQL)Záradékok sorrendje • FROM • WHERE • GROUP BY • HAVING • UNION/MINUS • INTERSECT • ORDER BY • INTO szabo.zsolt@nik.uni-obuda.hu
TÁBLÁK ÖSSZEKAPCSOLÁSA szabo.zsolt@nik.uni-obuda.hu
TÁBLÁK ÖSSZEKAPCSOLÁSA • SELECT * FROM emp dolgozo LEFT JOIN emp fonok ON (dolgozo.mgr=fonok.empno) LEFT JOIN dept fon_reszl ON (fonok.deptno=fon_reszl.deptno) LEFT JOIN dept dolg_reszl ON (dolgozo.deptno=dolg_reszl.deptno); • TÖKÉLETES szabo.zsolt@nik.uni-obuda.hu
TÁBLÁK ÖSSZEKAPCSOLÁSA • SELECT * FROM emp dolgozo, emp fonok, dept dolg_reszl, dept fon_reszlWHERE dolgozo.mgr=fonok.empno (+) AND dolgozo.deptno=dolg_reszl.deptno (+) AND fonok.deptno=fon_reszl.deptno (+); • TÖKÉLETES • (+) elhagyható, ha nincs utalás a párral nem rendelkező rekordokra szabo.zsolt@nik.uni-obuda.hu
DDL, DML • create view, rownum • create table, drop table, rename, alter table, oszlop- és tábla-megszorítások • Kulcsok rendszere • insert into, update, delete from • savepoint, rollback, commit • „client tells us when to commit” ??? szabo.zsolt@nik.uni-obuda.hu
FELADAT szabo.zsolt@nik.uni-obuda.hu
1 • Konzisztens módon hozzon létre egy dolgozó8 nevű táblát az emp tábla RESEARCH és SALES részlegbeli azon dolgozóiból, akik főnökének van főnöke, továbbá egy részleg8 nevű táblát a dept táblából. E táblák létrehozása előtt győződjön meg róla, hogy az adott néven nem létezik-e már másik objektum, és ha igen, törölje azt. A további feladatok e táblákra vonatkoznak. A megoldások során rendszeresen alkalmazzon nézettáblákat! szabo.zsolt@nik.uni-obuda.hu
2 • Egy szkript programban végezzen megszorítás hozzáadást, ellenőrzést és visszaállítást az alábbi módon: • Egy MANAGER munkakörű dolgozó csak 2000 és 3000 USD közötti fizetést kaphat. • Az MGR oszlop legyen idegen kulcs, és mutasson az EMPNO oszlopra. • Kiséreljen meg egy megfelelő és egy nem megfelelő rekordot felvinni. Listázással ellenőrizze e műveletek végrehajtását, majd visszaállítás után annak hatását. szabo.zsolt@nik.uni-obuda.hu
3 • Bővítse a dolgozó8 táblát egy jutalom oszloppal, és töltse fel ezt olymódon, hogy akinek nagyobb a jövedelme, mint részlegének átlagjövedelme, az 400 USD jutalmat kapjon, a többiek pedig 800 USD-t. szabo.zsolt@nik.uni-obuda.hu
3 • Bővítse a dolgozó8 táblát egy jutalom oszloppal, és töltse fel ezt olymódon, hogy akinek valamelyik közvetlen beosztottja az ő jövedelmének felénél többet keres, az 1000 USD jutalmat kapjon, a többiek pedig 600 USD-t. szabo.zsolt@nik.uni-obuda.hu
4 • Listázza formázva (fej-, és lábléccel, stb.) a dolgozók nevét, munkakörét, telephelyét, a jutalmat is tartalmazó összjövedelmét, és a főnökének nevét, elsődlegesen a főnök neve szerint növekvően, másodlagosan a dolgozók neve szerint csökkenő módon rendezve. Ha egy dolgozónak nincs főnöke, akkor a főnök adatainak helyére írja ki, hogy "nincs főnöke". szabo.zsolt@nik.uni-obuda.hu
GYAKOROLNI GYAKOROLNI GYAKOROLNI szabo.zsolt@nik.uni-obuda.hu