SQL Server’da Yükseltilmiş İzinlere Sahip Kullanıcıları Neden Önemsemelisiniz?
Microsoft SQL Server tarafından sunulan güvenlik modeli, tüm güvenlik en iyi uygulamaları izlendiğinde yüksek düzeyde yapılandırılabilir ve çok sağlamdır.
Bunu neden önemsemelisiniz?
En az ayrıcalıklı kullanıcı hesabı (LUA) yaklaşımı, güvenlik tehditlerine karşı koymak için savunma amaçlı, derinlemesine bir stratejinin önemli bir parçasıdır.
LUA, bir kullanıcıya yalnızca görevini yerine getirmesi için gereken ayrıcalıkların verilmesi gerektiğini söylüyor – ne daha fazlası ne daha azı.
Bu, birisinin yanlışlıkla bir nesneyi yeniden adlandırması veya düşürmesi gibi gelecekteki birçok sorunu önleyebilecek en iyi uygulamadır.
Microsoft belgelerinde SQL Server veritabanı altyapısı izinleri hakkında daha fazla bilgi edinebilirsiniz.
SQL Server’da geniş kapsamlı izinlere sahip kullanıcıları nasıl bulabiliriz?
SysAdmin kullanıcıları
Sistem yöneticileri olan veya GRANT KONTROL SUNUCUSU olan tüm kullanıcıları listelemek için aşağıdaki sorguyu çalıştırın.
USE master
GO
SELECT DISTINCT p.name AS [loginname] ,
p.type ,
p.type_desc ,
p.is_disabled,
s.sysadmin,
CONVERT(VARCHAR(10),p.create_date ,101) AS [created],
CONVERT(VARCHAR(10),p.modify_date , 101) AS [update]
FROM sys.server_principals p
JOIN sys.syslogins s ON p.sid = s.sid
JOIN sys.server_permissions sp ON p.principal_id = sp.grantee_principal_id
WHERE p.type_desc IN (‘SQL_LOGIN’, ‘WINDOWS_LOGIN’, ‘WINDOWS_GROUP’)
— Logins that are not process logins
AND p.name NOT LIKE ‘##%’
AND (s.sysadmin = 1 OR sp.permission_name = ‘CONTROL SERVER’)
ORDER BY p.name
Database sahipleri
db_owner rolüyle eşlenen tüm kullanıcıları listelemek için aşağıdaki sorguyu çalıştırın.
exec sp_msForEachDb ‘ use [?]
select db_name() as [database_name], r.[name] as [role], p.[name] as [member] from
sys.database_role_members m
join
sys.database_principals r on m.role_principal_id = r.principal_id
join
sys.database_principals p on m.member_principal_id = p.principal_id
where
r.name = ”db_owner”’
Kullanıcı izinleri nasıl azaltılır?
Bu ayrıcalıklara sahip olmaları gerekmiyorsa, listelenen kullanıcılar için daha düşük izin seçin.
Mümkün olduğunda kullanıcıyı sysadmin sunucu rolünden kaldırın.
Kullanıcılara veritabanındaki herhangi bir tabloyu okuma ve yazma hakkı vermek için db_datareader ve db_datawriter rollerini kullanın.
Birkaç seçenek arasında, SQL Server Management Studio’yu kullanarak mevcut bir kullanıcının rollerini düzenleyebilirsiniz:
Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!