Beşiktaş Forum  ( 1903 - 2013 ) Taraftarın Sesi


Geri git   Beşiktaş Forum ( 1903 - 2013 ) Taraftarın Sesi > Eğitim Öğretim > Dersler - Ödevler - Tezler - Konular > Elektronik & Bilgisayar

Cevapla
 
LinkBack Seçenekler Stil
Alt 22-11-2006, 00:48   #1
B J K
 
odin - ait Kullanıcı Resmi (Avatar)
 
SQL Server (Geniş Anlatım)

SQL Server nedir?

SQL Server, client ve SQL Server arasında iletişim kurmak için Transact-SQL�i kullanan bir client/server, ilişkisel veritabanı yönetim sistemidir.

Client/Server Mimarisi
SQL Server, çalışma ortamını, client ve server bilgisayarlarda çalışan işlere ayırmak için client/server mimarisini kullanır.

v Client, bir veya daha fazla client bilgisayarlarının üzerinde çalışır ama ayrıca SQL Server ile server bilgisayarlarının üzerinde de çalışır.

v SQL Server, veritabanlarını yönetir ve istekler arttıkça uygun server kaynaklarını böler.

Client/Server mimarisi çeşitli ortamlar için uygulamaları düzenlememize izin verir. Client programlama arayüzü, farklı client bilgisayarlar üzerinde uygulamaları çalıştırmaya ve network aracılığıyla server�a iletmeye olanak sağlar.

İlişkisel Veritabanı Yönetim Sistemi
İlişkisel veritabanı sistemi aşağıdakilerden sorumludur:

v Veritabanındaki veri arasında ilişki sağlamaktan.

v Veri arasındaki ilişkileri bozmayan kurallara göre verinin depolandığından emin olmaktan

v Başarısız sistem olaylarında, bütün verileri geri almaktan.

Transact-SQL
SQL, düzeltilmesi ve değiştirilmesi istenen bilgileri açıkça belirtmeye izin veren bir komut takımıdır. Transact-SQL sayesinde veri ve sorgulara erişebilir, güncelleyebilir ve ilişkisel veritabanı sistemini yönetebilirsiniz. En son ANSI SQL standartını destekler ve ANSI Sql-92 olarak adlandırılıyor.

SQL Server Platformu
Uygulamaları yaratmak ve çalıştırmak için birkaç veya daha fazla işletim sistemi platformları kullanılabilir. Client olarak MS-DOS, Windows 3.x, Windows NT, Windows 9.x, Third Party (Unix ve Apple Macintosh gibi), İnternet Browser; Server olarak Windows NT, Windows 9.x kullanılır.

Windows NT ile SQL Server�ın Uyumu
SQL Server Windows NT ile tamamıyle uyumlu ve onun birçok avantajına sahip.

Güvenlik: SQL Server, Win NT�deki güvenlik sistemi ile uyumlandırılmış. Bu uyum SQL Server ve WinNT�nin her ikisine de erişim için tek bir kullanıcı ismine ve şifresine izin verir. SQL Server Microsoft Client�ı olmayanlar (Banyan VINES, AppleTalk, Novell) için kendi güvenliğini sağlar. SQL Server ayrıca network güvenliği için WinNT�nin encryption özelliğini kullanır.

Çoklu İşlemci Desteği : SQL Server otomatik olarak server bilgisayara eklenmiş olan ekstra işlemcilerin avantajlarına sahip olur. SQL Server WinNT�nin symmetric multiprocessing (SMP) yeteneklerini destekler.

Microsoft Event Viewer: SQL Server problemleri görmek ve izlemek için uygun bir mekanizma sağlayarak WinNT uygulamalarına, güvenliğe ve sistem event loglarına mesaj yazar.

Windows NT Servisleri: SQL Server WinNT üzerinde bir servis olarak çalışır ve SQL Server�ı başlatmaya ve durdurmaya izin verir.

Windows NT Performans Denetimi: WinNT performans denetimine, SQL Server�ın sistem performansını yönetmeye imkan sağlayan performans metriklerini gönderir.
Alias: Farklı login ID�ler tarafından paylaştırılan veritabanı kullanıcı ismidir. Veritabanı alias�I, hepsine aynı izinleri vererek, aynı kullanıcı olarak birden fazla kişiyi ele almaya izin verir. Ayrıca, veritabanındaki herhangi bir kullanıcı ismi, bir alias olarak çalışır.

Alias�lar, farklı kullanıcılar dbo rolü sayıldıklarında kullanılırlar.

Domain: WinNT güvenliğinde, bir domain, yönetimsel amaçlar ve incelemeler için gruplanmış ve ortak bir güvenlik veritabanını paylaşan bilgisayarlar kümesidir.

Group: SQL Server�da, bir veritabanı grubu, veritabanı kullanıcıları kümesidir. Kullanıcılar, gruba onaylanmış veritabanı izinlerine sahip olurlar. Grupları kullanma, çok sayıda kullanıcının idare edilmesini basitleştirir; çünkü gruplar, aynı anda bir den fazla kullanıcıya izinleri onaylamayı ve iptal etmeyi sağlar.

WinNT�de, bir grup, WinNT kullanıcı kümesidir. Kullanıcılar, gruba onaylanmış bütün izinlere ve WinNT haklarına sahiptir. Gruplar, çok sayıda kullanıcının yeteneğinin yönetilmesini sağlar.

SQL Server�ın Microsoft BackOffice ile Uyumu
Back Office iş çözümleri oluşturmak için kullanılan bir server uygulama grubudur. SQL Server Microsoft Backoffice ürünleriyle iyi bir şekilde uyumlandırılmıştır. SQL Server ile çalışan Back Office uygulamaları şu şekilde tanımlanmıştır:

Microsoft Internet Information Server: SQL Server�daki verilere erişmek için internet client�larına izin verir.

Microsoft Exchange Server: SQL Server veya MAPI (Messagini Application Programming Interface) bunu kullanarak e-mail mesajları gönderebilir.

Microsoft SNA Server: PC tabanlı network�lerle, SNA protokolünü çalıştırarak, IBM ortamlarına bağlanır. SNA Server kullanarak, SQL Server�ı Ibm mainframe�leriyle veya AS400 uygulamaları ve verileriyle uyumlu hale getirebiliriz.

Microsoft Sistemleri Yönetimi Serverı: Kendi veritabanınlarını depolamak için SQL Server�ı kullanır ve bilgisayar yazılımlarını ve donanımlarını yönetir.

SQL Server Servisleri:
Bütün SQL Server servisleri, Win NT üzerinde servisler olarak veya Win 95 ve diğer işletim sistemleri üzerinde uygulama olarak çalışır. SQL Server servisler MSSQL Server�ı, SQL Server Agent�i ve Microsoft Distrubuted Transaction Coordinator�ı (MS DTC) içerir.

MSSQL Server Servisi: İlişkisel veritabanı yönetim sistemidir. Transact-SQL ifadelerini işler ve server�daki veritabanından oluşan dosyaları yönetir.

v Bu servisler tesadüfi çoklu kullanıcılara göre bilgisayar kaynaklarını ayırırlar.

v Mantıksal problemleri engeller. (Aynı anda aynı veriyi güncellemek isteyen kullanıcılara karşı zaman isteme gibi�)

v Veri uyumunu ve tutarlılığını garanti altına alır.

SQL Server Aracı Servisi: Lokal veya çoklu server işlerini, uyarıları ve operatörleri yaratmak ve yönetmek için SQL Serverla birleşim içinde çalışan bir servis

Microsoft Distrubuted Transaction Coordinator Servisi: Bu bir transaction yöneticisidir. Bir işlemdeki farklı veri kaynaklarını içeren client�lara izin verir. Ayrıca Microsoft Transaction Server�ın bir bileşenidir.

SQL Server Client Yazılımı:

SQL Server, veritabanını yaratmak ve dizayn etmek, veri sorgulamak, server�ı idare etmek ve belirli konular üzerinde yardım aramak için client yazılım çeşitlerini içerir.
odin Ofline   Alıntı ile Cevapla
Alt 22-11-2006, 00:49   #2
B J K
 
odin - ait Kullanıcı Resmi (Avatar)
 

SQL Server Yönetimi

vSQL Server, administrative tool�ları otomatikleştiren ve minimize eden yönetim araçları sağlar. (SQL Server Enterprise Manager sağlar)
voSQL ve bcp gibi batch utilityleri kullanarak SQL Server yönetilebilir.
vGrafiksel yönetim araçları kullanılarak SQL Server yönetilebilir.
vVisual Basic gibi COM uygulamaları kullanılarak SQL Server yönetilebilir.
Transact-SQL, SQL Server�ın yönetimi için kullanılan, alt mekanizmadır.

SQL Distributed Yönetim Nesneleri (SQL -DMO)
SQL-DMO, SQL Server tarafından kullanılan COM tabanlı yönetim nesneleri yığınıdır. Transact-SQL ifadelerinin detaylarını gizler ve yönetim scripti yazmak için uygundur. Grafiksel yönetim araçları SQL �DMO kullanılarak yazılmıştır.

SQL Server Agent

SQL Server Agent, aşağıdaki yönetimsel görevleri yerine getirebilmek için SQL Server ile birleşim içinde çalışan bir servistir.

Alert Yönetimi: Bir job (iş) bittiği zamanki veya bir hata meydana geldiği zamanki, işlem durumu hakkında bilgi sağlar. SQL Server Agent, eventler için WinNT application event log�u denetler ve alert�ler meydana getirir.

Notification: Bir alert meydana geldiği zaman, SQL Server, bir e-mail mesajı veya bir işlem sayfası gönderebilir veya başka bir uygulama başlatabilir. Bir veritabanı veya transaction log dolu olduğunda veya yedekleme başarılı olduğunda, bu olayların meydana geldiğini gösteren bir alert ayarlanabilir.

Job Execution: Job�lar tek adımlı işler olarak basit olabilir, veya çok adımlı işlemler olarak karmaşık olabilirler. İşletim sistemi komutlarıyla, Transact_SQL ile job step�leri yaratılabilir.

Replication Yönetimi: Replication veriyi veya işlemleri, bir server�dan diğerine kopyalama işlemidir. SQL Server Agent, server�lar arasındaki veri uyumundan, değiştirilen veriyi denetlemeden, bilgiyi server�lara kopyalamadan sorumludur.

SQL Server Güvenliği
SQL Server iki tip güvenlik sağlar. Bunlar; giriş belgeleri, veritabanı kullanıcı account�u ve rolleri üzerindeki izin geçerliliği.
Login Authentication
Kullanıcının SQL Server�a bağlanması için login account�a sahip olması gerekir. SQL Server iki giriş belgesi mekanizmasını onaylar; SQL Server belgesi ve Win NT belgesi. Her birinin farklı giriş hesabı tipi var.
SQL Server Belgesi
SQL Server belgesi kullanıldığı zaman, SQL Server sistem yöneticisi, giriş hesabı ve şifresi tanımlayabiliyor. Kullanıcılar, SQL Server�a bağlandıkları zaman, giriş ve şifrenin her ikisini de elde etmeli.
WinNT Belgesi
WinNT belgesi kullanıldığı zaman Win NT account veya grup kullanıcıları,SQL Server�a bağlanacağı zaman, bir SQL Server login account�u elde etmeden, SQL Server�a erişebilir. SQL Server sistem yöneticisi, geçerli bir SQL Server login account�u olarak ya WinNT account ya da WinNT grup tanımlamalı.
Belge Modu

SQL Server Win NT�de çalışırken, sistem yöneticisi, SQL�in iki belge m****dan birinde çalıştığını belirtebilir. Bu modlar:
Windows NT Belge Modu: Sadece WinNT belgesi izinlidir. Kullanıcılar SQL Server giriş hesabı belirleyemez.
Mixed Mode: Bu belge modu kullanıldığında, kullanıcılar WinNT belgeleriyle veya SQL Server belgeleriyle SQL Server�a bağlanabilirler. Mixed security, ya uyumlu ya da standart güvenlik kullanılarak giriş isteklerini onaylamaya izin verir. Güvenilir bağlantılar (uyumlu güvenlik tarafından kullanılan) veya güvenilir olmayan (standart güvenlik tarafından kullanılan) bağlantılar tanınırlar.

Integrated security

Bütün bağlantılarda loginleri doğrulamak için, SQL Server�ın WinNT authentication mekanizmasını kullanmasına izin verir. Sadece güvenilir bağlantılar (multi-protocol ve named pipes) izinlidir.

Standart security

Bütün bağlantılar için SQL Server�ın kendi login doğrulama işlemini kullanır. SQL Server�a log olabilmek için, herbir kullanıcı, geçerli bir loginID ve şifre sağlamalı.


Veritabanı Kullanıcı Account�ları ve Roller
Kullanıcılar doğrulandığında ve SQL Server�a log olmaya izinli olduktan sonra veritabanında account�ları olmalı. Kullanıcı account�lar ve roller veritabanı içinde bir kullanıcıyı tanır ve nesneleri kontrol ederler. Statementleri çalıştırmaya izinli olur.
Veritabanı Kullanıcı Account�lar
Kullanıcı account�lar, güvenlik izinlerini uygulamak için kullanılır. WinNT kullanıcıları veya grupları veya SQL Server login account�larıdır. Kullanıcı account�lar bir veritabanına özgüdür.
Veritabanı Rolleri
Kullanıcıları, İzinlerin uygulanabildiği tek parçalar içinde bir araya toplamayı sağlar. Server seviyesi ve veritabanı seviyesinin herikisinde de roller mevcuttur. Ayrıca kendi kullanıcı tanımlı veritabanı rollerini de tanımlayabilirsin. SQL Server, ortak yönetim fonksiyonları için öncelikli tanımlı server ve veritabanı rolleri sağlar. Böylece özel kullanıcılara yönetim izinleri kolayca verilebilir.
Fixed Server Role
Fixed Server Role, server seviyesinde yönetim ayrıcalıkları sağlar. Bu roller, Server seviyesinde kullanıcı veritabanlarını etkilemeden yönetilirler
odin Ofline   Alıntı ile Cevapla
Alt 22-11-2006, 00:49   #3
B J K
 
odin - ait Kullanıcı Resmi (Avatar)
 

SQL Server Kurulumu için Gerekli Olan Seçenekler
Lisans Modu

Lisans m****da iki seçenek vardır. Bunlar Per Server ve Per Seat.
Per server: Client Access Lisansı özel server�a verilir. Workstation bağlantılarının maximum sayısı Client Access Lisansının izin verdiği sayıya eşit olmalı.
Per Seat: Client Access Lisansı özel workstation�a verilir. SQL Server�a bağlanan her bir Workstation bir Client Access Lisansı ister. Bu mod, bir server�a sınırsız sayıda workstation bağlantısını destekler.
Kurulumu Path�i
Kurulum sırasında C:\Mssql7 olarak default bir path gelir. Bu path isteğe göre değiştirilir. Ayrıca SQL Server kurulum sırasında sistem dizine dosyalar kurar. Sistem dosyalarının yeri değiştirilemez. Yeterli disk alanına sahip olunduğundan emin olmak gerekir.
Program Dosyaları
Program dosyaları, ilişkisel veritabanı motorunu, araçları (osql ve bcp gibi), upgrade araçlarını, kopyalama nesnelerini, ve Microsoft full text arama motorunu içerir.
Veri Dosyaları
Setup programı, master, model, msdb, pubs, northwind ve tempdb veritabanları için veritabanı ve transaction log dosyaları yaratır. Veri dosyaları, bu dosyaların genişleyebileceği göz önüne alınarak yeterli disk alanına sahip bir sürüceye yerleştirilmeli.
Note: SQL Server program ve veri dosyalarına erişmek için WinNT yaz/oku iznine sahip olunmalı.

Karakter Set
Kurulum sırasında kullanılan dili destekleyen karakter seti seçilmeli. Biz genelde kurulum sırasında Turkish dil desteğini seçiyoruz.
Önemli: Kurulumdan sonra, karakter seti değiştirilirse, bütün veritabanı yeniden build edilmeli.
Sort Order
Bir sort order karakter verisini sorgulanan karakter verisi ile karşılaştırır. Bunların bütün karakterlerinin (büyük küçük harf ayrımı gözeterek) eşit olup olmadığına bakar.
Case-insensitive büyük/küçük harf ayrımı yapmaz. Bu durum performansı arttırır; çünkü karşılaştırmalar için zaman harcanıyor. Aynı server üzerinde farklı sort order�lara sahip veritabanları bulunamaz. Biz genelde kolaylı açısından case-insensitive özelliğini seçiyoruz
Unicode Collation
Unicode veri için bir sort order olarak görev yapar. Bir Unicode Collation, farklı karşılaştırma stillerini içerir. Setup programı genelde case-insensitive, width-insensitive, Kana-insensitive seçeneklerini işaretli olarak getirir. Unicode ve Non-Unicode veri için aynı sort order�ın seçilmesi tavsiye edilir. Farklı bir değer seçilirse verinin Non-Unicode�dan Unicode çevrilmesi çok zor olur. Biz genelde default olarak gelen seçenekleri değiştirmiyoruz.
Network Desteği
SQl Server, belirli network protokolleriyle habeleşmek için network library�lerini kullanır. Server çoklu network library�lerini dinler; çünkü bir client network library�lerini kullanarak server ile haberleşir.
Geçerli network library�leri
Setup programı, Named Pipes, TCP/IP soketlerini, Multi-Protocol network library�lerini seçer. Ayrıca client yönetim araçları için geçerli network library�leri olarak Named Pipes�ı ayarlar. Client network library�si SQL Server network library�sine uygun olmalı.
Bir network library�i Seçme
Bir network library�i seçerken aşağıdaki adımlara dikkat etmek gerekir.
§WinNT authentication�ı kullanma, geçerli network library�ilerden birini gerektirir.
§WinNT encryption�ı kullanma, Multi-Protocol network library�isini gerektirir.
§Seçilen network library�i, WinNT�nin kullandığı network protokolüne bağlıdır.

SQL Server Servislerini Başlatma
Setup programı çalıştırıldıktan sonra, SQL Server�ı kullanmak için MSSQLServer başlatılmalı.
Bir Servisi Başlatma, Dondurma, Durdurma
Aşağıdakiler yapılarak bir servis başlatılabilir, dondurulabilir, durdurulabilir:
¨SQL Server Service Manager
¨SQL Server Enterprise Manager
¨Control panel�deki servisler
¨Net start mssqlserver, net pause mssqlserver, net stop SQL ServerAgent gibi command prompt�ta bir net komutu
SQL Server�a Bağlanma
SQL Server�a bağlanırken, WinNT kullanıcı account�u veya SQL Server login account�u kullanılabilir. SQL Server�a bağlanmak için aşağıdakiler yapılır:
§SQL Server Query Analyzer
§SQL Server Enterprise Manager
Osql Command Prompt Utility�yi Kullanma
Osql, SQL Server�la haberlşemek için ODBC�yi kullanır.
SQL Server Enterprise manager�ı Konfigüre Etme

Lokal ve remote server�ı yönetmek için server�a kayıtlı olmak gerekir. Lokal server, SQL Server kurulduğu zaman, otomatik olarak kaydedilir. Remote server ise kaydedilmeli ve server grubunun içine yerleştirilmeli. SQL Server kayıt bilgisi, WinNT registry�de korunur.

Not: SQL Server Enterprise Manager�ın server�a bağlanırken kullandığı geçerli network library�si Named Pipes�tır. Remote server�a Named Pipes ile bağlanılamıyorsa, Control Panel�deki SQL Server Client Configuration kullanılır.

SQL Server, paylaştırılmış veya özel registry bilgisinin korunmasına izin verir.
Geçerli olarak; registry bilgisi özeldir. Diğer kişilerin sizin konfigurasyonunuza erişim hakkı yoktur.
Alternatif olarak; registry bilgisi paylaştırılabilir. Birçok kullanıcının lokal bilgisayardan veya merkez bilgisayardan aynı konfigurasyonu kullanmasına izin verir.

SQL Server�ı Konfigure Etme

SQL Server kullanılmadan önce, sa login�in şifresi belirlenmeli. Aksi halde yetkisi olmayan bir çok kullanıcı sa logini ile SQL Server�a erişebilir ve yönetim ayrıcalıklarından yararlanabilir. Şifre saptanırken aşağıdaki adımlar gözönüne alınmalı.
LoginID�ler ve şifreler, master veritabanındaki sistem tablolarında tutulur ve her bir server için değiştirilmelidir.
Şifre belirlemek için SQL Server Enterprise Manager veya sp_password stored procedure�ı kullanılabilir.
Kaynakları Dinamik Olarak Yönetme
SQL Server SQL kaynaklarının çoğunu dinamik olarak yönetir. Bu yüzden de yönetim açısından sistem yöneticisinden daha yeterlidir. Elle yapılan konfigurasyon seçenekleri önerilmez. Ama kullanıcı bağlantılarının sayısı sınırlanmak ve belleğin kullanımı kontrol edilmek istenebilir. Bu durumda el ile ayar yapmak gerekir.
Aksaklıkları Giderme
Kurulum veya bağlanma sırasında çıkan aksaklıklar için Cnfgsvr.out dosyasının incelenmesi gerekir. Bu dosya C:\Mssql7\Install klasöründe bulunur. Bu dosya log bilgisini incelemek ve network bağlantısını test etmek içi kullanılır. Cnfgsvr.out dosyası, Setup sırasında çalışır ve DBCC (Database Consistency Checker) hata mesajlarını kaydeder.
Log Bilgisini İnceleme
SQL Server ve WinNt log�u kurulum veya işlem sırasında yapılan hataları incelememize izin verir. Aşağıdaki tablo farklı logları tanımlar.
odin Ofline   Alıntı ile Cevapla
Alt 22-11-2006, 00:50   #4
B J K
 
odin - ait Kullanıcı Resmi (Avatar)
 

Güvenlik Yönetimi Belge Denetimi (Authentication Processing)
SQL Server, girişleri doğrulamak için WinNTye güvenir ya da kendi kendine girişleri doğrular.
WinNTnin Doğruladığı Girişleri SQL Server Nasıl Denetler
Aşağıdaki adımlar, WinNT�nin doğruladığı loginleri SQL Server�ın nasıl işlediğini tanımlar.
vBir kullanıcı SQL Server�a bağlandığı zaman client SQL Server�a güven bağlantısı açar.
Client güven bağlantısı açtığı için SQL Server, WinNTnin login accountu zaten onayladığını bilir.
vEğer SQL Server, SQL Server login accounts listesindeki kullanıcının WinNT user account veya group account�unu syslogins sistem tablosunda bulursa bağlantıyı kabul eder.
SQL Server�ın bir şifreyi yeniden onaylamaya ihtiyacı yok; çünkü WinNT zaten onu onaylamıştır.
Not:
SQL Server, WinNT�de yaratılan veya WinNT�den kaldırılan grupları tanımaz. Grubu SQL Server�dan kaldırıp tekrar eklemek gerekir; çünkü SQL Server grubu teşhis etmek için WinNT güvenlik kimlik numarasını (Security identification number) kullanır.

vBu durumda kullanıcının SQL Server login account�u, SQL Server login account olarak tanımlanmış ya WinNT kullanıcı ya da grup account�udur.
vEğer çoklu SQL Server bilgisayarları güvenli domain gruplarının içine katılırsa tek bir NT domain�e giriş bütün SQL Server�lara erişim sağlamak için yeterlidir.
Kendisinin Doğruladığı Girişleri SQL Server Nasıl Denetler
SQL Server kendi doğruladığı girişleri onaylamak için aşağıdaki adımları ele alır:
vBir kullanıcı, SQL Server login account�u ve şifresiyle bağlandığı zaman, SQL Server syslogins tablosunda yer alan girişi onaylar ve belirlenmiş şifre önceki kaydedilmiş şifreye uyar.
Eğer SQL Server kullanıcıya yer verecek login account�a sahip değilse, authentication başarısız olur ve bağlantı reddedilir.
Authentication Mode Seçme

Network ortamları ve server�ın güvenlik ihtiyaçları, SQL Server�da kullanılacak authentication modu belirler. Authentication Mode�u ayarlamak için SQL Server Enterprise Manager kullanılabilir.
WinNT Authentication Mode�un Avantajları
Tüm client�ların desteklediği güvenli bağlantılar içindeki network ortamında WinNT Authentication Modu kullan. WinNT authentication, SQL Server authenticationdan farklı avantajlar sunar.
ØGeçersiz bir şifreden sonra, account lockout, minimum şifre uzunluğu, şifre sonu, denetleme (auditing) ve şifrelerin güvenlik onayı ve encryption�I gibi bir çok özellik sağlar.
ØTek bir login account eklemeyle, SQL Server�a kullanıcı grupları eklemeye olanak sağlar.
ØBaşka bir login account ve şifre hatırlamadan SQL Server�a kolayca erişebilmeye olanak tanır.
Mixed M**** Avantajları
Mixed Mode ve SQL Server authentication mekanizması, aşağıdaki avantajları sunar.
ØMixed Mode, SQL Server�a bağlanmak için Windows NT client�ları, Internet client�ları, mixed client grupları olmayanlara olanak sağlar.
ØSQL Server authentication, WinNT üzerine başka güvenlik katmanları eklemeye izin verir.
Bir Authentication Mode�u Tamamlamak için Gerekli Adımlar
Authentication�I tamamlamak, için sistem administration account�undan aşağıdaki işleri yapmak gerekir.
WinNT authentication modu için 1-5 arasındaki adımları, Mixed Mode için ise 1-6 arasındaki adımları icra etmek gerekir.
1.Güvenli bağlantıların (Multi-Protocol, Named Pipes veya TCP/IP socketleri) desteklediği protocollerin doğruluğunu kanıtlamak
2.SQL Server�ın login güvenlik modu�nu ayarlamak için, SQL Server Enterprise Manager�I kullanmak.
3.Güvenlik seçeneğinin aktif olabilmesi için dur ve MSSQLServer servisi yeniden başlat.
4.Güvenli bağlantılar üzerinde SQL Server�a erişimi olan kullanıcılar ve WinNT grupları yaratmak. WinNT gruplarını ve kullanıcılarını yönetme iznine sahip değilsen, WinNT administrator bu görevi senin için yapar.
5.WinNT gruplarına ve kullanıcılarına, SQL Server�a erişim izni vermek için SQL Server Enterprise Manager�I kullanmak.
6.Güvenli bağlantılar üzerinden bağlanamayan bütün kullanıcılar için server�a erişim izni vermek. Bir login ID ve şifre yarat ve herbir kullanıcı için geçerli bir lisan belirle.
Login Accountları Yaratma
WinNT kullanıcılarından veya gruplarından login account�lar yaratılabilir veya yeni SQL Server login account�lar yaratılabilir. Ayrıca default login account�lardan biri de kullanılabilir.
Login ID, SQL Server tarafından bilinen bir kullanıcı ismidir. Login IDler ayrıca loginler olarak söz edilirler.
SQL Servera log olmak için, bir kullanıcı, geçerli login ID ve şifre sağlamalı.
Login accountlar master..syslogins sistem tablosunda tutulur. Bir login SQL Servera eklendiği zaman bu geçerli bir veritabanını görevlendirir. Default veritabanını login account�a verme, veritabanında bir kullanıcı accountu yaratmaz. Kullanıcı işlemleri için default bir context ayarlar. Kullanıcı account, login için yaratılmadıkça, (eğer varsa) guest kullanıcı accountu kullanılarak veritabanına erişebilir.
SQL Servera WinNT LoginI Ekleme
SQL Server Enterprise Manager veya sp_grantlogin sistem stored procedure�I, WinNT kullanıcısının veya grup accountunun SQL Servera bağlanmasına izin verir. Sadece güvenlik veya sistem administrator�I sp_grantlogin�I çalıştırabilir.
Syntax Sp_grantlogin {�login�}
Login parametresi, eklenecek olan WinNT kullanıcı veya grup ismidir. WinNT kullanıcı veya grubu, bir WinNt domain ismi ile sınırlı olmalı. Kullanıcı veya grup ismi 128 karakter ile sınırlıdır.
SQL Server�a WinNT loginleri eklemek için, aşağıdaki adımlar göz önüne alınır.
1.SQL Server, bir WinNT grubu için tek bir login�e sahip olmasından dolayı, WinNT grup üyeleri değiştiği zaman SQL Server�a hiç bir değişiklik kabul edilmez. Bu durum orphaned object�leri engeller. (SQL Server�da bulunmayan kullanıcılara ait olan object�ler)
2.Çıkarılan WinNT grup veya kullanıcısı, SQL Serverdan çıkarılamaz. Bu orphaned object�lerin oluşumunu engeller.
WinNT grup veya kullanıcısı çıkarılacağı zaman, network erişimini engelleyecek şekilde ilk olarak WinNT�den çıkarılması gerekir. Daha sonra SQL Server�dan çıkarılmalı.
3.Tüm grup üyeleri SQL Server�a bağlanırsa, bir WinNT grup accountu için bir login account eklenir.
4.Eğer kullanıcı, izni onaylanmış bir grubun üyesi değilse, WinNT kullanıcı accountu için bir login accountu eklenir.
5.Kullanıcılar, WinNT gruplarının üyesi olarak, SQL Servera log olsa bile, SQl Server hala kullanıcıların kimliklerini (tanımlarını) bilir. USER_NAME fonksiyonu, WinNT grubunun üyesi olan kullanıcıların kullanıcı domainini ve login ismini döndürür.

Bir SQL Server Login Ekleme
SQL Serverda, veritabanı kullanıcı ismi, kullanıcının veritabanına erişmesi için, login ID olarak belirlenen bir isimdir. Bir kullanıcının işlevi, kullanıcı isimlerine verilen izinlere bağlıdır.
WinNT de, bir kullanıcı ismi, WinNT bilgisayarı veya domain tarafından bilinen bir isimdir. Bir kullanıcının, domain veya bilgisayara girebilmesi için, kullanıcı ismine ve şifreye sahip olması gerekir. Kullanıcının işlevi, WinNT haklarına ve o kullanıcı için onaylanan izinlere ve üyesi olduğu WinNT grupalarına bağlıdır.
SQL Server login�I yaratmak için sp_addlogin sistem stored procedureI veya SQL Server Enterprise Manager kullanılır. Bunu, sadece sistem veya güvenlik adminstratorI çalıştırabilir.
Syntax sp_addlogin {�login�} [,�password� [,�database�]]
sp_addlogin
, master veritabanının, syslogins tablosuna bir kayıt ekler. sp_addlogin çalıştırıldıktan sonra, kullanıcı, bu account�la SQL Server�a log olabilir. Kullanıcılar şifrelerini sp_password kullanarak değiştirebiliyorlar.
SQL Server login�lerive şifreleri 128 karaktere kadar olabilir ve bu karakterler büyük harfler, semboller, rakamlar içerebilir. Fakat login�ler aşağıdakileri içermez:
·Backslash karakterini
·Varolan bir login account�u - sa gibi
·Boşuk karakterini
Sistem administratorları, kullanıcının şifresini, eski şifre yerine NULL koyarak değiştirebilir.
Default Login Account�lar
SQL Server iki default login account�a sahip. Bunlar sa, BULTIN\Administrators:
Sa
SQL Server üzerindeki ve bütün veritabanlarındaki tüm haklara sahip olan özel bir logindir. (Sistem administrator). Sa, temel uygulamalardan bağımsız olan yönetimsel ve işlemsel fonksiyonlardan sorumludur.
SQL Server�I yönetme, SQL Server�I kurma, server�ları ve client�ları konfigüre etme, kullanılan diske alanını, belleği ve bağlantıları denetleme ve yönetme, aygıtları ve veritabanlarını yaratma, SQL Server kullanıcılarını yetkilendirme ve izinlerini onaylama, veri transferi yapma, veritabanlarını yedekleme ve açma, kopyalamayı tamamlama, SQL Server performansını denetleme, sistem problemlerini teşhis etme işlemlerini yapabilir. Ayrıca sa, SQL Server�da varolan veri hakkında, uygulama tasarımcısına (application designer) tavsiye verir.
Sa, SQL Server sistem yöneticisinin kontrol etmesine izin vermediği koruma sisteminin haricinde işletir. Sa, ayrıca veritabanı sahibi olarak düşünülür. Sa şifresi bilinirse, sisteme onun hakları ile girilebilir.
Builtin/Administrators
Tüm WinNT yöneticileri için, default login account olarak sağlanır. SQL Server üzerindeki ve bütün veritabanlarındaki bütün haklara sahiptir.
Kullanıcılara ve Rollere Login�ler Belirleme
SQl Server�a loginler ekledikten sonra, bunlar, kullanıcıların erişmek istedikleri veritabanlarındaki, kullanıcı account�lara ve rollere map edilir.
Bir veritabanındaki sysusers sistem tablosu, herbir WinNT kullanıcısı, WinNT grubu, SQL Server kullanıcısı veya rolü için bir row içerir. İzinler, sysusers tablosundaki loginlere uygulanır ve sysprotects tablosunda tutulur.
Örneğin; WinNT payroll grubunun üyesinin northwind veritabanına erişimi onaylanır. Maria SQL Server� bağlandıktan sonra aşağıdakilere sahip olur:
·Geçerli bir bağlantıya sahiptir; çünkü WinNT kullanıcı account�u, WinNT payroll grubunun içindedir.
·Northwind veritabanındaki hiçbir izne sahip değildir. Sadece payroll grubu izinlerine sahiptir.
Kullanıcı Accountlara Loginler Belirleme
Bir veritabanına erişmek için, bir login ya belirlenmiş kullanıcı accountunu ya da default kullanıcı account�unu kullanır.
Kullanıcı Accountu Ekleme
Bir kullanıcı accountu eklemek için sp_grantdbaccess sistem stored procedureu veya SQL Server Enterprise Manager çalıştırılmalı. Sadece dbo ve database access administratorlar çalıştırabilir.
Default Kullanıcı Accountlar
Default kullanıcı account�lar, ikiye ayrılır: dbo ve guest olarak.
DBO Account
Sa login ve sysadmin rol üyeleri, tüm veritabanları içerisindeki özel kullanıcı account�una map edilir. Bu dbo olarak adlandırılır. Sistem administrator�ın yarattığı nesneler otomatik olarak dbo�ya bağlanır. Dbo kullanıcısı kaldırılamaz. Database owner (DBO) veritabanı yaratıcısıdır. Sadece bir DBO vardır. DBO veritabanı içindeki bütün ayrıcalıklara sahiptir ve diğer kullanıcılara erişim ve yetenek sağlar.
Kullanıcı, kendi veritabanında, DBO olarak tanınır. Başka veritabanlarında DBO, kendi veritabanı kullanıcı ismi ile bilinir.
DBO özelliği, farklı kullanıcıya verilebilir. Diğer login ID�ler DBO�ya alias olabilmelerine rağmen, sadece bir login ID, DBO olabilir.
Guest User Account


Guest User Account, kullanıcı account�u olmadan loginlerin veritabanına erişmesine izin verir. Aşağıdaki her iki durumla da karşılaşıldığında, loginler guest user kimliğini üstlenir.

qLoginin, SQL Server�a erişimi var ama kendi user account�u yoluyla izni yok.
qVeritabanı bir guest user account içerir.
Master ve tempdb veritabanları hariç herhangi bir veritabanına guest user eklenebilir ve veritabanından kaldırılabilir.
Eğer guest user, başka user account�uysa, izinler guest user�a uygulanır.
Rollere Loginler Belirleme

Roller, kullanıcıları izinlerin uygulandığı tek parçalar içinde birleştirmektir.
SQL server , çok kullanılan administrative fonksiyonlar için predefined server ve veritebenı rolleri sağlar. Böylece seçilmiş administrative izinler belirli kullanıcılara kolayca verilebilir.
Organizasyonunuzdaki işçilerin yaptıkları işleri temsil etmek için kendi veritabanı rollerinizi yaratabilirsiniz. Onları rol üyesi olarak basitçe ekleyebilir ve kaldırabilirsiniz. İşçiler , Çalışmaya başladıklarında veya çalışma ortamını terk ettiklerinde , izinler tekrar tekrar onaylanmaz ve iptal edilmez. Pozisyon değişirse , rol için izinlerin değiştirilmesi çok kolaydır. Böylece tüm rol üyeleri içinde otomatik olarak değişirler.
Fixed Server Roles

Fixed Server Roller , server seviyesindeki administrative ayrıcalıkları sağlar. Bunlar , server seviyesindeki kullanıcı veritabanlarına bağlı olmadan yönetilirler , ve master syslogins sistem tablosunda tutulurlar.

Fixed Role Bir Login Account Belirleme
Fixed Server üyesi olarak bir login account eklemek için SSEM veya sp_addsrurolemember kullanılır.
Syntax sp_addsrurolemember login , role
Server Rol�e bir login eklendiği zaman , login�in rol üyesi olduğunu göstermek için sysloins tablosundaki uygun row güncellenir , ve server rol�e bağlı izinlere sahip olur.
Fixed Server Rol�e login account�lar belirlemek için aşağıdaki adımları gözönüne alalım:
·Fixed server Roller eklenemez , değiştirilemez veya kaldırılamaz.
·Herhangi bir fixed server rol üyesi , role başka login account�lar ekleyebilir.
·Sp_addsrvrolemember , kullanıcı tanımlı bir işlemle çalıştırılamaz.
ÖRNEK :
Sysadmin server rolüne , Win NT Kullanıcısı Corporote\Elenos eklemek için:
EXEC sp_addsrvrolemember �Corporote\Elenas� , sysadmin
Ayrıca , sp_dropsrvrolemember kullanılarak fixed server role�den bir üye kaldırılabilir.
Fixed Database Rolleri


Fixed database rol�leri veritabanı seviyesindeki administrative ayrıcalıklarını sağlar. Fixed database rolleri , herbir veritabanındaki sysusers sistem tablosu içinde tutulur.
Public Rol
Public rol , veritabanı kullanıcılarına özel bir veritabanı rolüdür.
Public Rol
·Veritabanındaki kullanıcılar için tüm default izinleri denetler.
·Ona görev verecek kullanıcılara , gruplara veya rollere sahip değildir. Çünkü bunlar zaten ona bağlıdır.
·Master , msdb , tempdb , model ve tüm kullanıcı veritabanlarının içinde bulunur.
·Kaldırılamaz
Uygun izinler olmadan , bir kullanıcı SQL server�a bağlanabilir ama sadece sınırlandırılmış task�ları çalıştırabilir. İzinler olmadan , bir kullanıcı , public role verilmiş izinlere sahip olabilir ve aşağıdakileri yapabilir:
·PRINT ifadesi gibi , izine sahip olmayan statement�leri çalıştırma
·Sistem tablosu bilgilerini inceleyebilir ve master veritabanından ve kullanıcı veritabanından bilgi almak için belirli sistem stored procedure �leri çalıştırabilir.
·Guest access ile herhangi bir veritabanına erişebilir.
Fixed Database Rol�e Güvenlik Account ları Belirleme

Fixed veritabanı rolünün üyesine bir güvenlik account u eklemek için SSEM veya sp_addrolemember kullanılır. Sadece db_owner rolünün üyeleri , sp_addrolemember�I çalıştırabilir. Role owner�lar kendi rollerine üye eklemek için sp_addrolememberI çalıştırır.
Syntax sp_addrolemember role , security_account

Fixed role güvenlik accuntları belirlenirken aşağıdaki adımlar göz önüne alınır:
·Fixed database roller , eklenemez , değiştirilemez veya kaldırılamaz.
·Herhangi bir fixed database rolünün üyesi , olarak başka login accountlar ekleyebilir.
Ayrıca bir rol�den, güvenlik accountunu kaldırmak için sp_droprolemember kullanılır.
Kullanıcı Tanımlı Veritabanı Rolleri
Kullanıcı Tanımlı veritabanı rolleri yaratma, ortak izinlere sahip kullanıcı gruplarını yaratmaya olanak sağlar. Bir veritabanına kullanıcı tanımlı rol ekleme aşağıdaki nedenlere bağlıdır:
qEğer WinNT kullanıcı account�larını yönetme iznine sahip değilsek
qİnsanların SQL Server�daki belirlenmiş aktiviteleri çalıştırmaya ihtiyaçları olduğu zaman ve uygun olmayan WinNT grubu varsa, kullanıcı tanımlı rol eklenir.
Örneğin bir şirket farklı departmanlardan çalışanları içeren yeni bir komite oluşturabilir. Bu çalışanlar veritabanındaki özel bir proje tablosuna erişime ihtiyaç duyabilirler. Bunun için kullanıcı tanımlı rol tanımlanabilir ve sonra role özel WinNT kullanıcı account�u eklenebilir. İzinler uygulamaya konduğu zaman roldeki özel kullanıcı accountları tablo erişimine ulaşır.
Kullanıcı Tanımlı Veritabanı Rolü Yaratma
SQL Server Enterprise Manager veya sp_addrole sistem stored procedure ile yeni bir veritabanı rolü yaratılabilir. Herbir kullanıcı tanımlı rol için, geçerli veritabanının sysusers tablosuna bir giriş eklenir. Sadece security admin ve dbo üyeleri sp_addrole sistem stored procedure�ı çalıştırabilir.
Syntax sp_addrole role, owner
Veri tabanı rolü yaratmak için aşağıdaki adımları inceleyelim:
#Sp_addrole sistem stored procedure, geçerli veritabanına yeni bir SQL Server rolü ekler
#Role izinler uygulandığı zaman, sanki izin üyenin kendi account�una uygulanmış gibi, herbir rol üyesi izinleri elde eder.
Örnek: dbo kullanıcısı tarafından, Managers isimli yeni bir rol eklemek için aşağıdaki ifade çalıştırılmalı.
EXEC sp_addrole Managers, dbo
Kullanıcı Tanımlı Veritabanı Rolüne Bir Güvenlik Accountu Belirleme
Bir rol eklendikten sonra, SQL Server Enterprise Manager veya sp_addrolemember sistem stored procedure kullanılarak, rol üyesi olarak kullanıcılar ve roller eklenbilir. Sadece db_owner, fixed database rol üyeleri, fixed database rollerine üye eklemek için sp_addrolemember sistem stored procedure�I çalıştırabilir.
Syntax sp_addrolemember role, security_account
Örnek:
Managers rolüne, Alicia kullanıcısını eklemek için, aşağıdaki ifade çalıştırılır:
EXEC sp_addrolemember Managers, Alicia
Fixed database rol�e güvenlik account�ları belirlendiği zaman aşağıdaki adımlar göz önüne alınır.
·sp_addrolemember ile role bir güvenlik account�u eklendiği zaman, role uygulanan izinler yeni üyeye de uygulanır.
·Aynı security_account farklı rol üyelerine verilemez.
·Nesting roller sistem performansını düşürür.
Veritabanı rollerinin yönetimi için aşağıdaki ek stored procedure�lar kullanılabilir.
Kullanıcılara ve Rollere İzinler Belirlemek
Kullanıcı account�lara ve rollere loginler belirlendikten sonra, veritabanı güvenliğini yönetmek için izinler belirlenmeli.
İzinler, kullanıcıların hangi tip veritabanı nesnelerini kullanabileceğini ve bunları ne şekilde kullanabileceğini belirlerler. Kullanıcılara veya gruplara verilen izinler çok önemlidir.İzin Tipleri
SQL Server veritabanı güvenliğini yürütmek için izinleri kullanır. SQL Server, Transact-SQL ifadelerinin, view�ların, ve stored procedure�lerin kullanılması için yetki verir. İzinler herbir kullanıcının durumuna bağlı olarak (sa, dbo, database object owner olarak).
SQL Server�da 3 tip izin var. statement, object ve predefined.

Statement İzinleri
Belirli Transact-SQL ifadeleri ile ilgili ayrıcalıkları kullanıcılara verir. Veritabanı veya item yaratma ile ilgili aktiviteler statement izinler olarak adlandırılır. Sysadmin, dbo, securityadmin rolleri statement izinleri verebilir. Statement izinleri, belirli Transaction-SQL ifadelerini işlemek için ayrıcalık sağlar. Statement izinleri, nesneye özgü değildir. Bunlar sysadmin, db_owner, veya db_securityadmin tarafından onaylanırlar.
Statement izinleri, şu ifadeleri uygular: CREATE DATABASE, CREATE DEFAULT, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW, DUMP DATABASE, ve DUMP TRANSACTION. Ayrıca komut izinleri olarak da adlandırılırlar.
Object İzinleri
Verilerle çalışma veya procedure�leri çalıştırma izinleri verir. Belirli veritabanı nesneleri üzerindeki belirli ifadelerin kullanımını denetler. Bunlar DBO tarafından onaylanır ve iptal edilirler.
Tablo ve View İzinleri
SELECT, INSERT, UPDATE, DELETE ifadelerini kullanmaya izin verir.
Column İzinleri
SELECT, UPDATE ve REFERENCES izinleri belirli kolonlara uygulanabilir. Bir kullanıcı FOREIGN KEY constraint ile bir tabloya bir satır eklediği zaman veya FOREIGN KEY constraint ile bir sütundaki veri değiştirildiği zaman, SQL Server FOREIGN KEY constraint�teki referans edilmiş veri ile sütun içindeki veriyi onaylar. Eğer kullanıcının referans edilmiş sütun veya tabloda SELECT izinleri yoksa kolon için REFERENCES izinleri kullanıcıya verilmiş olmalı.
Stored Procedure İzinleri
EXECUTE izni, stored procedure için sadece nesne iznidir.
Predefined İzinler
Sadece fixed rol üyeleri veya db_owner�larbelirli aktiviteleri yerine getirebilirler. Bu aktiviteleri yerine getiren izinler, predefined izinler olarak adlandırılırlar.
Object Owner İzinleri
Kendi yarattıkları nesnelerin, aktivitelerini yerine getirmeye izinli olurlar. Table owner olan bir kullanıcı, tablo ile ilgili bütün aktiviteleri yerine getirebilir. Bu tablo ile çalışan kullanıcılara, ekleme, silme, değiştirme, tablo tanımlama izinleri verir.
Fixed Role İzinleri
Fixed roller yönetimsel izinlere sahiptirler. Örneğin; sysadmin rolünün bir üyesi olarak eklenen kullanıcı, SQL Server kurulumundaki herhangi bir şeyi yapmak veya okumak için bütün izinlere sahiptir. Sysadmin rolü değiştirilemez ve başka bir user account�a verilemez.
Granting, Denying, Revoking (Onaylama, Engelleme, İptal Etme) İzinleri
Rol veya kullanıcı için izinler 3 durumludur. Bunlar onaylama, engelleme, iptal etmedir. İzinler kullanıcıya onaylanmazsa veya engellenmezse, sanki iptal edilmiş gibi olur.Tüm onaylanmış izinler kümülatiftir. Hareketler onaylandığı zaman kullanıcılar tarafından icra edilebilirler.
DENY ifadesi kullanıcıların hareketleri icra etmesini önlerler. İzinlerin kullanıcılara doğrudan onaylanıp onaylanmadığını önemser.
Aşağıdakiler gerçekleşirse, kullanıcılar bir hareketi yapmaya izinli olurlar:
qKullanıcılar izinleri onaylarlarsa ya da bağlı oldukları rol izinleri onaylarsa
qİzin kullanıcıya yada kullanıcının bağlı olduğu rollerden birine engellenmezse
Erişime Müsaade Ederek İzinleri Onaylama
GRANT SELECT
ON products
TO order

GRANT INSERT, UPDATE
ON products
TO Eva, Ivan, David
İzinler, veri ile çalışmaya veya aktiviteleri çalıştırmaya izin vermek için security account�lara uygulanır.
İzinler onaylanırken aşağıdaki adımlar göz önüne alınmalı.
ØSadece, geçerli veritabanında izinler onaylanabilir.
ØSysadmin, db_owner ve db_securityadmin rollerine ve object owner�lara izinleri onaylama hakkı verilmiştir.
İzinler SQL Server Enterprise Manager veya GRANT ifadesi ile onaylanır.
Aşağıda bir örnek görülmektedir.
USE northwind
GO

GRANT SELECT
ON products
TO order
GO

GRANT INSERT, UPDATE, DELETE
ON products
TO Eva, Ivan, David
GO
Yukarıdaki örnekte; Order isimli role SELECT izni verilmiş. Bundan sonra ek izinler birkaç kullanıcıya verilmiş (Eva, Ivan, David). (Zaten insert, update izinlerine sahipler. Select iznine sahip değiller. Ayrıca select iznine de order rolü tarafından sahip olurlar.) Products tablosu üzerindeki bütün izinlere sahipler; çünkü onlar ayrıca order rolünün üyesiler.
Erişimi Engelleyerek İzinleri Engelleme
DENY SELECT, INSERT, UPDATE
ON products
TO Eva, Ivan, David
Belirli kullanıcı veya rollerin izinleri sınırlanmak istenebilir. Bir security account�a izinleri engelleme:
vKullanıcı veya role önceden onaylanmış izinleri kaldırır
vBaşka rolden miras alınmış (inherit) izinlerin aktifliğini bozar
vGelecekte Kullanıcı veya rolün herhangi bir rolden izinleri miras almayacağından emin olur
İzinler engellendiği zaman aşağıdaki adımlar göz önüne alınmalı:
·Sadece geçerli veritabanındaki iznler engellenebilir.
·Sysadmin, db_owner ve db_securityadmin rol üyelerine ve object owner�lara izinleri engelleme hakkı verilmiştir.
İzinleri engellemek için, SQL Server Enterprise Manager veya DENY ifadesi kullanılabilir.
USE northwind
GO

GRANT SELECT
ON products
TO order
GO

DENY SELECT, INSERT, UPDATE
ON products
TO Eva, Ivan, David
Yukarıdaki örnekte; Order isimli role SELECT izni verilmiş. Bundan sonra rol üyesi birkaç kullanıcının (Eva, Ivan, David) products tablosuna erişimleri engellenmiş.
Onaylanmış ve Engellenmiş İzinleri İptal Etme
REVOKE SELECT, INSERT, UPDATE
ON products
FROM Eva, Ivan
İptal etme ile onaylanmış veya engellenmiş izinler etkisiz hale getirilebilir. İptal Etme, iki hareket içinde benzerdir. Farklılık bir izni iptal etme, onaylanmış izinleri kaldırırken, kullanıcının veya rolün, izinleri miras almasına (inherit) engel olamaz. Ayrıca DENY ifadesi iptal edilerek, önceki engellenmiş izinler de kaldırılabilir. İzinler iptal edilirken aşağıdaki adımlar göz öüne alınmalı:
·Sadece geçerli veritabanındaki iznler iptal edilebilir.
·Bir izni iptal etme, onaylanmış ve engellenmiş izinler tarafından yaratılan sysprotects sistem tablosuna girişleri kaldırır.
·Sysadmin, db_owner ve db_securityadmin rol üyelerine ve object owner�lara izinleri engelleme hakkı verilmiştir.
Önceki onaylanmış ve engellenmiş izinleri iptal etmek için, SQL Server Enterprise Manager veya REVOKE ifadesi kullanılabilir.
USE northwind
REVOKE SELECT, INSERT, UPDATE
ON products
FROM Eva, Ivan
Yukarıdaki örnek çoklu kullanıcılardan çoklu statement (Select, insert, update gibi) izinleri iptal eder.
Güvenliği Planlama
Güvenlik planlanırken 5 ana madde göz önüne alınmalı.
1.Geçerli Login Kullanıcıları Tanımlamak
Sa veya BUILTIN\Administrators Login�inin kullanılıp kullanılmayacağı veya nasıl kullanılacağı belirlenmeli.
Sa Login
Sa bir built- in administrator login olmasına rağmen rutin olarak kullanılmaz. Sistem yöneticisi sysadmin fixed server rol üyesi olmalı ve kendi loginleriyle log olmalı.
Not: SQL Server kurulduğu zaman, sa loginin bir şifresi bulunmaz. Sa loginle, SQL Server�a, yetkisiz kişilerin erişimini engellemek için şifrenin hemen değiştirilmesi önerilir.

BUILTIN\Administrators Login
BUILTIN\Administrators WinNT yöneticileri için sysadmin rolünün bir üyesidir.
Kendi organizasyonunda SQL Server�a tam erişim sağlamak için WinNT yöneticilerinin tamamını istemezsen, BUILTIN\Administrators logini kaldırabilirsin veya sysadmin rolünden kaldırabilirsin. İstenirse login eski yerine konabilir ve izinleri belirlenebilir.
2.Guest User Account Fonksiyonlarını Belirlemek
Guest User Account veritabanına kullanıcı account�u olmadan erişen bir logine izin verir. Veritabanının bir Guest User Account�unun olup olmayacağına karar vermeli. Eğer olacaksa veritabanlarında hangi izinlere sahip olacağı belirlenmeli.
3.Public Rol İzinlerini Belirlemek
Public rol, özel bir veritabanı rolüdür. Her bir veritabanında kullanıcının sahip olduğu izinleri kontrol eder. Herbir veritabanında public rol�ün sahip olacağı izinlere karar verilmeli. Başta public rolün izinleri yoktur.
4.Loginleri Kullanıcı Account�lara ve Rollere Map Etmek
Veritabanına login�ler belirlenmeden önce, bir kullanıcı account�un veya bir rolün kullanılıp kullanılmayacağını belirlemek gerekir. Genelde; aşağıdakiler önerilir.
qEğer WinNT grup üyelerilerinden sadece biri görevleri icra edebilirse, grup için kullanıcı account�u yaratabilir ve bunlar için izinler kullanabilirler.
qEğer birden fazla login görevleri icra edebilirse, bir rol yaratabilir ve rol�e login belirleyebilirler.
qEğer bir login ortak yönetimsel görevleri icra ederse, veritabanı rolüne veya fixed server�a login map edilir.
5.DBO ile Nesneler Yaratmak
Hangi kullanıcıların veya rollerin nesneler yaratabileceğini belirlemek çok önemlidir. Sadece sysadmin, db_owner ve db_ddladmin fixed veritabanı rolleri, veritabanı nesneleri yaratabilirler. Bütün nesneler object owner olarak, dbo kullanıcısıyla tanımlanır. Dbo ile nesne tanımlama, kullanıcların owner ismi içermeyen nesnelerden söz etmesine olanak sağlar. Aksi taktirde nesne, object owner olarak kullanıcı ismiyle yaratılır. Sysadmin rolden yaratılan herhangi bir rol dbo�ya sahiptir.
Nesne Owner�ları Değiştirme
Veritabanı nesneleri, tablolar, indexler, view�lar, default�lar, trigger�lar, rule�lar ve procedure�lerdir. Veritabanı nesnesi yaratan kullanıcı, database object owner olarak adlandırılır ve otomatik olarak nesneler üzerindeki bütün haklara sahiptir. Nesneyi kullanmaları için diğer kullanıcılara izin verebilirler. Database object sahipliği devredilemez.
Eğer nesneler dbo ile yaratılmamışsa, sp_changeobjectowner sistem procedure ile object owner�lar değiştirilebilir.
Syntax sp_changeobjectowner object, owner
Dbo owner�ları değiştirmek için, aşağıdaki adımlar göz önüne alınabilir.
¨Sadece db_owner ve db_ddladmin fixed veritabanı rolleri ve securityadmin server rol üyeleri nesne owner�ları değiştirebilirler.
¨Bir veritabanının owner�ını değiştirme, yeni ownership bilgisiyle güncellenen nesneyi referans eden scriptleri ve batch file�ları gerektirir. SQL Server bu güncellemeyi otomatik olarak icra edemez.
Application Güvenliğini Yönetme
İzinler ve Login authentication kullanılarak, veritabanına erişim güvence altına alınabilir. Method olarak stored procedure�lar, view�lar ve application roller kullanılabilir.
View�lar ve Stored Procedurelarla Güvenliği Yönetme
Viewlar ve stored Procedurelar bir uygulama için yaratılmış olan SQL Server nesneleriyle birlikte güvenliği kurmaya izin verir.
View�lar ve stored Procedurelar, ilgili oldukları nesneler üzerindeki izinler yerine sadece Viewlar ve stored Procedure�lar üzerindeki izinleri yönetme imkan sağlar. Ayrıca kullanıcıları, tablo değişikliklerine karşı korur.
Güvenliği basitleştirmek için viewları ve stored procedureları kullanmak:
üUnderlying tablolar üzerindeki izinler olmadan, bir view üzerindeki izinleri onaylar
Örneğin; bir tablodaki doğum tarihi gizli olsun. Kullanıcıların erişimleri engellensin. Ayrıca kullanıcılar tablodaki diğer kolonlara erişebilmeliler. Doğum tarihi hariç diğer kolonları içeren bir view tanımlanır. View�a select izni vererek kullanıcıların gizli olmayan kolonlara erişimleri sağlanır.
üDeğiştirilmiş tabloya erişim onayı vermeden stored procedure�I çalıştırma izinlerini onaylar.
Örneğin eski veri, arşiv tablosuna kopyalanır ve daha sonra primary tablosundan silinir. Kullanıcılara, doğrudan primary tablosundan bir row silme veya bunları primary tablosundan silmeden,arşiv tablosuna bir row ekleme izni verilmez. Bir stored procedure yaratılarak her iki aktivite de birlikte çalıştırılabilir. Daha sonra kullanıcılara stored procedureları çalıştırma izni verilir.
Aşağıdaki örnek bir view yaratır. Employee tablosundan employee bilgilerini yeniden alır ama birthdate ve homephone gibi verileri hesaba katmaz.
CREATE VIEW employee_view AS
SELECT FirstName, LastName, Title, Extension
FROM employees
Application Rollerini Kullanarak Client Application Güvenliğini Yönetme
Uygulama rolleri, özel bir uygulama için güvenliği yürütmeye izin verir. Bunlar dolaylı yollardan veriye erişim için kullanıcıları sınırlar.
Örneğin; order entry clerklerin, sadece Order entry uygulamasını kullanırken products, orders, customer tablolarını güncelleyebilmesi istenebilir. Microsoft Excel gibi başka bir üründeki tablolara erişen clerkler istenmeyebilir. Bu durumda; order entry uygulaması için bir uygulama rolü yaratılabilir.
Uygulama rolleri diğer rollerden farklıdır. Aşağıda diğer rollerle, uygulama rolleri arasındaki farklılıklar
listelenmiştir.
·Application rollerin, kullanıcı uygulamayı çalıştırdığı zaman kullanıcılar için aktifleştirilen, üyeleri yoktur. Bu, uygulama kullanıcılarına özel haklar verir.
·Uygulama rolleri, aktif olabilmek için bir şifre isterler. Application rol şifresinin güvenliğini korumak için basit encrypt anahtarlar kullanılabilir. Ayrıca extended stored procedure kullanılarak şifre server�a yerleştirilebilir.
·Aktif uygulama rolü, kullanıcının veritabanındaki diğer izinlerini umursamaz. SQL Server kullanıcı account veya rollerin sahip olduğu izinleri göz önüne almaz.
Uygulama Rolleri Yaratma
EXEC sp_addapprole SalesApp, hg_7532LR
GRANT SELECT
ON products
TO SalesApp
Application roller yaratılabilir ve bunlara izinler belirlenebilir.
Uygulama Rolleri Yaratma
Yeni bir uygulama rolü yaratmak için, SQL Server Enterprise Manager veya sp_addapprole stored procedure kullanılır. Sadece db_owner, db_securityadmin, ve sysadmin rollerinin üyeleri sp_addapprole stored procedure�ı çalıştırabilirler.
Syntax sp_addapprole role, password
Yeni uygulama rolleri yaratmak için aşağıdaki adımlara dikkat etmek gerekir.
§sp_addapprole sistem stored procedure�ü yeni rol için, bir güvenlik account�u ekler. Bu durum, sysusers tablosuna bir kayıt eklemeyle yapılır.
§Password değeri bir şifredir. Rolü aktif yapmak için istenir ve encrypt edilmiş forma dönüştürülür.
Aşağıdaki örnek SalesApp isimli ve şifresi hg_7532LR olan yeni bir uygulama rolü ekler.
EXEC sp_addapprole SalesApp, hg_7532LR

Application Rol İzinlerini Yönetme
SQL Server Enterprise Manager veya GRANT, DENY, ve REVOKE ifadeleri ile uygulama rol izinleri yönetilir.
Aşağıdaki örnek product tablosundan seçmek için SalesApp uygulama rolüne izinler verir.
GRANT SELECT
ON products
TO SalesApp
Uygulama Rollerini Aktif Hale Getirmek
Bir client, SQL Server�a herhangi bir login account�u ile bağlandıktan sonra, client, application rolüyle birleşmiş izinleri aktif hale getirmek için, sp_setapprole sistem stored procedure�ını çalıştırır. sp_setapprole sadece Transact-SQL ifadeleriyle çalıştırılabilir.
Syntax sp_setapprole {�name�, �password �}
Uygulama Rollerini aktif hale getirmek için aşağıdaki adımlara dikkat edilir.
vGeçerli uygulama, şifre sağlamalı.
vEğer kullanıcılar veritabanını değiştirirlerse, izinlere dayanan aktiviteleri icra etme hakkına sahip olurlar.
vBir uygulama rolü sp_setapprole ile aktifleştirildikten sonra, kullanıcılar SQL Server�dan kopana kadar rol aktif haldedir.
Aşağıdaki örnek; adı SalesAppRole ile şifresi AsDeFXX olan bir uygulama rolünü aktif hale getirir
Tavsiye Edilen Uygulamalar
Güvenlik tamamlanırken aşağıdaki tavsiyeler dikkate alınmalı:
i.Network ortamı sadece güvenli hale getirilmiş client bağlantılarını desteklerse, WinNT authentication modu kullanılır. Mixed Modu sadece güvenli olmayan clienlara bağlanmak için kullanılır.
ii.Sa login yerine sistem yöneticileri (sysadmin) rolünü kullan. Sa login, WinNT authentication kullanılsa bile SQL Servera local olarak log olmak için kullanılır. Bu, sysadmin roleden yanlışlıkla tüm kullanıcılar kaldırılırsa, yararlı olabilir.
iii.WinNT kullanıcıları veya grupları kaldırılırken, ilk olarak network erişimi engellenerek WinNT�den kaldırılır. Daha sonra SQL Serverdan kaldırılır.
iv.Bütün nesneler, kolayca erişilebilir olmaları için dbo kullanıcılarıyla yaratılırlar.
Güvenliği sağlamak için Stored procedureleri ve viewları kullanma, column-level güvenliğinden çok daha hızlı olabilir.
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Inetpub\vhosts\spygrup.org\httpdocs\ajax.php on line 330
odin Ofline   Alıntı ile Cevapla
Alt 26-11-2006, 11:12   #5
 
mehmetik - ait Kullanıcı Resmi (Avatar)
 

Teşekkürler yararlı bilgileriniz için
mehmetik Ofline   Alıntı ile Cevapla
Cevapla

Bu konuyu arkadaşlarınızla paylaşın


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık




Türkiye`de Saat: 06:14 .

Powered by vBulletin® Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.2

Sitemiz CSS Standartlarına uygundur. Sitemiz XHTML Standartlarına uygundur

Oracle DBA | Kadife | Oracle Danışmanlık



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580