HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

MS SQL tárolt eljárások


MS SQL tárolt eljárások 11. rész

Példaprogram letöltése

8982 bájt

Az MS SQL-ben használhatunk ún. szerepeket, amelyeket leginkább a Windows NT-ben megszokott felhasználói csoportokhoz hasonlíthatunk. A szerepek használatával nagymértékben megkönnyíthetjük az SQL szerver kezeléséhez kapcsolódó rendszergazdai feladatokat. Ebben a részben azokat a tárolt eljárásokat vesszük sorra, amelyek a szerepek kezeléséhez kapcsolódnak.

1_sp_addrole.sql: Új szerep létrehozása
Új szerepet az sp_addrole tárolt eljárással hozhatunk létre. Az eljárás szintaxisa a következő:
sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ]
Az eljárás paraméterei:
rolename
Az új szerep nevét kell megadnunk ebben a paraméterben. A nevet kötelezően meg kell adnunk, valamint figyelni kell arra, hogy ez az adatbázison belül egyedi legyen.
ownername
Ebben az opcionális paraméterben adhatjuk meg a szerep tulajdonosának nevét. Ha elhagyjuk, akkor a dbo felhasználó lesz a tulajdonos. Megadhatunk olyan Windows NT felhasználót is, amelyet az SQL Server ismer (az sp_grantdbaccess tárolt eljárással fel lett véve).
Az eljárás visszatérési értéke 0, ha a művelet sikerült, és 1, ha nem.
2_sp_addrolemember.sql: Tag felvétele a szerepbe
Egy szerepnek akkor van értelme, ha ahhoz tagok is tartoznak. Az sp_addrolemember tárolt eljárással tagokat rendelhetünk hozzá a szerepekhez. Az eljárás szintaxisa a következőképpen néz ki:
sp_addrolemember [ @rolename = ] 'role' , [ @membername = ] 'security_account'
Az eljárás paraméterei:
rolename
Ebben a paraméterben kell megadnunk a szerep nevét. Nem hagyható el.
membername
Ebben a paraméterben adhatjuk meg a felhasználó vagy csoport nevét, amelyet hozzá akarunk rendelni a szerephez. Amikor a hozzáadás megtörténik, a szerep örökli a hozzáadott tag jogait. Szerepet is hozzáadhatunk egy másik szerephez, de ilyenkor nem hozhatunk létre körkörös hivatkozásokat. Ez azt jelenti, hogy ha egy szerep tagja egy másik szerepnek, akkor a másik szerep ennek nem lehet tagja.
A tag lehet egy adatbázis, vagy Windows NT felhasználó, illetve egy másik szerep.
3_sp_helprole.sql: Szerepek adatainak lekérdezése
Az adatbázisban lévő szerepek adatait az sp_helprole tárolt eljárással kérdezhetjük le. Ennek szintaxisa a következő:
sp_helprole [ [ @rolename = ] 'role' ]
A rolename paraméterben adhatjuk meg a kérdéses szerep nevét. Ha ezt elhagyjuk, akkor az adatbázisban szereplő összes szerep adatai listázásra kerülnek. Az adatokat egy eredménylistában kapjuk meg. Az eredménylista három oszlopból áll, melyek a következők:
  • RoleName: a szerep neve;
  • RoleId: a szerep egyedi azonosítója;
  • IsAppRole: a szerep típusa.
4_sp_helprolemember.sql: Szerephez tartozó tagok lekérdezése
Az sp_helprole tárolt eljárás csak korlátozott információkat ad a szerepekről. Az sp_helprolemember tárolt eljárással viszont lehetőségünk van lekérdezni a szerep tagjait is. Az eljárás szintaxisa a következőképpen néz ki:
sp_helprolemember [ [ @rolename = ] 'role' ]
A rolename paraméterben adhatjuk meg a kérdéses szerep nevét. Ha ezt nem tesszük meg, akkor az összes olyan szerep listázásra kerül, amelynek legalább egy tagja van.
Az eljárás egy eredménylistát ad, amely három oszlopból áll:
  • DbRole: a szerep neve;
  • MemberName: a szerep tagjának neve;
  • MemberSID: a tag biztonsági azonosítója (bináris adat!).
5_sp_droprolemember.sql: Tag törlése a szerepből
Ha egy tagot törölni szeretnénk egy szerepből, akkor ezt az sp_droprolemember eljárással tehetjük meg. Az eljárás szintaxisa:
sp_droprolemember [ @rolename = ] 'role' , [ @membername = ] 'security_account'
Az eljárás paraméterei:
rolename
Annak a szerepnek a nevét adhatjuk meg ebben a paraméterben, amelyből a tagot törölni szeretnénk.
membername
A szerepből törlendő tag nevét kell megadnunk ebben a paraméterben.
6_sp_droprole.sql: Szerep törlése
Ha a szerepet is törölni szeretnénk, akkor ezt az sp_droprole tárolt eljárással tehetjük meg. Egy szerepet csak akkor törölhetünk, ha annak nincsen egyetlen tagja sem (előzőleg az összes tagot törölni kell az sp_droprolemember eljárással).
Az eljárás szintaxisa:
sp_droprole [ @rolename = ] 'role'
A rolename paraméterben a törlendő szerep nevét kell megadni.
Ha a törlés sikerült, akkor az eljárás visszatérési értéke 0, ellenkező esetben 1.

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 388. 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 |