İzinler

İzinler (Permissions)

İzinler veritabanı nesnelerine erişim haklarıdır. Hatırlayacağınız gibi kullanıcının sisteme girebilmesi için login ismine ve login ismiyle ilişkilendirilmiş veritabanı kullanıcı adına( user name) gereksinim duyulur. Kullanıcı sistme girdikten sonra izinler devreye girer. İzinler kullanıcının hangi veritabanını kullanacağını ve hangi işlemleri yapabileceğini belirtir.

İzinler bir role veya kullanıcıya verilebilir. Her veritabanının bir sahibi vardır. Varsayım olarak o nesneyi oluşturan nesnenin sahibidir. Nesne oluşturulduktan sonra haklar başkasına devredilebilir. Sysadmin rolü sistem veritabanları, kullanıcıların oluşturdukları veritabanındaki tüm nesnelere tam erişim hakkına sahiptirler. Public role ise özel bir roldür.. Public rol veritabanına erişecek kullanıcı için varsayılan izinleri verir. Bu rol silinemez, fakat etki alanı azaltılabilir. Çünkü herbir kullanıcı bu izne sahiptir.

İzin Tipleri

Veritabanı üzerinde herhangi bir işlem yapabilmek için kullanıcının izni olması gerekir. İsiznler 3 kategoriye ayrılır.

  1. Nesne İzinleri: Procedur çalıştırma ve veri ile çalışma izinleridir.
  2. Komut İzinleri: Veritabanı veya veritabanında bir nesne oluşturma iznidir.
  3. Rol izinleri: Ön tanımlı rollere verilen izinlerdir.

Nesne İzinleri

Veritabanı nesneleri il ilgili olan haklardır. Veritabanı nesneleri tablolar, saklı yordamlar, udf ler viewlerdir.

Nesne izinleri aşağıdadır.

  • SELECT
    Tablo veya view den veri okumak için kullanılan izindir. Select izni tablo veya view içerisindeki kolonlarada uygulanabilir. UDF lerede uygulanabilir.
  • INSERT
    Tablo veya view e yeni bir veri eklenmesi iznidir.
  • DELETE
    Tablo veya view deki verileri silme iznidir.
  • UPDATE
    Tablo veya view deki verileri güncelleme iznidir. ablo veya view deki kolonlara ayrı ayrı uygulanabilir.
  • EXECUTE
    Saklı yordam çalıştırma iznidir.
  • DRI (declarative referential integrity)
    İlişkisel veritabanında ilişki kurarak yapılan FK kısıtlaması iznidir.

Komut İzinleri

Veritabanı içerisinde bir nesne oluşturma veya yeni bir veritabanı oluşturmaya yönelik olan izinlerdir.

Komut izinleri aşağıdadır.

  • BACKUP DATABASE
    BACKUP DATABASE komutunu kullanarak veritabanın yedeğini alma iznidir.
  • BACKUP LOG
    BACKUP LOG komutunu kullanarak log dosyasının yedeğini alma iznidir.
  • CREATE DATABASE
    CREATE DATABASE komutunu kullanarak veritabanı oluşturma iznidir.
  • CREATE DEFAULT
    CREATE DEFAULT komutunu kullanarak varsayılan değer verme iznidir.
  • CREATE FUNCTION
    CREATE FUNCTION komutunu kullanarak UDF oluşturma iznidir.
  • CREATE PROCEDURE
    CREATE PROCEDURE komutunu kullanarak saklı yordam oluşturma iznidir.
  • CREATE RULE
    CREATE RULE komutunu kullanarak kural oluşturma iznidir. (Rule un yerini contraints almaktadır. Rule ler yakın bir zamanda kaldırılacaktır, kullanılmamalıdır. Yerine check contraintsler kullanılmalıdır. Veri Bütünlüğü mekanizması başlıklı ders notuna bakınız.)
  • CREATE TABLE
    CREATE TABLE komutunu kullanarak tablo oluşturma iznidir.
  • CREATE VIEW
    CREATE VIEW komutunu kullanarak view oluşturma iznidir.
     

Rol İzinleri

Server ve Veritabanı düzeyindeki rollere izin verilmesidir. Örnek olarak db_owner rolü veritabanı üzerindeki tüm izinlere sahiptir.

İzinlerin Yönetimi

Grant, Deny ve Revoke komutları kullanıcı veya role izin verme, var olan izinlerini alma komutlarıdır.

GRANT Positive Kullanıcı veya role izin verir.
REVOKE None Kullanıcı veya role iznini geri alır. Miras kalan rol izni iptal edilir.
DENY Negative Kullanıcı veya role iznini geri alır. Miras kalan rol izni iptal edilmez.


İzinlerle ilgili örnek için, kayseri isimle user kullanılacaktır. Bu user kayserigundem veritabanını erişecek kayserigundem login ismiyle ilişkilendirilmiştir.

Örnek

select * from haber
haber tablosundaki tüm kayıtları listeler.

deny select on haber to kayseri
kayseri kullanıcısı için haber tablosunda kayıtları listeleme izni kaldırılmıştır. select * from haber cümleciği izin olmadığından çalışmaz. Kayseri kullanıcısına select komutunu kullanabilmesi için tekrar izin verelim.

revoke select on haber to kayseri

Kullanıcıya nesne izinleri, veritabanı adı altında bulunan security-users altındaki ilgili user a (örneğimizde kayseri) çift tıklanarak securables kısmından, add butonuna tıklanarak görsel olarak yapılabilir. Add kısmında belirli bir nesne seçilebilir, tüm nesneler seçilebilir veya bir role seçilebilir.

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye