-- Vraag de objectrechten van de gebruiker op
exec sp_helprotect NULL, 'UserName'
-- Vraag naar de rol van de gebruiker
exec sp_helpuser 'UserName'
-- Vraag welke gebruikers een gespecificeerde systeemrol hebben
Uitvoerend sp_helpsrvrolemember 'sysadmin'
-- Geneste rollen kunnen worden bevraagd.
MET tree_roles als
(
SELECTEER role_principal_id, member_principal_id
VAN sys.database_role_members
WAAR member_principal_id = USER_ID('Gebruikersnaam')
VAKBOND ALLEMAAL
SELECTEER c.role_principal_id,c.member_principal_id
VAN sys.database_role_members als c
Inner join tree_roles
op tree_roles.member_principal_id = c.role_principal_id
)
SELECT onderscheidend USER_NAME(role_principal_id) RoleName
VAN tree_roles
-- Basistabel gerelateerd aan andere permissies
Selecteer * uit sysusers
Selecteer * uit syspermissions.
-- Wie heeft toegang tot mijn SQL Server-instantie?
SELECTEREN
naam als UserName, type_desc als UserType, is_disabled als IsDisabled
VAN sys.server_principals
waar type_desc in('WINDOWS_LOGIN', 'SQL_LOGIN')
order op UserType, naam, IsUitgeschakeld
-- Wie heeft toegang tot mijn databases?
SELECTEREN
dp.name als Gebruikersnaam, dp.type_desc als Gebruikerstype, sp.name als LoginNaam, sp.type_desc als LoginType
VAN sys.database_principals DP
WORD LID sys.server_principals SP OP dp.principal_id = sp.principal_id
volgorde op UserType
Selecteer * uit sys.database_principals
-- Serverrollen
selecteren
p.name als UserName, p.type_desc als UserType, pp.name als ServerRoleName, pp.type_desc als ServerRoleType
Van sys.server_role_members rollen
Sluit je aan sys.server_principals p op roles.member_principal_id = p.principal_id
Word lid sys.server_principals PP op roles.role_principal_id = pp.principal_id
waar pp.name in('sysadmin')
volgorde op ServerRoleName, UserName
-- Databaserollen
SELECTEREN
p.name als UserName, p.type_desc als UserType, pp.name als DBRoleName, pp.type_desc als DBRoleType, pp.is_fixed_role als IfFixedRole
VAN sys.database_role_members rollen
WORD LID sys.database_principals p OP roles.member_principal_id = p.principal_id
WORD LID sys.database_principals PP OP roles.role_principal_id = pp.principal_id
waar pp.name in('db_owner', 'db_datawriter')
-- Wat kunnen deze gebruikers doen?
SELECTEREN
grantor.name als GrantorName, dp.state_desc als StateDesc, dp.class_desc als ClassDesc, dp.permission_name als PermissionName ,
OBJECT_NAME(major_id) als ObjectName, GranteeName = grantee.name
VAN sys.database_permissions DP
SLUIT JE aan sys.database_principals begunstigde op dp.grantee_principal_id = grantee.principal_id
SLUIT JE aan sys.database_principals subsidieur op dp.grantor_principal_id = grantor.principal_id
waar permission_name zoals '%UPDATE%'