2. Nedir?
-Veri tabanı içindeki veri ve nesnelere erişebilmek için mutlaka gerekli izinlere sahip olmak
gerekir.
-SQL Server Management Studio içinden yapılacağı gibi GRANT, REVOKE veya DENY ifadeleri ile
de gerçekleştirilebilir.
-Etki alanı eski versiyonlarda olduğu gibidir.
ÖNEMLİ: DENY izni, GRANT iznine baskındır. Örneğin, bir kullanıcıya bir tablo için SELECT hakkı
verilmiş ise ancak üye olduğu bir role'den dolayı aynı tablo için DENY hakkı da varsa, geçerli olan
DENY hakkıdır.
3. SERVER PERMISSION:
Direkt Server yapısı üzerinde uygulanacak izinlerdir. Örneğin, veri tabanı oluşturmak, SQL Server
özelliklerini değiştirmek gibi...
4. DATABASE PERMISSION:
Veri tabanı içindeki nesnelere erişim için ve burada yapılacak görevler için sahip olması gereken
izinleri içerir.
SQL Server ile bağlantı gerçekleştikten sonra, burada bulunan veri tabanları üzerinde işlem
yapmak için gerekli izinlerin verilmesi gerekir. Burada yapılacak.işlemler için gerekli izinlerin olup-
olmadığı Master veri tabanı içindeki sysusers sistem tablosundan kontrol edilir.
5. NESNE BAZLI İZİNLER:
bir nesneye özel izin ve kısıtlamalar koyabiliriz. Hatta biraz daha ileriye giderek, nesne içinde
bulunan sütun temelli izinler oluşturabiliriz. Burada oluşturulan izinler; diğer tüm güvenlik
mekanizmalarının üzerindedir. Yani en baskın olan izindir.
6. ROLES:
İzinleri tek tek kullanıcılara vermek bazı durumlarda büyük karmaşıklığa yol açar. Onun için her zaman
gruplara izin vermek doğru bir çözüm olacaktır. Aynı yetki içinde bulunacak kullanıcıları ilk önce bir
gruba atamak, ardından bu gruba gerekli izin ataması yapmak gerekir. İşte SQL Server içindeki bu grup
yapısına Role adı veriyoruz.
Dört çeşit Role vardır;
*** Hazır Server Role.
*** Hazır Database Role.
*** Kullanıcı Tanımlı Role.
*** Application Role.
Şimdi bu rolleri tek tek inceleyelim.
7. HAZIR SERVER ROLE:
Bu roller, Server düzeyli izinlerin belirlendiği rollerdir. Bu alana ulaşmak için Security klasörü
altındaki Server Roles seçeneğine tıklamak yeterlidir.
Birer cümle ile açıklamaları: bulkadmin BULK INSERT komutlarını çalıştırır.
dbcreator Veri tabanı oluşturur ve düzenler.
diskadmin Disk dosyalarını yönetir.
processadmin SQL Server işlem kademelerini yönetir.
securıtyadmin Veri tabanı izinlerini düzenler ve
kullanımları izler.
serveradmin Server ayarlarını yapar.
setupadmin Replikasyon kurulumu yapar.
sysadmin Her şeyi yapar. En yetkili roldür.
Varsayılan olarak sistem yöneticisi bu
grubun üyesidir.
8. HAZIR DATABASE ROLE:
Her veri tabanı için ayrı olarak yapılandırılan rol şeklidir. Ulaşmak için, veri tabanı altındaki Roles
seçeneğine tıklamak yeterlidir.
Rol İzin
db_accessadmin Veri tabanına kullanıcı, grup, rol ekler veya kaldırır.
db_backupoperator Veri tabanının yedeğini alır.
db_datareader Herhangi bir tablodan veri okur.
db_datawriter Tabloların içindeki verilere ekleme yapar, siler, değiştirir.
db_ddladmin Veri tabanına nesneleri ekler, siler, değiştirir.
db_denydatareader Herhangi bir tablodan veri okuyamaz.
db_denydatawriter Herhangi bir tabloda değişiklik yapamaz.
db_owner Veri tabanıyla ilgili herhangi bir aktiviteyi gerçekleştirir.
db_scurityadmin Nesnelerin izinlerini düzenler.
public Bir veri tabanı içindeki kullanıcılar için, tüm yerleşik
izinleridüzenler.
9. KULLANICI TANIMLI ROLE:
Sabit roller dışında, istersek özel roller de tanımlayabiliriz. Bunun için; veri tabanı altında bulunan
Roles nesnesini kullanırız. Bu kendi oluşturduğumuz gruba üye veya başka bir grup ekleyebiliriz.
10. APPLICATION ROLE:
Diğer bir rol seçimi de Application Role (Uygulama rolü)' dur. Bu yapıda oluşturulan rol'e
herhangi bir kullanıcı dahil edilmez. Bunun yerine, bir şifre belirlenerek, kod kısmında
sp_setuprole sistem stored procedure'ö çalıştırılıp, rolün uygulanması sağlanır. Bu rol ile bir kez
bağlandıktan sonra başka bir işlem yapmak için, mutlaka bağlantıyı kesmek gerekir. Oturum
süresince aktif kalır. Daha çok sistem dışı kullanıcıların sadece belli nesnelere erişmesi amacı ile
kullanılabilir.
11. CERTIFICATES:
SQL Server tarafından kullanılan dijital sertifikalar, SSL bağlantılar oluşturmak ve Service Broker'lar
ile birarada anılırlar.
SQL Server, X.509v3-compliant türü sertifikalar oluşturabilir.
iki iletişim hattı arasında hareket eden mesajların şifrelenmesi ve/veya kimlik denetimine tabii
tutulması için dijital sertifikalar kullanılabilir. Mesaj ile birlikte bu mesajın şifrelenmesi ve çözülmesi
için gerekli anahtarları bünyesinde bulundurabilir.
Public ve Private olmak üzere iki anahtar çifti temel yapısıdır.
Public parçası seninle ilişki kuracak herhangi bir kimseye verilebilirken,
Private parçası özel olmalı ve sadece sende bulunmalıdır.
Ortak sertifika yayımlayıcılar ve sertifika server'lar yaygın olarak kullanılan yapılardır.
12. AUDITING GÜVENLİK:
Auditing ile SQL Server'ın bir instance'ının veya SQL Server'ın veri tabanının sistem üzerinde
meydana gelen olaylarını izleyebiliriz. SQL Server için birkaç yöntem mümkündür. SQL Server
2008 içinde, SQL Server Auditing yapısı ile otomatik izleme gerçekleştirebiliriz.
SQL SERVER PROFILER: Microsoft SQL Server Profiler; Database Engine veya Analysis Services
yapılarını izlemek için kullanılan grafiksel bir ara yüzdür.
DDL TRİGGER: Veri tabanı içindeki nesne hareketlerini bildirmek için kullanılır. Bildiğimiz klasik
Trigger gibi değildir, sadece verilerde bir değişiklik olduğu zaman bunları bize sunar. Örneğin; bir
tablonun oluşturulması veya silinmesi gibi işlemleri izlememizi sağlar. SQL Server yapısını izlemek
için, oldukça kullanışlı bir araçtır.
CREATE TRİGGER: Bir DDL Trigger oluşturmak için CREATE TRİGGER ifadesi kullanılır. Trigger
oluşturulurken ilk yapılması gereken işlem, DDL Trigger yapısından bulunacak alan ve tip
belirtilmelidir.
13. EVENT NOTIFICATION:
SQL Server aktivitelerini izlemek için kullanacağımız seçeneklerden biri de yeni bir yapı olan
Event Notification'dır. SQL Server performansını mümkün olduğu kadar aza düşürerek olayları
izlememize olanak tanır. Trigger gibi DDL ifadelerini izleyeceği gibi, bunun yanı sıra veri tabanları
komutlarını oluşturan DML ifadelerini de izleyebilir. Ayrıca SQL Profil yapısındaki izlemeyi de
gerçekleştirebilir.
14. METADATA:
SQL Server 2008 iki türlü Metadata sorgulaması yapar. Bunlar; katalog görüntülemeler için static
metadata ve dinamik görüntüleme için dynamic metadata. Bu bilgiler direkt olarak sistem
tablolarından gelir.
STATİC METADATA: SOL Server veri tabanı nesneleri hakkında bilgi almak için kullanılır. Bu bilgiler
<Database adı>ViewsSystem Views klasöründe bulunur. Biz bu bilgileri sys namespaces'ini
kullanarak görebiliriz.
DYNAMIC METADATA: Dinamik metadata komutları; eski versiyonda DBCC ile başlayan
ifadelerin daha gelişmiş bir şekilde kullanılmasını sağlar.