May 28 2007

Auditul grupurilor de utilizatori Windows in SQL Server

Categorie: DBA | Security | SQL Server | WindowsCatalin Dumitru @ 08:49

Asigurarea securităţii este o parte din treaba fiecărui DBA.  Cu SQL Server aveţi posibilitata să utilizaţi atât autentificare SQL Server, Windows cât şi mixtă. Avantajul utilizărrii autentificării Windows pentru SQL Server este acela că se poate beneficia de avantajele modelului de securitate Windows si a politicilor de securitate configurate pe domeniu. Un alt avantaj este acela că se poate confugura securitatea la nivel de domeniu in loc de nivelul de instanţă al SQL Server.  Bazându-ne pe grupurile de utilizatori care sunt configurate în Windows, se poate acorda acces grupurilor in SQL Server fără a crea login pentru fiecare utilizator.

Dezavantajul este că utilizatorii care aparţin grupurilor de utilizatori din Windows sunt “mascaţi” la nivelul SQL server-ului. In logins se pot vedea grupurile care au acces dar nu se poate vedea care utilizatori fac parte din respectivele grupuri. Cum se poate obţine această informaţie in SQL Server?

SQL Server oferă o procedură stocată extinsă (xp_logininfo) care permite o “privire” în această problemă. Această procedură se regăseşte atât în SQL Server 2000 cât şi în SQL Server 2005. Procedura are următorii parametrii:

  • @acctname – numele utilizatorului windows sau a grupului 
  • @option - informaţia de afişat 
    • ‘all’ – afişează informaţii pentru permisiuni
    • ‘members’ – afişează lista de membrii a grupului
  • @privelege – variabilă de ieşire şi întoarce ‘admin’,'user’ sau null

Exemple:

EXEC xp_logininfo ‘BUILTIN\Administrators’  – Afişează informaţii despre grup (permission path)

 

EXEC xp_logininfo ‘BUILTIN\Administrators’, ‘members’  - Afişează lista de membrii din grupul Windows
 

Etichete: , , ,