Hozzáférés-vezérlők az SQL felhasználókhoz és szerepkörökhöz

click fraud protection

Minden relációs adatbázis-kezelő rendszerek biztosítson valamiféle belső biztonsági mechanizmust, amelynek célja az adatvesztés, adatsérülés vagy adatlopás veszélyeinek minimalizálása. A kínálatuk az egyszerű jelszóvédelem Microsoft Access a komplex felhasználói / szerepstruktúrához, amelyet olyan fejlett relációs adatbázisok támogatnak, mint a Jóslat ésMicrosoft SQL Szerver. Egyes biztonsági mechanizmusok közösek az összes adatbázison, amely aStrukturált lekérdezési nyelv.

Felhasználói szintű biztonság

Szerver alapú adatbázisok támogatják a felhasználó hasonló, mint a számítógépes operációs rendszerekben. Ha ismeri az itt található felhasználói / csoport hierarchiát Microsoft Windows Az NT és a Windows 2000 esetén az SQL Server és az Oracle által támogatott felhasználói / szerepkörcsoportok hasonlóak.

Hozzon létre egyedi adatbázis felhasználói fiókokat minden olyan személy számára, aki hozzáfér az adatbázisához.

Kerülje az általános fiókok készítését több ember számára. Először is, ez a gyakorlat kiküszöböli az egyéni elszámoltathatóságot - ha a felhasználó változtat az adatbázisán (mondjuk úgy, hogy 5000 dolláros emelést adva magának), akkor nem lehet visszavezetni egy adott személyre az audit használatával naplók. Másodszor, ha egy adott felhasználó elhagyja a szervezetét, és törölni kívánja hozzáférését az adatbázisból, akkor meg kell változtatnia a jelszót, amelyre minden felhasználó támaszkodik.

instagram viewer

Webfejlesztő
OsztapenkoOlena/Getty Images

A felhasználói fiókok létrehozásának módszerei platformonként eltérőek, és a pontos eljárást a DBMS-specifikus dokumentációban kell keresnie. A Microsoft SQL Server felhasználóinak meg kell vizsgálniuk a sp_adduser tárolt eljárás. Az Oracle adatbázis-rendszergazdák megtalálják a FELHASZNÁLÓ LÉTREHOZÁSA parancs hasznos. Érdemes megvizsgálnia az alternatív hitelesítési sémákat is. Például a Microsoft SQL Server támogatja a Windows NT Integrated Security használatát. Ebben a sémában a felhasználókat a Windows NT felhasználói fiókok azonosítják az adatbázisban, és nem kell további felhasználói azonosítót és jelszót megadniuk az adatbázis eléréséhez. Ez a megközelítés azért népszerű az adatbázis-adminisztrátorok körében, mert áthelyezi a számla terheit kezelése a hálózati adminisztráció személyzetének, és ez megkönnyíti az egyszeri bejelentkezést a végfelhasználó.

Szerepszintű biztonság

Ha kevés felhasználóval rendelkező környezetben tartózkodik, valószínűleg úgy találja, hogy a felhasználói fiókok létrehozása és az engedélyek közvetlen hozzárendelése elegendő az Ön igényeinek. Ha azonban nagyszámú felhasználóval rendelkezik, akkor el fog borulni a fiókok fenntartása és a megfelelő engedélyek. Ennek a tehernek a megkönnyítése érdekében a relációs adatbázisok támogatják szerepek. Az adatbázis-szerepkörök hasonlóan működnek, mint a Windows NT-csoportok. A felhasználói fiókok hozzárendelésre kerülnek a szerepkör (ek) hez, és az engedélyeket ezután a szerephez egészhez, nem pedig az egyes felhasználói fiókokhoz rendelik. Létrehozhat például egy DBA szerepkört, majd hozzáadhatja az adminisztratív személyzet felhasználói fiókjait ehhez a szerephez. Ezt követően az összes jelenlegi (és jövőbeli) rendszergazdához hozzárendelhet egy speciális engedélyt, egyszerűen csak a szerephez rendelve az engedélyt. Ismét a szerepkörök létrehozásának eljárásai platformonként változnak. Az MS SQL Server rendszergazdáknak meg kell vizsgálniuk a sp_addrole tárolt eljárás, míg az Oracle DBA-knak a SZEREP LÉTREHOZÁSA szintaxis.

Engedélyek megadása

