-- Kullanıcının nesne izinlerini sorgula
exec sp_helprotect NULL, 'UserName'
-- Kullanıcının rolünü sorgulayın
exec sp_helpuser 'UserName'
-- Hangi kullanıcıların belirli bir sistem rolüne sahip olduğunu sorgula
Yönetici sp_helpsrvrolemember 'Sistem Yöneticisi'
-- İç içi roller sorgulanabilir
tree_roles
(
SELECT role_principal_id, member_principal_id
sys.database_role_members
BURADA member_principal_id = USER_ID('UserName')
HEP SENDIKA
SELECT c.role_principal_id,c.member_principal_id
sys.database_role_members'DEN c olarak
iç birleşim tree_roles
on tree_roles.member_principal_id = c.role_principal_id
)
SELECT farklı USER_NAME(role_principal_id) RoleName
tree_roles
-- Diğer izinlerle ilgili temel tablo
Sysusers'ten * seç
syspermissions'ten * seç
-- SQL Server örneğime kim erişebiliyor?
SEÇMEK
isim UserName, type_desc UserType olarak is_disabled IsDisabled olarak
sys.server_principals
burada type_desc içinde ('WINDOWS_LOGIN', 'SQL_LOGIN')
UserType, name, IsDisabled ile sıralanıyor
-- Veritabanlarıma kim erişebiliyor?
SEÇMEK
dp.name UserName olarak dp.type_desc UserType olarak sp.name LoginName sp.type_desc LoginType olarak
sys.database_principals DP'
JOIN sys.server_principals SP on dp.principal_id = sp.principal_id
UserType ile sıralama
Arasından * seç sys.database_principals
-- Sunucu Rolleri
seçmek
p.name UserName olarak p.type_desc UserType olarak, pp.name ServerRoleName pp.type_desc ServerRoleType olarak
sys.server_role_members rollerden
sys.server_principals p ile roles.member_principal_id = p.principal_id
roles.role_principal_id = pp.principal_id üzerinde sys.server_principals PP katıl
burada pp.name('sysadmin')
ServerRoleName, UserName ile sırayla sıralandı
-- Veritabanı Rolleri
SEÇMEK
p.name UserName olarak, p.type_desc UserType olarak pp.name DBRoleName, pp.type_desc DBRoleType pp.is_fixed_role IfFixedRole olarak
sys.database_role_members rollerden
JOIN sys.database_principals p on roles.member_principal_id = p.principal_id
KATIL sys.database_principals PP roles.role_principal_id = pp.principal_id
burada pp.name içinde ('db_owner', 'db_datawriter')
-- Bu kullanıcılar ne yapabilir?
SEÇMEK
grantor.name GrantorName, dp.state_desc StateDesc olarak dp.class_desc ClassDesc olarak, dp.permission_name PermissionName olarak ,
OBJECT_NAME(major_id) olarak ObjectName, GranteeName = grantee.name
sys.database_permissions DP'DEN
dp.grantee_principal_id = grantee.principal_id sys.database_principals HIBE ALAN KATILIR
Bağış verene sys.database_principals KATIL dp.grantor_principal_id = grantor.principal_id
burada '%UPDATE%' gibi permission_name