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.
|
Securable |
Permission |
Tanımı |
|
Server |
ALTER ANY LOGIN |
Server seviyesindeki herhangi bire login’i değiştirir. |
|
|
CONNECT_SQL |
SQL Server’a bağlanır. |
|
|
CREATE LOGIN |
Kullanıcı oluşturur |
|
|
CONTROL SERVER |
Full sistem yönetim kontrolü |
|
Login |
IMPERSONATE |
Kullanıcının başka bir kullanıcının yetkisini kullanmasını sağlar. |
|
|
ALTER |
Kullanıcıyı değiştirir. |
|
Database |
CREATE TABLE |
Veritabanında tablo oluşturur. |
|
|
CONTROL |
Veritabanın tüm kontolünü sağlar |
|
|
ALTER ANY USER |
Veritabanın daki herhangi bir kullanıcıyı değiştirir. |
|
Schema |
SELECT |
Şemadaki herhangi bir nesneden satırları seçer |
|
|
ALTER |
Şemadaki herhangi bir nesneyi değiştirir |
|
|
TAKE OWNERSHIP |
Şemanın sahipliğini değiştirir. |
|
User |
ALTER |
Belirtilen kullanıcıyı değiştirir. |
|
Table |
SELECT |
Tablodan satırları seçer |
|
|
ALTER |
Tabloyu değiştirir. |
|
|
CONTROL |
Tabloyu tüm kontrol eder. |
İyi Çalışmalar Dileklerimle…
Etiketler : 2005, server, sql, yenilikleri