-- Kysy käyttäjän objektin käyttöoikeuksia
exec sp_helprotect NULL, 'UserName'
-- Kysy käyttäjän roolia
exec sp_helpuser 'UserName'
-- Kysy, millä käyttäjillä on määritelty järjestelmärooli
Johtaja sp_helpsrvrolemember 'järjestelmänvalvoja'
-- Sisäkkäisiä rooleja voidaan kysyä
KUN tree_roles ON
(
VALITSE role_principal_id, member_principal_id
sys.database_role_members
MISSÄ member_principal_id = USER_ID('Käyttäjänimi')
UNION ALL
VALITSE c.role_principal_id,c.member_principal_id
FROM sys.database_role_members as c
sisäinen liitos tree_roles
tree_roles.member_principal_id = c.role_principal_id
)
SELECT erillinen USER_NAME(role_principal_id) roolinimi
TÄÄLTÄ tree_roles
-- Perustaulukko, joka liittyy muihin käyttöoikeuksiin
Valitse * järjestelmällisistä käyttäjistä
Valitse * syspermissionsista
-- Kuka pääsee käsiksi SQL Server -instanssiini?
VALIKOIDA
nimi on UserName, type_desc UserType is_disabled IsDisabled
VUODESTA sys.server_principals
missä type_desc in('WINDOWS_LOGIN', 'SQL_LOGIN')
järjestys: UserType, nimi, IsDisabled
-- Kuka pääsee käsiksi tietokantoihini?
VALIKOIDA
dp.name UserName, dp.type_desc UserType, sp.name LoginName, sp.type_desc LoginType
FROM sys.database_principals dp
LIITY sys.server_principals SP ON dp.principal_id = sp.principal_id
järjestys käyttäjätyypin mukaan
Valitse * sys.database_principals
-- Palvelinroolit
valikoida
p.name nimellä UserName, p.type_desc UserType, pp.name ServerRoleName, pp.type_desc ServerRoleType
sys.server_role_members rooleista
Yhdistä sys.server_principals p roles.member_principal_id = p.principal_id
Liity sys.server_principals pp roles.role_principal_id = pp.principal_id
missä pp.name ('järjestelmänvalvoja')
järjestys ServerRoleName, UserName mukaan
-- Tietokantaroolit
VALIKOIDA
p.name UserName, p.type_desc UserType, pp.name DBRoleName, pp.type_desc DBRoleType, pp.is_fixed_role IfFixedRole
sys.database_role_members rooleista
JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
LIITY sys.database_principals PP ON roles.role_principal_id = pp.principal_id
missä pp.name ('db_owner', 'db_datawriter')
-- Mitä nämä käyttäjät voivat tehdä?
VALIKOIDA
grantor.name nimellä GrantorName, dp.state_desc StateDesc, dp.class_desc ClassDesc, dp.permission_name PermissionName ,
OBJECT_NAME(major_id) muodossa ObjectName, GranteeName = grantee.name
FROM sys.database_permissions dp
LIITY sys.database_principals apurahan saajaan dp.grantee_principal_id = grantee.principal_id
LIITY sys.database_principals myöntäjän dp.grantor_principal_id = grantor.principal_id
missä permission_name kuten '%UPDATE%'