HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A sysprotects rendszertábla


MS SQL Server rendszertáblái 11. rész

Példaprogram letöltése

6359 bájt

Cikkünkben a sysprotects rendszertábla jellemzőivel ismerkedhetünk meg részletesen. Bemutatásra kerül, milyen jogosultsággal összefüggő műveletek elvégzése után jelennek meg bejegyzések a rendszertábla oszlopaiban, az adott oszlopok milyen jelegű információkat tárolnak, és a bekerült adatok hogyan kapcsolódnak más rendszertáblákhoz.

A példához szükséges a SampleDatabase11 adatbázis, melyet a mellékelt SampleDatabase11.sql parancsállomány lefuttatásával hozhatunk létre. A SampleDatabase11.sql script 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A rendszertábla bejegyzései nagyon hasonlítanak a sorozat ezt megelőző számában ismertetett syspermissions rendszertábla bejegyzéseihez, mintegy kiegészítve azt. A sysprotects rendszertábla adatai is bizonyos objektumokhoz adott felhasználónak adott, illetőleg adott felhasználótól elvett jogokkal kapcsolatos információkat tartalmaznak, csak más csoportosításban. Az MS SQL Server igen nagy hangsúlyt fektet a többszintű jogosultsági rendszer kezelésére, valószínűleg az adatok több-szempontú tárolása is azt a célt szolgálja, hogy az adott jogok több formában tárolódjanak, és nagy felhasználószám esetén is könnyű legyen egy adott információt előkeresni bizonyos időn belül. Ezen túlmenően a módszer eredményeképpen az adatbázis sérülékenysége is kisebb.
Múlt heti cikkünkben bemutattuk, hogyan adhatunk szerverszintű, valamint adatbázisszintű felhasználókat rendszerünkhöz, így a példaprogramunk indítása utáni inicializációs lépésekben felhasznált rendszerfüggvények ismertetésétől eltekintünk.
Vizsgáljuk meg a rendszertábla oszlopait:
Oszlopnév Típus Leírás
id int Az objektum azonosítója, melyhez valamilyen felhasználói jog kapcsolódik.
uid smallint A felhasználó, vagy felhasználói csoport sysobjects rendszertáblabeli azonosítója, melyhez a jog kapcsolható.
action tinyint A felhasználói jog típusára utaló kód. Értékei: 26 = REFERENCES, 178 = CREATE FUNCTION, 193 = SELECT, 195 = INSERT, 196 = DELETE, 197 = UPDATE, 198 = CREATE TABLE, 203 = CREATE DATABASE, 207 = CREATE VIEW, 222 = CREATE PROCEDURE, 224 = EXECUTE, 228 = BACKUP DATABASE, 233 = CREATE DEFAULT, 235 = BACKUP LOG, 236 = CREATE RULE.
protecttype tinyint Az adott felhasználó joghoz kapcsolódó viszonya. Értékei: 204 = GRANT_W_GRANT, 205 = GRANT, 206 = REVOKE.
columns varbinary(4000) Annak az oszlopnak az azonosítója egy bitmintában megfogalmazva, melyhez a SELECT vagy UPDATE jog kapcsolódik. Értékei: 0: minden oszlopra vonatkozik a jogosultság, NULL: nincs információ.
grantor smallint A felhasználói jogot átruházó felhasználó azonosítója (ezzel a joggal rendelkező felhasználó).
A program kapcsolódó funkciói attól a pillanattól kezdve elérhetőek, hogy a rendszerben szerverszintű, majd adatbázisszintű felhasználót hoztunk létre. A program indulásakor az Indítás gombra kattintva érhető el, hogy a kezdeti beállítások megtörténjenek, a VISITOR nevű felhasználó létrejöjjön, és SAMPLEUSER néven – a PUBLIC csoport részeként – hozzáadódjon példa adatbázisunkhoz.
A felhasználó létrehozása a mellékelt script lefuttatása után az adatbázisba került AddLogin és AddUser tárolt eljárások végrehajtásával történik, melyek az sp_addlogin és sp_adduser rendszerfüggvényeket hívják meg, a múlt heti cikkben ismertetett módon.
A felhasználóhoz a Form-on elhelyezett ComboBox-ban felsorolt jogok közül adhatjuk a kiválasztottat, tetszőleges módon. A ’Választott jog hozzáadása’ gombbal GRANT, míg a ’Választott jog törlése’ gombbal REVOKE utasítást hajtunk végre a kiválasztott jog felhasználásával, melyek a Table1 adatbázistáblánkat érintik.
Az egyes jogok hozzáadása után a sysprotects rendszertáblába került bejegyzéseket ellenőrizhetjük a DBGrid kontrolban.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 81. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |