Policy Management ile Politika Bazlı Yönetim Modeli

Published on 07 December 2013 by in Policy Management / Okunma: 1,650

0

Policy Management, SQL Server 2008 ile gelen özelliklerden birtanesidir. SQL Server 2012′de de devam ettirilmiştir. Policy Management ile şirket içi kurumsal politikalarınızı düzensiz, dağınık olarak tasarlanmış SQL Server instance’larınız üzerinde uygulayarak tümleşik ve tutarlı bir database tasarımı kurgulayabilirsiniz.

Policy Management ile instance’larımız üzerinde biz DBA’ler büyük ölçüde tutarlı bir maintenance sağlarız. Örneğin database üzerinde Stored Procedure yaratma yetkisi olan kişiler için bir prefix tanımlaması yaparak Stored Procedure’lerin prefix’inin sadece “sp_” ile başlamasını sağlayabilir, prefix uyuşmazlığı gösteren Stored Procedure’ler için detaylı hata mesajı verdirebiliriz. Örn:sp_CreateTable“. Böylelikle bir bütünlük sağlamış oluruz. Başka bir örnek vermek gerekirse, Tablo yaratma yetkisi olan kişiler için tablo yaratırken Clustered Index’in de yaratılmasını Policy Management üzerinde yaratacağımız condition’lar ile sağlamamız mümkündür.

Policy Management, SQL Server Management Studio üzerinde instance içerisinde Management altında bulunmaktadır. Management Studio üzerinden yapılandırılabildiği gibi aynı şekilde Transact-SQL ile de yapılandırılabilmektedir.

 

 

 

 

 

Policy Management’ta dört ana bölüm vardır. Bunlar Policies, Target, Conditions ve Facets‘tir. Bir Policy yaratılmadan önce ilk olarak Facets’e bakılmalıdır. Burada condition olarak kullanacağımız özelliklerin listesini ve objelerini görmemiz mümkündür.

 

 

 

 

 

 

 

 

 

 

 

Facets’e Policy Management altından ulaşıldığı gibi aşağıdaki gibi T-SQL ile de listeyi almamız mümkündür.

SELECT [name] AS Facets 
  FROM [msdb].[dbo].[syspolicy_management_facets]

 

 

 

 

 

 

 

 

 

 

 

 

Conditions, Facets’leri kullanarak oluşturacağımız kurallar havuzudur. Bu kuralları (AndOr – Field – Operator – Value) şeklinde conditional olarak oluştururuz.

 

 

 

Policies, Facets’ler yardımıyla oluşturmuş olduğunuz Condition’larımızı tetikleyen kurallarımızdır. Policies, istenildiği taktirde scheduled olarak da tetiklenebilmektedir.Target ise, oluşturulan Policy’nin hangi nesneler üzerinde tetiklenmesi gerektiğini gösterir.

SQL Server 2012′de default olarak yaratılmış AlwaysOn için System Policy’leri gelmektedir. Bu policy’ler istenildiği taktirde enable edilerek AlwaysOn’un bütünlüğü kontrol altında tutulabilinir.

 

 

 

 

 

 

 

 

 

SQL Server 2012 üzerinde default olarak yüklü olmayan fakat “C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Policies\DatabaseEngine\1033” lokasyonunda bulunan 50 adet Policy template’i mevcuttur. Bu template’ler XML formatındadır.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bu XML policy dosyaları istenildiği taktirde Policy olarak import edilebilmektedir. Bu dosyaları ister tek tek ister topluca import edilebilinir. Import etmek için Policies‘e sağ tıklayarak Import Policy…‘e tıklanır.

 

 

 

 

 

 

 

Açılan penceredeki Files to import kısmından “C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Policies\DatabaseEngine\1033” lokasyonuna giderek XML file’larımızı seçiyoruz.

 

 

 

 

 

 

 

 

 

 

Eğer import etmek için seçtiğimiz Policy arasında daha önceden import ettiğimiz Policy varsa ve duplicate olmasını istemiyorsak Replace duplicates with items imported‘ı seçiyoruz. Policy state kısmında ise import edilen Policy’lerin edildiği andan itibaren enable veya disable olarak ne şekilde kalacağını belirtmemiz gerekiyor. Ayarlarımızı tamamladıktan sonra son olarak OK‘e tıklıyoruz.

 

 

 

 

 

 

 

 

 

XML dosyalarımızı import ettikten sonra Policy Management altında Policies ve Conditions klasörlerine baktığımızda Policy’lerimizin ve Condition’larımızın geldiğini görmekteyiz.

Bu makalede SQL Server 2012′de ki Policy Management’ı ana hatları ile inceledik. Bir sonraki makalede örnekler ile detaylı olarak Policy/Condition ilişkisi üzerinde duracağız.

Leave a Reply