210 likes | 292 Views
Adatbázisok használata 1. (11. gyakorlat). 2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!. Privilégiumok.
E N D
Adatbázisok használata 1.(11. gyakorlat) 2012. tavaszi félév Vitéz Gergely
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Privilégiumok • Különböző felhasználói jogok léteznek egy korszerű adatbázis-kezelő rendszerben • DCL (Data Control Language), mely része a szabvány SQL nyelvnek • Célja: Adatbázisok védelme és a beavatkozások korlátozása
Jogosultságok csoportosítása • Rendszerszintű védelmet biztosító • Ezek az egyes rendszerkomponensek elérését korlátozzák • Adatbázis védelmét biztosító • AB-hez való hozzáférést korlátozzák • Objektumkezelési jogosultságok • Objektumok tartalmához való hozzáférés • Továbbadási jogosultságok
Jogosultságok csoportosítása • SQL utasítások elvégzése szerint • Rendszerjogosultságok • Objektumkezelési jogosultságok • A legáltalánosabb tulajdonos: • DBA (Data Base Administrator) • Tőle kapják a felhasználók a jogokat • Oracle rendszerben System/Sys
Rendszerjogosultságok • A CREATE/ALTER/DROP utasításokat érinti • Pl: • CREATE SESSION • CREATE TABLE • ALTER ANY TABLE • DROP ANY TABLE • CREATE USER • DROP USER • Select az összes táblából: • SELECT ANY TABLE
Rendszerjogosultságok • Az ANY-t tartalmazó jogosultságok az összes objektumra vonatkoznak • Az ANY nélküliek a saját tulajdonú objektumokra vonatkoznak. • Nincs mindegyikhez pár • SELECT NAME FROM SYSTEM_PRIVILEGE_MAP;
Jogosultságok adása • GRANT kulcsszóval történi GRANT [jogosultság/szerepkör] TO [felhasználó/szerepkör/public] [WITH ADMIN OPTION] • Public!!! • WITH ADMIN OPTION!!!
Objektumkezelési jogosultságok • Egy objektum tulajdonosa a saját objektumaihoz minden jogosultsággal rendelkezik, és tovább is adhatja! • Pl: • SELECT • INSERT • UPDATE • DELETE • ALTER • Megszorítások létrehozása
Objektumkezelési jogosultság adása GRANT [objektumkezelési jog/ALL] [oszlopok] ON [objektum] TO [felhasználó/szerepkör/public] WITH GRANT OPTION SELECT NAME FROM TABLE_PRIVILEGE_MAP;
Visszavonások REVOKE [objektumkezelési jog/ALL]ON [objektum] FROM [felhasználó/szerepkör/public] Illetve: REVOKE [rendszerjogosultság/szerepkör] FROM [felhasználó/szerepkör/public]
Táblaterület • Az Oracle objektumai itt tárolódnak • Ezek fizikai fájlok, melyek szerkezetét az adatbázis-kezelő rendszer alakítja ki • A rendszeradatok a SYSTEM táblaterületen tárolódnak
Felhasználó • Mi definiál pontosan egy felhasználót? • CREATE USER utasítás • Jogosultságainak összessége
Felhasználó létrehozása/törlése CREATE USER felhasználó IDENTIFIED BY jelszó DROP USER felhasználó [CASCADE] • Cascade esetén törlődnek a felhasználó által létrehozott objektumok
Felhasználó létrehozása • Jogot kell adni a belépéshez • CREATE SESSION • Használhatóak a beépített szerepkörök is • CONNECT, RESOURCE • GRANT CONNECT, RESOURCE TO felhasznalo;
Kapcsolódás az adatbázishoz • CONNECT felh/jelszó • DISCONNECT
SZEREPKÖR • Jogosultságok halmaza • Csak jogosultságokkal rendelkezik, objektumokkal nem! • Létrehozása: CREATE ROLE név [IDENTIFIED BY jelszó] • Törlése: DROP ROLE név
Gyakorlás • Kapcsolódjon az adatbázishoz sys felhasználóként (jelszó rendszergazda), és változtassa meg a system felhasználó jelszavát Oracle-re • AS SYSDBA!!! Ha adminisztrátorként szeretnénk csatlakozni, ezt kell a végére írni!!! • CONNECT sys/rendszergazda as SYSDBA • ALTER USER system IDENTIFIED BY Oracle
Gyakorlás 2 • Hozzon létre egy új felhasználót nebulo néven asdfasdf jelszóval, majd lássa el a szükséges jogosultságokkal, hogy létrehozhasson új táblákat.Ezután hozzon létre egy táblát és próbálja meg lekérdezni scott/tiger-el, majd miután látjuk, hogy nem megy, adjunk scottnak jogosultságot hozzá.
Megoldás • connectsystem/Oracle assysdba • createusernebuloidentifiedbyasdfasdf; • GRANT ALL PRIVILEGES TO nebulo; • connectnebulo/asdfasdf; • createtable teszt(nev varchar2(20),szamnumber(5)); • INSERT INTO teszt VALUES('jozsi',20); • select * from teszt; • connectscott/tiger • select * fromnebulo.teszt; • connectnebulo/asdfasdf • grantselecton teszt toscott; • connectscott/tiger • select * fromnebulo.teszt;
Köszönöm a figyelmet! Anyag: Példatár 11. fejezet Féléves feladat leadási határidő: 13. hét !!! http://www.orakulum.com http://jerry.gorextar.hu/ab1 vitez.gergely@spectronet.hu