|
Ana Sayfa | Kayıt ol | Yardım | Ortak Alan | Ajanda | Bugünkü Mesajlar | XML | RSS | |
22-11-2006, 00:48 | #1 | ||
B J K Üyelik tarihi: Jan 2006
Mesajlar: 863
Tecrübe Puanı: 20 |
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. | ||
|
22-11-2006, 00:49 | #2 | ||
B J K Üyelik tarihi: Jan 2006
Mesajlar: 863
Tecrübe Puanı: 20 | 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 | ||
22-11-2006, 00:49 | #3 | ||
B J K Üyelik tarihi: Jan 2006
Mesajlar: 863
Tecrübe Puanı: 20 | 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. | ||
22-11-2006, 00:50 | #4 | ||
B J K Üyelik tarihi: Jan 2006
Mesajlar: 863
Tecrübe Puanı: 20 | 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 | ||
Bu konuyu arkadaşlarınızla paylaşın |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |