## Kedy použiť Pri audite sysadmin práv, po migrácii loginov, pri onboardingu a offboardingu. ## Ako čítať výsledok `direct_server_role = NULL` = login nemá žiadnu explicitnú serverovú rolu (len public). Sleduj hlavne `sysadmin`, `securityadmin` a `serveradmin`. > [!WARNING] > Členstvo cez AD skupiny (aj vnorené) a efektívne práva skript nerozbaľuje. **Oprávnenia:** Viditeľnosť serverových principals – bez `VIEW ANY DEFINITION` uvidíš len seba a pevné role. **Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Porovnanie DB rolí dvoch loginov](script.php?id=39&s=porovnanie-db-roli-dvoch-loginov-napriec-databazami)
Skript
Loginy a serverové role
Všetky loginy (SQL, Windows, skupiny) so stavom disabled, dátumom vytvorenia a priamym členstvom v serverových rolách.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Loginy a serverové role
Účel: Všetky loginy (SQL, Windows, skupiny) so stavom disabled, dátumom vytvorenia a priamym členstvom v serverových rolách.
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
SELECT p.name AS principal_name, p.type_desc, p.is_disabled,
p.create_date, p.modify_date,
r.name AS direct_server_role
FROM sys.server_principals AS p
LEFT JOIN sys.server_role_members AS rm ON rm.member_principal_id=p.principal_id
LEFT JOIN sys.server_principals AS r ON r.principal_id=rm.role_principal_id
WHERE p.type IN ('S','U','G','E','X')
ORDER BY p.name, r.name;