SQL Server Policy Management Yardımıyla İsimlendirme Kontrolünün Yapılması

Bu yazıda SQL 2008 ile hayatımıza girmiş olan Policy Management özelliğine değiniyor olacağız. Bu özellik ile birbirinden farklı Policy’ler oluşturup Database içerisindeki bazı takip işlerini bu şekilde gerçekleştirebilirsiniz. Örnek vermek gerekirse, tablo isimlendirmeleri hakkında bir Policy oluşturup belirli aralıkta bunların kontrolünü tek bir noktadan sağlayabilirsiniz.

Policy Management menüsüne SQL Server Management Studio (SSMS) de management’ın altında erişebilirsiniz.


Resim-1

Yukarıda ki resimi incelemeye başladığımız taktirde Policy Management altında 3 bölüm olduğunu görüyoruz. Bu bölümler ve tanımlamalarını yapmamız gerekirse;

  • Policies : Condition ( Koşul ) ların bütünleştirilip bir Policy tanımadığımız bölüm.
  • Conditions : İstediğimiz koşulları oluşturduğumuz bölüm.
  • Facets : SQL Server kurulumu ile gelen yönetilebilen özelliklerin bulunduğu bölümdür. Bu bölüm içerisinde Table Facets’a bakarsak eğer bir tablo için koşul olarak verebileceğimiz bütün özellikleri görebiliriz. Aşağıda Table Facets örneği gösteriyorum.


Resim-2

Temel tanımlardan bahsettik, şimdi Policy oluşturmanın basamaklarını beraber inceleyerek bir “Table Naming Policy” oluşturalım.

1. Condition ( koşul ) oluşturulması

2. Policy Oluşturulması

3. Policy çalıştırılması

Örneğimiz içerisinde oluşturulmasını istediğimiz Policy, “DBA” veritabanı içerisinde “Table” isimlerini kontrol ederek “tbl_” ön takısı ile başlayıp başlamadığını kontrol edecektir.

İşlem basamaklarını oluşturuyoruz.

1. Öncelikli olarak “DBA” veritabanı oluşturuyoruz.

IF NOT EXISTS(select * from sys.Databases where name=’DBA’)

Create DATABASE DBA

2. Condition ( Koşul ) oluşturma işlemini gerçekleştirmemiz gerekiyor. Policy Management altında bulunan Condition üzerinde sağ tıklıyoruz ve New Conditions tıklıyoruz.

Resim-3

Karşımıza yeni gelen pencere ise aşağıdaki gibidir. Bu pencere üzerindeki tanımlamalar ise ;

  • Name : Condition’a verilecek isim bilgisidir. Örneğimizde “Table_Name_Condition” olarak belirliyoruz.
  • Facet : Condition’ı etkli olmasını istediğimiz alan bilgisidir. Örneğimizde “Table” olarak belirliyoruz.
  • Expression : Bu bölüm ise kriterlerimizin tanımladığımız bölümdür. Örneğimizde Field bölümüne “@Name” operator bölümüne “LIKE” value bölümüne ise “tbl_%” yazıyoruz.


Resim-4

3. Condition bilgisini de oluşturduktan sonra sıra Policy oluşturmamıza geldi. Bu işlem için ise Management Policy altında bulunan Policies sağ tıklayıp New Policies tıklıyoruz.


Resim-5

Gelen pencere ve üzerindeki değer bilgileri aşağıdaki gibi yapılandırılıp “ok” tıklanır.

  • Name : Oluşturulan Policy için verilen isim bilgisidir. Örneğimizde verilen isim ise “Table_Name_Policy” dir.
  • Check Condition : Policy içerisinde hangi Condition bilgisini kriter olarak seçeceğimizi belirtiyoruz. Örneğimiz de bu bölümü de “Table_Name_Condition” seçiyoruz.
  • Against Targets : Policy hangi hedeflerde gerçekleştirileceğiniz belirtiyoruz. Varsayılan olarak “Every Table“,”Every Database” gelmektedir. Bizim örneğimizde olması gereken ise “DBA” veritabanı içerisinde “Every Table” da olması. Bu yüzden Against Targets bölümünde “Every Database” bölümünde New Condition oluşturarak “DBA” veritabanı seçiyoruz. ( New Condition kısımı ikinci adımda gerçekleştirdiğimiz tanımlama benzeridir. Bu yüzden tekrar tanımlamanın nasıl yapılacağını anlatmadım.)
  • Evaluation Mode : Bu bölümde karşınıza 2 adet seçenek gelmektedir. Bunlar ;
    • On Demond : Default olarak gelmektedir. Bu seçeneğin seçilmesi halinde Policy üzerinde sağ tıklayıp Evaluate seçeneğini seçip manuel çalıştırmanız gerekmektedir.
    • On Schedule : Policy için bir zamanlama tanımlayıp o vakitlerde çalıştırılması sağlayabilirsiniz. Tanımlı zamanlama bilgilerini seçebileceğiniz gibi sizde tanımlama yapabilirsiniz.


Resim-6

Policy oluşturma işlemini gerçekleştirmiş olduk. Şimdi oluşturduğumuz “DBA” veritabanı üzerinde örnek iki adet tablo oluşturup Policy Evaluate edip sonuçları görüntüleyelim. Tablo oluşturmak için aşağıdaki kod parçalarını kullanabiliriz.

use DBA

go

create table MsHowto ( Id int)

go

create table tbl_MsHowto ( Id int)

Tablo oluşturma işlemini de başarılı bir şekilde yaptık şimdi Policy Evaluate etmemiz gerekiyor. Bu işlem için Policy Management à Policies à
Table_Name_Policy üzerinde sağ tıklayıp Evaluate ediyoruz.


Resim-7

Evaluate işlemini yaptıktan sonra;


Resim-8

Yukarıda Evaluate Policies ekranından anlaşılacağı üzere “DBA” Veritabanı üzerinde Policy uygulandığı, 1 tablonun Policy uygun diğerinin ise uygun olmadığı gibi bilgileri görebiliyoruz. Views bölümüne tıklayarak Policy detaylarını Condition ile birlikte görüntüleyebiliyoruz. Aynı zamanda bu ekranın çıktısını ise “Export Results” diyerek dışarı alabilmekteyiz.

Sonuç olarak, SQL Server Policy Management ile birçok özellikle hakkında Policy uygulayabilir, bunları kontrol edebilir ve raporlarını yapabiliriz. Policy Management ile gerçekleştiremediğimiz işlemler için ise, yönetilebilir özelliklere ait Trigger tanımlaması yaparak istediğimiz özelliklere sahip bir SQL Server hizmeti kullanabiliriz. Policy Management, çoklu Database Developer çalıştıran bir firma içerisinde Database daha düzenli olmasını sağlayabiliriz. Bir sonraki makalemizde görüşmek üzere.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Yazı gezinmesi

Mobil sürümden çık