1_sp_table_privileges.sql: Egy tábla privilégiumainak lekérdezése.
Egy tábla privilégiumait az sp_table_privileges tárolt eljárással kérdezhetjük le. Az eljárás szintaxisa a következő:
sp_table_privileges [ @table_name_pattern = ] 'table_name_pattern'
[ , [ @table_owner_pattern = ] 'table_owner_pattern' ]
[ , [ @table_qualifier = ] 'table_qualifier' ]
A tárolt eljárás paraméterei:
table_name_pattern
A tábla, vagy táblák neveit adhatjuk meg ebben a paraméterben. A joker karakterek (pl. „%”) engedélyezettek, így akár több tábla adatait is lekérdezhetjük.
table_owner_pattern
A tábla tulajdonosának neve. Itt is használhatók a joker karakterek, de ezt a paramétert nem kötelező megadni.
table_qualifier
Az adatbázis nevét adhatjuk meg ebben a paraméterben, de ez is elhagyható.
Az eljárás egy eredménylistát ad vissza az alábbi táblázatban szereplő mezőkkel:
| Oszlop neve |
Adattípus |
Leírás |
| TABLE_QUALIFIER |
sysname |
Az SQL szerveren belül az adatbázis neve. Értéke lehet NULL is. |
| TABLE_OWNER |
sysname |
A tábla tulajdonosának neve. |
| TABLE_NAME |
sysname |
A tábla neve. |
| GRANTOR |
sysname |
Annak a felhasználónak a neve, aki megadta a hozzáférési jogot a táblához a GRANTEE mezőben lévő felhasználónak. |
| GRANTEE |
sysname |
Annak a felhasználónak a neve, akinek jogosultsága van a TABLE_NAME mezőben megadott táblában a PRIVILEGE mezőben megadott művelet végrehajtására. |
| PRIVILEGE |
sysname |
Egy a lehetséges műveletek közül, amelyet a GRANTEE mezőben megadott felhasználó végrehajthat a táblában. Ez lehet SELECT (rekordok lekérdezése), INSERT (rekordok beszúrása), UPDATE (rekordok módosítása), DELETE (rekordok törlése) és REFERENCES (hivatkozások létrehozása). |
| IS_GRANTABLE |
sysname |
Ha ennek a mezőnek értéke „YES”, akkor a GRANTEE mezőben megadott felhasználónak joga van további felhasználóknak jogokat adni a táblában elvégezhető műveletekhez. |
2_sp_column_privileges: oszlop privilégiumainak lekérdezése
Egy táblán belül az oszlopokra is külön-külön megadhatunk jogokat. Ezeknek a jogoknak a lekérdezését az sp_column_privileges tárolt eljárással tudjuk lekérdezni. Az eljárás szintaxisa a következő:
sp_column_privileges [ @table_name = ] 'table_name'
[ , [ @table_owner = ] 'table_owner' ]
[ , [ @table_qualifier = ] 'table_qualifier' ]
[ , [ @column_name = ] 'column' ]
Az eljárás paraméterei a következők:
table_name
A lekérdezendő mezőt tartalmazó tábla neve. A tábla nevét kötelezően és egyértelműen meg kell adni, nem használhatók rövidítések (joker karakterek).
table_owner
A tábla tulajdonosának neve, nem kötelező megadni.
table_qualifier
A táblát tartalmazó adatbázis neve. Ezt sem kötelező megadni.
column_name
A tábla lekérdezendő oszlopának neve. Ha nem adjuk meg, akkor a tábla összes mezője lekérdezésre kerül.
A tárolt eljárás egy eredménylistát ad vissza az alábbi táblázatban szereplő mezőkkel:
| Oszlop neve |
Adattípus |
Leírás |
| TABLE_QUALIFIER |
sysname |
A táblát tartalmazó adatbázis neve. |
| TABLE_OWNER |
sysname |
A tábla tulajdonosának neve. |
| TABLE_NAME |
sysname |
A tábla neve. |
| COLUMN_NAME |
sysname |
Az oszlop neve. |
| GRANTOR |
sysname |
Annak a felhasználónak a neve, aki megadta a hozzáférési jogot a táblához a GRANTEE mezőben lévő felhasználónak. |
| GRANTEE |
sysname |
Annak a felhasználónak a neve, akinek jogosultsága van a COLUMN_NAME mezőben megadott oszlopban a PRIVILEGE mezőben megadott művelet végrehajtására. |
| PRIVILEGE |
varchar(32) |
Egy a lehetséges műveletek közül, amelyet a GRANTEE mezőben megadott felhasználó végrehajthat a táblában. Ez lehet SELECT (mező adatainak lekérdezése), INSERT (új adatok beszúrása), UPDATE (adatok módosítása), DELETE (adatok törlése) és REFERENCES (hivatkozások létrehozása). |
| IS_GRANTABLE |
varchar(3) |
Ha ennek a mezőnek értéke „YES”, akkor a GRANTEE mezőben megadott felhasználónak joga van további felhasználóknak jogokat adni a táblában elvégezhető műveletekhez. |