-- Fråga användarens objektbehörigheter
exec sp_helprotect NULL, 'Användarnamn'
-- Fråga användarens roll
exec sp_helpuser 'UserName'
-- Fråga vilka användare som har en specificerad systemroll
exec sp_helpsrvrolemember 'sysadmin'
-- Nästlade roller kan frågas
MED tree_roles som
(
VÄLJ role_principal_id, member_principal_id
FRÅN sys.database_role_members
DÄR member_principal_id = USER_ID('Användarnamn')
UNION ALLA
VÄLJ c.role_principal_id,c.member_principal_id
FRÅN sys.database_role_members som c
inre förening tree_roles
på tree_roles.member_principal_id = c.role_principal_id
)
VÄLJ distinkt USER_NAME(role_principal_id) RoleName
FRÅN tree_roles
-- Grundläggande tabell relaterad till andra behörigheter
Välj * från sysusers
Välj * från syspermissions
-- Vem har tillgång till min SQL Server-instans?
UTVALD
namn som UserName, type_desc som UserType, is_disabled som IsDisabled
FRÅN sys.server_principals
där type_desc i('WINDOWS_LOGIN', 'SQL_LOGIN')
ordna efter UserType, namn, IsDisabled
-- Vem har tillgång till mina databaser?
UTVALD
dp.name som Användarnamn, dp.type_desc som Användartyp, sp.name som Inloggningsnamn sp.type_desc som Inloggningstyp
FRÅN sys.database_principals DP
GÅ MED sys.server_principals SP PÅ dp.principal_id = sp.principal_id
ordning efter UserType
Välj * från sys.database_principals
-- Serverroller
utvald
p.name som UserName, p.type_desc som UserType, pp.name som ServerRoleName, pp.type_desc som ServerRoleType
från sys.server_role_members roller
Gå med sys.server_principals p på roles.member_principal_id = p.principal_id
Gå med sys.server_principals PP på roles.role_principal_id = pp.principal_id
där pp.name in('sysadmin')
ordna efter ServerRoleName, UserName
-- Databasroller
UTVALD
p.name som UserName, p.type_desc som UserType, pp.name som DBRoleName, pp.type_desc som DBRoleType, pp.is_fixed_role som IfFixedRole
FRÅN sys.database_role_members roller
GÅ MED sys.database_principals p PÅ roles.member_principal_id = p.principal_id
GÅ MED sys.database_principals PP PÅ roles.role_principal_id = pp.principal_id
där pp.name i('db_owner', 'db_datawriter')
-- Vad kan dessa användare göra?
UTVALD
grantor.name som GrantorName, dp.state_desc som StateDesc, dp.class_desc som ClassDesc, dp.permission_name som PermissionName ,
OBJECT_NAME(major_id) som ObjectName, GranteeName = grantee.name
FRÅN sys.database_permissions DP
GÅ MED sys.database_principals mottagare på dp.grantee_principal_id = grantee.principal_id
GÅ MED sys.database_principals givare på dp.grantor_principal_id = grantor.principal_id
där permission_name som '%UPPDATERING%'