Permisiuni Extinse
SQL Server 2005 implementeaza o arhitectura de securitate imbunatatita folosind un model ierarhic pentru obiectele care pot fi securizate. Modelul foloseste trei termeni importanti:
-
principal (entitati autentificate) – pot fi utilizatori, grupuri sau procese care solicita acces la resursele SQL Server, se poate stabili o ierarhie diferentiindu-se urmatoarele nivele:
-
Windows – membrii unui domeniu, membrii unui grup Windows, utilizatori locali Windows
-
SQL Server – login-uri SQL, roluri fixe
-
Baza de date – utilizator, rol fix, application role (rol special pentru o aplicatie)
-
securable (obiecte securizabile) - resurse catre care se ofera un acces controlat, pot fi grupate folosind urmatoarea ierarhie:
-
la nivelul serverului – login-uri, certificate, HTTP endpoints, notificari de evenimente, baze de date.
-
la nivelul bazei de date – utilizatori, roluri, application roles (roluri pentru aplicatii), tipuri de mesaje, servicii, cataloage full-text etc.
-
la nivelul unei scheme – tabele, view-uri, functii, proceduri stocate, cozi, tipuri, reguli, valori implicite, sinonime etc.
-
permision (permisiune) - regulile aplicate pentru a controla accesul la obiectele securizabile pentru o entitate de tip principal)
In SQL Server 2005 permisiunile pot fi acordate direct la nivel de server (folosind instructiunea GRANT de exemplu) in SQL Server 2000 permisiunile la nivel de server fiind acordate doar prin intermediul rolurilor fixe. In plus sunt introduse permisiuni noi asociate cu diferitele obiecte securizabile permitand o granularitate fina a acordarii de permisiuni.
Exemple:
-
CONNECT SQL (permite conectarea la server)
-
ALTER ANY LOGIN (permite modificarea oricarui login)
-
CONTROL SERVER (permite administrarea serverului)
-
VIEW DEFINITION (permite vizualizarea definitiei unui obiect)
De ce permisiuni extinse? Pentru a va permite utilizarea "principle of least privilege" (principiul privilegiului minim) conform caruia unui user trebuie sa i se acorde pentru un task doar drepturile necesare executarii acelui task.
Cristian Andrei Lefter, SQL Server MVP
MCT, MCSA, MCDBA, MCAD, MCSD .NET,
MCTS, MCITP - Database Administrator SQL Server 2005
http://sqlserver.ro