MSSQL

MS SQL Server Kullanıcı Rolleri

SQL sunucu güvenliğinde en az önemsenen konseptlerden biri de, kullanıcı rolleri ve bu rollerin yeterince sıkı kontrol edilmemesidir.

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ışalım.

SQL sunucusu kurulduğunda 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.

SQL Server Role Nedir? Nasıl oluşturulur? Ne işe yarar?

SQL Server 2008 ve daha önceki sürümlerde yeni kurallar (role) atayamıyor ya da var olan görevleri değiştiremiyorduk. SQL Server 2008 sonrasında kural atama kavramı hayatımıza girmiş oldu.

Bu roller nedir ve hangi yetkileri barındırır kısaca göz atalı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.

Bu kurallar precedure ile nasıl yönetilebilir?

  • sp_helprole : Server üzerinde bulunan kural listelerini ve Application Role gösterir.
  • sp_addrolemember : Kullanıcıya kural ataması yapar örn: exec sp_addrolemember @membername=’shrcy’, @rolename=’bulkadmin’
  • sp_droprolemember : Kullanıcıyı verilen kuraldan çıkışını sağlar örn: exec sp_addrolemember @membername=’shrcy’, @rolename=’bulkadmin’
  • sp_helpdbfixedrole : Sorgunun yapıldığı veritabanında tanımlanmış bütün kuralları/yetkileri listeler
  • sp_dbfixedrolepermission : Kurallara tanımlanan yetkileri listeler

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu