2 Mart 2012 Cuma

MS SQL 2005 Güvenliği


SQL Server 2005 güvenlik açısından daha sağlam bir yapı ile karşımıza çıkmaktadır. Bu yenilikleri öğrenerek, database çözümümüzün planını yapabiliriz.


  • SQL Server logins  için Password policy : SQL Server’in eski versiyonlarında da olduğu gibi, Microsoft Windows güvenlik sistemi veya SQL Server güvenlik sistemi aracılığıyla SQL Server 2005’e erişebiliriz. Buradaki farklılık daha önce Windows güvenlik sisteminde varolan password policy’lerini SQL Server login’lere de uygulayabilmemiz. Windows kullanıcı için var olan şifre sınırlandırmalarını artık SQL Server 2005’te de aynı durum geçerlidir.

  • Hiyerarşik Güvenlik Seviyeleri (Scopes) : Hiyerarşik güvenlik seviyeleri (scopes) farklı seviyelerdeki nesnelerin, principals, securables ve permissions’ların hiyerarşik düzenlenmesinin sağlayarak eski SQL versiyonlarına göre güvenliğin daha iyi  ve kolay yönetilebilmesini sağlar.

  • Kullanıcı ve şemanın bağımsızlığı: SQL 2005’te nesne isim uzayları nesne sahibinden bağımsız olarak, şema kullanılarak tanımlanır. Nesne sahibi ve nesne isim uzayının birbirinden bağımsız hale getirilmesi, daha esnek ve yönetilebilir bir framework sağlar.

  • Sınırlı metadata görüntülenmesi : SQL Server 2005’le gelen catalog viewler, metadatanın sınırlı olarak görüntülenmesini sağlar.  Varsayılan olarak kullanıcılar, izinli oldukları nesnelerin metadatalarını görebilirler.

  • Declarative execution context : CREATE komutu içerisinde yordam (procedure) ve foksiyonlar gibi programlanabilir modüllerin hangi güvenlik yetkileriyle çalışabileceğini ayarlayabiliriz.


SQL Server 2005’te güvenlik principals, securables ve permission’lar tabanlıdır.

Principallar: Sisteme erişen kullanıcılardır.

Windows seviyesinde
                                    Windows Grupları
                                    Domanin User Accountları
                                    Local User Accountlarını içerir.

SQL Server sistem’de           SQL Server Loginleri
                                                SQL Server Rolleri

Loginler de Windows login veya SQL Server Login’leri olabilirler. Defaut olararak Windows login etkindir. Windows accountları, SQL Server’daki Windows loginlere map edilmiştir.

Windows ve SQL Server loginlerin ikisi de sunucu rollerine atanabilirler. Bu aynı izinlere ihtiyaç duyan kullanıcı gruplarını ayarlamak açısından büyük kolaylık sağlar.
Windows kullanıcı şifreleri Windows işletim sistemi tarafından(Domain) kontrol edilir ve atanmış Windows kullanıcısına policy uygulayarak sınırlandırılabilir.

SQL Server loginleri için şifreler SQL Server tarafından kontrol edilir ve SQL Server tarafından yönetilen şifre policiyleri ile de sınırlandırılırlar. Şifre policy’leri yeni CREATE LOGIN statementinin bir parçası olarak tanımlanırlar.


Database Seviyesinde           
users (kullanıcılar)
database rolleri
uygulama (application) rolleri olmak üzere 3 seviye vardır.

Loginler database kullanıcılarına map edilirler ve kullanıcılar bir veya birden fazla database rolüne eklenebilirler. Uygulama rolleri,  client uygulama tabanlı alternatif güvenlik katmanı sağlamak için kullanılırlar.

Securables: Sistemde güvenliğini sağlamamız gereken nesnelerdir.

Securable’lar da  farklı seviyelerde var olurlar. Windows seviyesinde  SQL Server  ile ilişkili securable’lar, SQL Server’in kullandığı dosya ve registry keyleri içerirler. SQL Server seviyesinde securable’lar hiyerarşik düzeylerle organize edilmişlerdir.

Bunlar 
  • server seviyesi,
  • database seviyesi
  • şema seviyesidir. 

En geniş seviyesi olan Server seviyesinde  logins, http endpoints, serfifikalar, event notification (olay bildiricileri) gibi securable’lar içerirler. Server seviyesi SQL Server principal seviyesi ile uyum içindedir. Ayrıca server seviyesi  bir sonraki seviyeyi temsil eden bir veya birden fazla database içerir.

Database seviyesi, servisler, assemblyler, XML şemalar, roller, DDL eventler gibi securable’lar içerirler. Bir database, her biri nesneler için isim uzayı olarak görev yapan ve en düşük securable seviyesinde olan şemalar içerir.

Şema seviyesi tablolar, viewler, procedurler, queues gibi securable’lar içerir.

Permissionlar: Bir kullanıcının belirli aksiyonları veritabanı nesneleri üzerinde gerçekleştirmesi için gerekli olan yetkidir.

SQL Server’da  GRANT, REVOKE ve DENY komutları securable üzerinde principalların işlem yapmalarını kontrol ederler. Daha üst sevideki bir permission, daha düşük seviyelerdekilerde de geçerli olur. Permissionların bazılarını inceleyelim.


1 yorum:

  1. Bu yorum bir blog yöneticisi tarafından silindi.

    YanıtlaSil