SQL sunucu güvenliğinde en az önemsenen konseptlerden biri de, kullanıcı rolleri ve bu rollerin yeterince sıkı kontrol edilmemesidir.
Danışmanlık yaptığım birçok büyük yapıda, güvenlik anlamında bazı kritik kullanıcı rollerinin olmaması gereken kullanıcılara verildiği ve bu kullanıcılar üzerinden veritabanlarının manipüle edildiğine tanık oldum. Bu yazımda, SQL sunucusundaki yerleşik kullanıcı rolleri ve bu rollerin ne iş yaptığını açıklamaya çalışacağım.
SQL sunucusu kurulduğun yerleşik gelen kullanıcı rolleri vardır. Büyük yapılarda veritabanı üzerindeki işler delege edildiğinden, her kullanıcının belirli yetki matrislerine dayanarak işlem yapmasına olanak tanıyan bu roller, aynı zamanda SQL Server güvenliğinin de bir parçasıdır.
Bu roller nedir ve hangi yetkileri barındırır kısaca bakalım:
İlgili roller, 2 gruba ayrılır. Sunucu düzeyindeki roller ve veritabanı düzeyindeki roller
Sunucu düzeyindeki roller :
sysadmin — tüm sunucu etkinliklerini gerçekleştirebilir. tam yetkili kullanıcı grubudur.
bulkadmin — BULK INSERT’i çalıştırabilir. BULK INSERT dışarıdan csv, xls,xlsx, txt gibi dosyalardan veri almanızı sağlayan bir fonksiyondur.
setupadmin — bağlantılı sunucuları ekleyebilir/kaldırabilir ve T-SQL’i çalıştırabilir
processadmin — SQL sunucusunda çalışan işlemleri sonlandırabilir, başlatabilir.
securityadmin — oturum açma işlemlerini yönetebilir, SQL sunucusu oturum açma parolalarını sıfırlayabilir ve sunucu düzeyinde veya veritabanı düzeyinde izinleri verebilir, reddedebilir veya iptal edebilir.
serveradmin — sunucu yapılandırmasını değiştirebilir ve kapatabilir
dbcreator — veritabanlarını değiştirebilir, oluşturabilir, silebilir veya geri yükleyebilir.
diskadmin — disk dosyalarını yönetebilir.
Veritabanı düzeyindeki roller :
db_owner – veritabanı üzerinde tüm bakım ve yapılandırma faaliyetlerini gerçekleştirme ve veritabanını silme yetkisine sahip kullanıcı grubudur.
db_securityadmin – özel rol üyeliklerini değiştirebilir ve izinleri yönetebilir. Ayrıcalıkları yükseltme yeteneğine sahip olduğu için bu rolün yakından izlenmesi gerekir.
db_accessadmin – Windows grupları ve oturum açma bilgilerinin yanı sıra SQL Server oturum açma bilgileri için veritabanı erişimi ekleyebilir/kaldırabilir
db_backupoperator – veritabanı yedeklemeleri gerçekleştirebilir. yedek oluşturabilir, silebilir.
db_ddladmin – veri tanımlama dili (DDL) komutlarını çalıştırabilir
db_datawriter – herhangi bir kullanıcı tablosu verisi ekleyebilir, değiştirebilir veya silebilir
db_datareader – kullanıcı tablolarından veri okuyabilir
db_denydatawriter – bu grubun üyelerinin kullanıcı tablosu verilerini ekleme, değiştirme veya silme izni yoktur
db_denydatareader – bu grubun üyeleri kullanıcı tablosundaki hiçbir veriyi okuyamaz
bu rollerin dikkatli kullanılması ve bu rollere hangi kullanıcıların eklendiğinin, silindiğinin takip edilmesi SQL Server güvenliği için önemli parametremelerden biridir.
Kolay gelsin