Bölüm 8: SQL’de Yetkilendirmeler (Veri Kontrol Dili – DCL) - ppt indir
... konulu sunumlar: "Bölüm 8: SQL’de Yetkilendirmeler (Veri Kontrol Dili – DCL)"— Sunum transkripti:
Veri Kontrol Dili (DCL)Veri Kontrol Dili, veritabanı içerisindeki verilere erişimleri düzenlemek için kullanılır. Kullanıcı veya kullanıcı guruplarının erişim yetkilerini düzenlemektedir. DCL’nin 2 temel ifadesi: GRANT:	Kullanıcının kayıtlar üzerinde işlem yapmasına ve SQL komutlarını çalıştırmasına izin verir. REVOKE:	Daha önce verilen tüm izinleri iptal eder.
Temel SQL Yetkileri select: tablodaki veya görünümdeki verileri okuma ve sorgulama yetkisi. insert: tabloya yeni veri girme yetkisi. update: SQL update komutu kullanararak verileri değiştirme yetkisi. delete: veri/satır silme yetkisi. references: tablo yaratırken yabancıl anahtar oluşturma yetkisi. all privileges: tüm yetkilerin verilmesi için kullanılır.
Görünümler ve YetkilendirmeKullanıcılar görünümleri oluşturan tablolar üzerinde yetkilendirilmeksizin sadece görünümler için yetkilendirilebilirler. Bunun yanısıra, bir görünümün yaratıcısı , o görünümü oluşturan tablo veya tablolarda sahip olduğu yetkilerden daha fazlasına sahip olmaz. Öreğin musteri ve borc tablolarını kullanarak musteri-borc görünümünü yaratan bir kullanıcı musteri ve borc tablolarında sadece okuma (select) yetkisine sahşp ise oluştırduğu görünümde de sadece okuma yetkisine sahip olur.
Yetkilendirme (izin) Grant ifadesi:Kullanıcının kayıtlar üzerinde işlem yapmasına ve SQL komutlarını çalıştırmasına izin verir. Kullanım Şekli grant <izin listesi> on <izin alanı> to <kullanıcı listesi> <izin alanı> : tablo veya görünüm ismi <kullanıcı listesi> : yetkilendirilecek kullanıcılar: Kullanıcı ismi public, tüm kullanıcıları yetkilendirmek için kullanılır rol (daha sonraki kısımda anlatılacaktır) Ör: grant select on sube to U1 Bir kullanıcının herhangi bir yetkilendirme yapabilmesi için, veritabanı yöneticisi ya da o yetkiye sahip bir kullanıcı olması gerekir. (kullanıcı kendinde olmayan bir yetkiyi başka kullanıcılara veremez)
Yetkilendirme Yetkisiwith grant option: ifadesi bir kullanıcın kendine verilen bir yetkiyi başka kullacılara verebilmesi yetkisini (hakkını) verir.. Ör: grant select on sube to U1 with grant option U1 isimli kullanıcıya sube tablosu için select yetkisini ve bu yetkiyi diğer kullanıcılara aktarma yetkisini verir.
Roller «Roller», ortak yetkilere sahip olacak olan bir grup kullanıcının tek bir komutla yetkilendirilmesi için kullanılır. Yetkilendirme (ve yetki iptal etme) işlemi kullanıcılara yapıdığı şekilde yapılır. Roller kullanıclara ve hatta başka rollere verilebilir. Ör. create role memur create role mudur grant select on sube to memur grant update (mevduat_miktarı) on hesap to memur grant all privileges on hesap to mudur grant memur to mudur grant memur to ayse, mehmet grant mudur to hasan
Yetkilendirme (izin iptali)Revoke ifadesi: Daha önce verilen tüm izinleri iptal eder Kullanım Şekli revoke< izin listesi> on <izin alanı > from <kullanıcı listesi> [restrict|cascade] Ör: revoke select on sube from U1, U2, U3 cascade Bir kullanıcıya ait bir iznin iptal edilmesi, o kullanıcı tarfından yetkilendirilen tüm kullanıcıların izinlerinin iptaline neden olur Böyle bir durumda ardışık iptallerin engellenmesi için restrict kullanılır: Ör.	revoke select on sube from U1, U2, U3 restrict Bu durumda U1, U2, U3 kullanıcıları tarafından yetkilendirilen kullanıcıların izinleri iptal olmaz.
Revoking Authorization in SQL (Cont.)<izin listesi > all to olarak yazıldığında kullanıcıya ait tüm izinler iptal edilir. If <kullanıcı listesi> public ise tüm kullanıcıların izinleri iptal olur. Eğer bir kullanıcı ayni yetkiyi birden fazla kullanıcı tarafından almış ise, kullanıclardan birinin iznini iptal etmesi (veya ardışık izin iptalinden dolayı (cascade) iptal olması durumunda dahi, diğer kullanıcı tarfından verilen yetkiyi kullanmaya devam eder! Veritabanı Yöneticisi bu tip çevrim oluşturabilecek yetkilendirmeleri takip etmelidir ve oluşumlarını engellemelidir!
Yetkilendirme GrafiğiYetkilerin kullanıcıdan kullanıcıya geçişini göstermek için kullanılır. Grafiğin düğümleri kullanıcıları gösterir. Grafiğin kökü veritabanı yöneticisini (DBA) gösterir. Koşul: Grafikteki tüm kenarlar DBA tarafından başlatılmış bir yolun parçası olmalıdır. Ui  Uj gösterimi Ui isimli kullanıcının sube tablosu için update yetkisini Uj.isimli kullanıcıya verdiğini ifade eder. U1 U4 DBA U2 U5 U3
Yetkilendirme Grafiği (devam)Yukardaki örnekte; Veritabanı yöneticisi (DBA) U1isimli kullanıcın yetkisini iptal ederse; Yetki U4 isimli kullanıcıdan da kaldırılmalıdır (cascade) Fakat yetki U5 isimli kullancının yetkisi devam eder çünkü U5 ayni yetkiyi U2 isimli kullanıcıdan da almıştır.
Yetkilendirme Grafiği (devam)
Yetkilendirme Grafiği (devam)Bir önceki slaytda yer alan örnekte; Kullanıcılar veritabanı yöneticisinden bağımsı olan çevrimşer oluşturmaya çalışabilirler; DBA U1, U2, U3 isimli kullanıcıları yetkilendirir. U2 ,U3 isimli kullanıcıyı yetkilendir. U3 tekrardan U2 isimli kullanıcıyı yetkilendir. DBA U2 isimli kullanıcın yetkisini iptal eder.. Bu durumda U2 den U3 ‘e ve U3 denU2 ‘ye olan izinlerin iptal edilmesi gerekir çünkü DBA dan U2 ‘ye veya U3 ‘e bağlı olan bir yol kalmamıştır. Veritabanı Yöneticisi bu tip çevrim oluşturabilecek yetkilendirmeleri takip etmeli ve oluşumlarını engellemelidir.
"Bölüm 8: SQL’de Yetkilendirmeler (Veri Kontrol Dili – DCL)" indir ppt
Benzer bir sunumlar Bölüm 4: İleri SQL.