15. tétel Adatbázis felhasználói és jogosultságaik SEGÉDLET VÉGÉN!!!!
ADATBÁZIS ALAPFOGALMAK Adat: A adat értelmezhető (észlelhető, érzékelhető, felfogható és megérthető) személytelen,objektív, feldolgozótól független ismeret. Az adat az információ hordozója, vagyis tények, fogalmak feldolgozására alkalmas reprezentációja. Információ: az adatnak valamilyen megjelenése, új ismeretté értelmezett adat. Az információ mindig személyes. Adatbázis: felesleges redundancia nélkül közösen tárolt, egymással kapcsolatban lévő adatok halmaza. Adatbázis-kezelő rendszer: biztosítja az adatbázisban tárolt adatok létrehozását, kezelését, valamint leírja és kezeli az adatok közötti komplex kapcsolatokat. Az adatbáziskezelő rendszernek támogatnia kell valamilyen adatmodellt. Adatmodell: az adathalmaz elemei között fennálló kapcsolatok struktúrális leírása. Az adatmodellezéssel az a cél, hogy egy információs rendszer adatait és az adatok között fennálló kapcsolatokat következetesen ábrázolva, elősegítsük a számítógépes információfeldolgozást.
ALAPFOGALMAK Adatbázis-kezelő rendszer: egy szoftver, amely biztosítja az adatbázisban tárolt adatok létrehozását, kezelését, valamint leírja és kezeli az adatok közötti komplex kapcsolatokat. Az adatbázis-kezelő rendszernek támogatnia kell valamilyen adatmodellt, hogy a valóságot le tudja képezni egy számunkra megfogható objektumra. Mit kell biztosítania: · Egy megfelelő módon leírt adatfeldolgozás végrehajtását. (adatbázis létrehozása,módosítása, törlés) · Adatbázis következetességét (csak valós adatokat tároljunk) · Az adatok közti komplex kapcsolatok kezelését és ábrázolását. · Az adatbázis valamennyi adatának elérését · Az adatok védelmét, titkosítását · A hozzáférési jogok kezelését · Adatfüggetlenséget · A redundancia –menteséget és annak ellenőrzését · Az adatbázis integritásának karbantartását · Helyreállíthatóságot · Többfelhasználós rendszerekben az egyidejű hozzáférést · Osztott adatbázisokban az adatok szétosztását, megtalálását · Adatforgalom optimalizálását
SQL utasítás csoportok DDL –Data Definition Language DML – Data Manipulation Language CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése INSERT INTO - adatbevitel UPDATE – adatok módosítása DELETE – sorok(adatok) törlése DQL –Data Query Language SELECT - lekérdezések DCL –Data Controll Language CONNECT TO - csatlakozás, DISCONNECT - kilépés GRANT jogok TO PUBLIC – hozzáférési jogok adás REVOKE jogok FROM PUBLIC– jogok visszavonása LOCK – tábla zárolás UNLOCK – zár feloldása COMMIT – módosítások érvényesítése ROLLBACK – módosítások visszavonása
A feladatot megoldó SQL parancsok: SEGÉDLET!!!!! A felhasználók minden tevékenységét a jogosultsági rendszer ellenőrzi. a jogosultsági rendszer lehet hierarchikus vagy egyszintű hierarchikus jogosultsági rendszer esetén csoportok és alcsoportok képezhetők, egyszintű jogosultsági rendszer esetén szerepkörök (Role) alakíthatók ki A csoportoknak és a szerepeknek részletesen szabályozhatók a jogaik. a hozzáférés engedélyezése6tiltása az adatbázis objektumaihoz legalapvetőbb jogosultságok. olvasás, futtatáa, módosítás, törlés, szerkezet megváltoztatása egy felhasználó több csoportba, szerepbe is besorolható a jogosultsági rendszernek világosan le kell írnia, hogy egymásnak ellentmondó jogok közül, melyik jut érvényre A feladatot megoldó SQL parancsok: SEGÉDLET!!!!!
Felhasználói jogosultságok A DCL nyelv a jogok, jogosultságok parancsaira korlátozódik. Az adatbázis-kezelés egyik alapvető feltétele az, hogy az adatbázist több felhasználó is használhatja akár egy időben is, és adataikat letárolhatják. Az adatbázis így több különböző felhasználó adatait tárolja együttesen, ebből kifolyólag az adatbázis-kezelő rendszernek gondoskodnia kell arról, hogy mindenki csak azokat a műveleteket végezhesse el, amelyekre jogosult, vagyis csak a jogosult adatokhoz férhessen hozzá.
Hozzáférési jogosultságok Az adatbázishoz való hozzáférés szabályozása: Az SQL rendszerekben minden felhasználónak van egy azonosítója, és egy jelszava. Így minden felhasználóhoz könnyen rendelhető egy jogosultsági kör. A felhasználó egy CONNECT TO adatbázisnév USER felhasználónév; utasítással tud az adott adatbázishoz kapcsolódni. Ahhoz, hogy egy adatbázist aktiváljunk, egy újabb parancsra van szükség: SET CONNECTION DEFAULT adatbázisnév; A létrehozott kapcsolatot, pedig a következő utasítással szüntethetjük meg: DISCONNECT adatbázisnév (ALL/CURRENT);
Felhasználói jogosultságok Az SQL rendszerekben minden objektumnak, vagyis adatbázis elemnek van egy tulajdonosa, ez pedig, az a felhasználó, aki létrehozta. A jogosultságok megadása a GRANT utasítással történik, melyben meg kell adni, hogy mely táblára, mely műveletre, és kinek engedélyezzük. Az egyes felhasználóknak kétféle jogot adhatunk: adatbázisra vonatkozót GRANT adatbázisjog TO PUBLIC felhasználói nevek listája; adatbázis elemre vonatkozót GRANT műveleti jog ON adatbáziselem neve TO PUBLIC felhasználói nevek listája WITH GRANT OPTION; A parancssorokban szereplő PUBLIC kulcsszó használata következtében valamennyi felhasználó kap jogot, egyéb esetben csak az utasításban felsorolt felhasználók, vagy felhasználói csoportok. A WITH GRANT OPTION záradék lehetővé teszi, hogy a felhasználó, a kapott jogait más felhasználóknak továbbadhassa. Tehát ezek után bárki megszerezheti a jogokat.
Adatbázisra vonatkozó jogok: CONNECT: kapcsolódás az adatbázishoz és a négy adatkezelési művelet (adatbevitel, módosítás, törlés, lekérdezés) használatának engedélyezése RESOURCE: adatbáziselemek létrehozásának, és megszűntetésének joga, továbbá az adatbázis kezelési joga DBA: az adatbázissal kapcsolatos bármilyen művelet elvégzésére vonatkozó jog, beleértve ebbe az adatbázis megszűntetését is.
Adatbáziselemekre vonatkozó jogok : ALL: az összes az alábbiakban felsorolt jog ALTER: táblák illetve nézettáblák megváltoztatási joga DELETE: sorok törlésére vonatkozó jog INDEX: táblázat indexelésének, illetve az index megszűntetésnek joga INSERT: új sorok bevitelére vonatkozó jog SELECT oszlopnév-lista: a felsorolt oszlopok, vagy azok hiányában a tábla valamennyi oszlopára vonatkozó lekérdezési jog UPDATE oszlopnév-lista: a felsorolt oszlopok, vagy azok hiányában a tábla valamennyi oszlopára vonatkozó módosítási jog REFERENCES oszlopnév-lista: a felsorolt oszlopokra, vagy azok hiányában a tábla valamennyi oszlopára vonatkozó hivatkozási jog Az adatbázisra, vagy annak elemeire vonatkozó jogoknak mindig összhangban kell lenniük, de mindig az adatbáziselemre vonatkozó jogok az erősebbek.
REVOKE adatbázisjog FROM PUBLIC felhasználói nevek listája Adatbázis jogok visszavonása: REVOKE adatbázisjog FROM PUBLIC felhasználói nevek listája Műveletijogvisszavonása: REVOKE műveleti jog ON adatbáziselem neve FROM PUBLIC felhasználó nevek listája;
HOZZÁFÉRÉSI ZÁRAK KEZELÉSE Az adatbázis-kezelő rendszerek egyik kiváltsága, hogy adatbázis területeket, adatlapokat, vagy sorokat automatikusan tudnak zárolni. Szükség esetén a felhasználó is kezdeményezheti a zárolást. Az SQL nyelv csak teljes táblázat zárolását engedélyezi, táblázatsorokét nem. Egy táblázat zárolásának kezdeményezésére szolgáló utasítás a LOCK TABLE, mely a következő: LOCK TABLE táblanév IN (SHARE/EXCLUSIVE) MODE; Az utasításban szereplő SHARE kulcsszó használatával egyszerre több felhasználó tud az adott táblából lekérdezni, de módosítani nincs lehetőségük. Az EXCLUSIVE kulcsszó használatával a táblázatot, a zárolást kezdeményező felhasználó kizárólagosan használhatja, és felújítási műveleteket is hajthat végre rajta. A gyakorlatban az egyes zárolások visszavonására szükség lehet néha, melyre az UNLOCK TABLE utasítás szolgál. UNLOCK TABLE táblanév;
TRANZAKCIÓK KEZELÉSE A vezérlő utasításokhoz szokás sorolni a művelet végrehajtást szabályozó, más néven az úgynevezett tranzakció kezelő utasításokat. Az SQL szabványban két, a tranzakció végét jelző utasítást szokás definiálni. Az egyik utasítás a tranzakció sikeres befejezését jelenti, míg a másik a korábban végrehajtott tevékenységek visszavonását, azaz a megsemmisítését végzi. Az első, vagyis a tranzakció sikeres befejezésére a COMMIT utasítás szolgál. Ennek hatására véglegesítődnek a korábban végrehajtott tevékenységek. Ezzel szemben a másik utasítás, a ROLLBACK hatására a korábbi tevékenységek érvénytelenítődnek. Segítségével például egy hibával félbeszakadt műveletsort lehet töröltetni.
Felhasználók kezelése, felhasználói jogosultságok szabályozása Rendszergazda (DBA: Database Administrator): felügyeli az egész rendszer működését, munkáját speciális programok (és SQL scriptek) segítik. Feladatai: Felhasználók felvétele, jogosultságaik kiosztása, gazdálkodás az erőforrásokkal, rendszerhibák kiküszöbölése, mentések, visszatöltések, a rendszer működésének figyelése, hangolása, stb. A rendszer installálása után a DBA ezen teendők elvégzéséhez szükséges jogokat megkapja. DBA veszi fel az új felhasználókat a rendszerbe: CREATE USER felhasználó_név IDENTIFIED BY jelszó [tárolási tartomány, erőforrás korlátozások, profilok]; Módosítás, törlés az ALTER USER …; DROP USER …; parancsokkal végezhető el. A felhasználó is használhatja ezt az utasítást de csak a saját jelszavának módosítására: ALTER USER felhasználó_név IDENTIFIED BY jelszó; DBA írja elő, hogy a felhasználó mit csinálhat a rendszerben, azaz milyen jogai vannak. ORACLE-ben minden felhasználóhoz kapcsolódik automatikusan egy séma (SCHEMA), amely a felhasználó által definiált (CREATE …) adatbázis objektumokat foglalja magába. A séma neve azonos a felhasználói névvel.
Felhasználók kezelése, felhasználói jogosultságok szabályozása Rendszergazda (DBA: Database Administrator): felügyeli az egész rendszer működését, munkáját speciális programok (és SQL scriptek) segítik. Feladatai: Felhasználók felvétele, jogosultságaik kiosztása, gazdálkodás az erőforrásokkal, rendszerhibák kiküszöbölése, mentések, visszatöltések, a rendszer működésének figyelése, hangolása, stb. A rendszer installálása után a DBA ezen teendők elvégzéséhez szükséges jogokat megkapja. DBA veszi fel az új felhasználókat a rendszerbe: CREATE USER felhasználó_név IDENTIFIED BY jelszó [tárolási tartomány, erőforrás korlátozások, profilok]; Módosítás, törlés az ALTER USER …; DROP USER …; parancsokkal végezhető el. A felhasználó is használhatja ezt az utasítást de csak a saját jelszavának módosítására: ALTER USER felhasználó_név IDENTIFIED BY jelszó; DBA írja elő, hogy a felhasználó mit csinálhat a rendszerben, azaz milyen jogai vannak. ORACLE-ben minden felhasználóhoz kapcsolódik automatikusan egy séma (SCHEMA), amely a felhasználó által definiált (CREATE …) adatbázis objektumokat foglalja magába. A séma neve azonos a felhasználói névvel.