Most, hogy felvettük a felhasználókat az adatbázisunkba, itt az ideje elkezdeni a biztonság megerősítését engedélyek hozzáadásával. Első lépésünk megfelelő adatbázis-engedélyek megadása a felhasználóinknak. Ezt az SQL GRANT utasítás használatával valósítjuk meg.

A következő állítás szintaxisa:

GRANT. 
[TOVÁBB. 
NAK NEK. 
[TÁMOGATÁSI OPCIÓVAL]

Most nézzük soronként ezt az állítást. Az első sor, GRANT , lehetővé teszi számunkra, hogy meghatározzuk a megadott táblaengedélyeket. Ezek lehetnek táblázati szintű engedélyek (például SELECT, INSERT, UPDATE és DELETE) vagy adatbázis-engedélyek (például CREATE TABLE, ALTER DATABASE és GRANT). Több engedély is megadható egyetlen GRANT utasításban, de a tábla szintű és az adatbázis szintű engedélyeket nem lehet egyetlen utasításban egyesíteni.

A második sor, TOVÁBB

Végül a negyedik sor, TÁMOGATÁSI OPCIÓVAL, nem kötelező. Ha ez a sor szerepel az utasításban, akkor az érintett felhasználó megadhatja ugyanezeket az engedélyeket más felhasználóknak is. Vegye figyelembe, hogy a WITH GRANT OPTION nem adható meg, ha az engedélyek szerephez vannak rendelve.

Példa adatbázis-támogatásokra

Nézzünk meg néhány példát. Első forgatókönyvünkben nemrégiben felvettünk egy 42 adatbeviteli szolgáltatóból álló csoportot, akik felveszik és fenntartják az ügyfelek nyilvántartását. Hozzá kell férniük az Ügyfelek táblázat információihoz, módosítaniuk kell ezeket az információkat, és új rekordokat kell hozzáadniuk a táblához. Nem kell tudniuk teljesen törölni egy rekordot az adatbázisból.

Először létre kell hoznunk felhasználói fiókat minden operátor számára, majd hozzá kell adni őket egy új szerephez, Adatbevitel. Ezután a következő SQL utasítással kell megadnunk a megfelelő engedélyeket:

TÁMOGATÁS KIVÁLASZTÁS, INSERT, FRISSÍTÉS. 
ON ügyfelek. 
TO DataEntry. 

Most vizsgáljuk meg azt az esetet, amikor adatbázis-szintű engedélyeket rendelünk hozzá. Szeretnénk engedélyezni, hogy a DBA szerepkör tagjai új táblákat adhassanak hozzá az adatbázisunkhoz. Továbbá azt akarjuk, hogy más felhasználóknak is engedélyt adhassanak ugyanerre. Itt van az SQL utasítás:

TÁMOGATÁSI TERÜLET. 
A DBA-hoz. 
TÁMOGATÁSI OPCIÓVAL. 

Vegye figyelembe, hogy a WITH GRANT OPTION sort felvettük annak biztosítására, hogy a DBA-k ezt az engedélyt más felhasználókhoz is hozzárendelhessék.

Engedélyek eltávolítása

Az SQL a REVOKE parancsot tartalmazza a korábban megadott engedélyek eltávolításához. Itt van a szintaxis:

VISSZAVONÁS [TÁMOGATÁSI LEHETŐSÉG]
TOVÁBB. 
TÓL TŐL. 

Észre fogja venni, hogy ennek a parancsnak a szintaxisa hasonló a GRANT parancséhoz. Az egyetlen különbség az, hogy a GRANT OPTION-val a REVOKE parancssorban van megadva, nem pedig a parancs végén. Példaként képzeljük el, hogy vissza akarjuk vonni Mary korábban engedélyt a rekordok eltávolítására az Ügyfelek adatbázisából. A következő parancsot használnánk:

TÖRLÉS TÖRLÉSE. 
ON ügyfelek. 
Máriától. 

Van egy további, a Microsoft SQL Server által támogatott mechanizmus, amelyet érdemes megemlíteni - a DENY parancsot. Ez a parancs felhasználható arra, hogy kifejezetten megtagadja a felhasználó engedélyét, amely egyébként meglévő vagy jövőbeli szereplési tagsága révén rendelkezhet. Itt van a szintaxis:

TAGADNI. 
TOVÁBB. 
NAK NEK. 
instagram story viewer