C# - MS SQL tárolt eljárások

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

forráskód letöltése
Az MS SQL a felhasználók azonosítását két szinten végzi el. Az első szint a login, ami tulajdonképpen magának az adatbázis szervernek az elérését teszi lehetővé. A második szint a felhasználók, akiknél külön-külön meghatározható, hogy milyen jogosultságokkal rendelkeznek az erőforrásokhoz való hozzáféréshez. Ebben a részben azt vizsgáljuk meg, hogy hogyan tudunk MS SQL tárolt eljárásokkal új bejelentkezési profilokat, valamint új felhasználókat létrehozni, vagy már meglévőket törölni.
Az MS SQL a bejelentkezési profilokat a mesteradatbázis SYSLOGINS táblájában tárolja. Egy adott adatbázishoz hozzáféréssel rendelkező felhasználók adatait pedig az adott adatbázis SYSUSERS táblája tárolja.
1_sp_addlogin.sql: Bejelentkezési profil létrehozása
Új bejelentkezési profil létrehozása az sp_addlogin tárolt eljárással lehetséges.
sp_addlogin [ @loginame = ] 'login' 
    [ , [ @passwd = ] 'password' ] 
    [ , [ @defdb = ] 'database' ] 
    [ , [ @deflanguage = ] 'language' ] 
    [ , [ @sid = ] sid ] 
    [ , [ @encryptopt = ] 'encryption_option' ]
Az eljárás paraméterei:
loginname
A bejelentkezési nevet adhatjuk meg ebben a paraméterben.
passwd
Az új profilhoz tartozó jelszó. Jelszót nem kötelező megadni, de az adatok biztonsága érdekében ajánlatos.
defdb
Ebben a paraméterben megadhatunk egy alapértelmezett adatbázist, amelybe a bejelentkezési profil elhelyezésre kerül. Ha nem adjuk meg, akkor a mesteradatbázis lesz az (ez nem ajánlott).
deflanguage
Megadhatunk a bejelentkezési profilhoz egy alapértelmezett nyelvet.
sid
Ez a paraméter a biztonsági azonosító szám (az angol elnevezés után SID) megadására szolgál. A hossza pontosan 16 bájt kell legyen, és nem lehet olyat megadni, ami már létezik.
encryptopt
Ezzel a paraméterrel meghatározhatjuk, hogy a jelszó titkosítva legye-e tárolva. Értékei az alábbiak lehetnek:
Érték Leírás
NULL a jelszó titkosítva lesz (alapértelmezett)
skip_encryption a jelszó már titkosított, ezért az SQL szervernek nem kell titkosítania
skip_encryption_old a jelszó az SQL szerver előző verziójával lett titkosítva.
2_sp_adduser.sql: Új felhasználó létrehozása az adatbázishoz
Az sp_adduser eljárás hasonló az sp_addlogin eljáráshoz, de ez egy már létező bejelentkezési profilt ad hozzá egy adatbázishoz. Az eljárás meghívása előtt győződjünk meg róla, hogy a megfelelő adatbázisban vagyunk-e.
sp_adduser [ @loginame = ] 'login' 
    [ , [ @name_in_db = ] 'user' ] 
    [ , [ @grpname = ] 'group' ]
Paraméterei:
loginname
Annak a bejelentkezési profilnak a neve, amelyet új felhasználóként fel akarunk venni az aktív adatbázisba.
name_in_db
Ebben a paraméterben megadhatunk egy másodlagos nevet a profilhoz. Így ugyanazt a profilt a kiszolgáló több adatbázisához is hozzá tudjuk kapcsolni, és akár mindegyiknél más néven. Értéke nem lehet üres sztring, vagy NULL.
grpname
A felhasználóhoz rendelt szerep (role) neve. A szerepek használatával leegyszerűsödnek a jogosultságok beállításai, mert az azonos jogosultsággal rendelkező felhasználóknál ezeket nem kell külön meghatározni.
3_so_droplogin.sql, 4_sp_dropuser.sql: Felhasználó és bejelentkezési profil törlése
Bejelentkezési profilt az sp_droplogin eljárással tudunk törölni, de előtte az összes hozzá tartozó felhasználót törölni kell az adatbázisokból az sp_dropuser eljárással.

MS SQL tárolt eljárások cikksorozat