SQL Server 2005'te veritabanı gizleme

8 Mart 2009 22:41

SQL Server 2005 kurduğumuz sunucu üzerinde kullanım amacına göre zaman zaman birden çok veritabanı yeralabilmektedir. Bu veritabanları aynı iş ile ilgili olup aynı kişiler tarafından kullanılmakla beraber özellikle hosting şirketlerinde olduğu gibi tamamen ilgisiz ve farklı kişilere ait olabilmektedir. Böyle durumlarda SQL Server üzerinde yeralan veritabanlarının hem uzun olduğu için kullanıcı kendi veritabanını bulmakta zorlanabilmekte hem de tüm veritabanlarının isimleri tüm kullanıcılar tarafından görülebilmektedir. Tüm bunlardan kurtulmak ve kullanıcıya SQL Server üzerinde yeralan tüm veritabanlarını göstermeden sadece kendisine ait veritaban(lar)ını göstermek mümkün müdür? Evet, mümkün :)

SQL Server 2005 kurulduğunda varsayılan olarak sunucu üzerinde yeralan tüm veritabanları listesi görüntülenebilir haldedir. (Şekil 1) Bunu sağlayan "public" isimli sunucu rolünün tüm veritabanlarını görme izninin olması ve bu rolün tüm kullanıcılara eklenmesidir.


Şekil 1. SQL Server Management Studio ile veritabanının bulunduğu sunucuya bağlanan kullanıcı sunucu üzerindeki tüm veritabanlarının listesini görebilir.

Kullanıcıların tüm veritabanlarını görmesi yukarıda da bahsettiğimiz gibi hem kendi veritabanlarını listeden bulmakta zorlanmalarına ve meraklı kullanıcıların meraklarının artmasına ve gereksiz bazı çabalar içine girmelerine sebep olabilmektedir. Bunları engellemek ve kullanıcının sadece kendisine ait veritaban(lar)ını görmesini sağlamak için aşağıdaki adımları uygulamamız gerekiyor :

1. SQL Server Management Studio'da File menüsünden New başlığı altındaki Query with Current Connection linkine veya sol üstteki New Query linkine tıklayarak yeni bir sorgu penceresi açıyoruz.
2. Sorgu penceresinde aşağıdaki komutları çalıştırarak public rolü için tüm veritabanlarını görüntüleme iznini kaldırıyoruz :
    USE master
    GO
    DENY VIEW any DATABASE TO public

3. Yine sorgu penceresinde her bir veritabanı için dbo rolünü ilgili kullanıcı olarak değiştiriyoruz :
    USE veritabani_adi
    GO
    EXEC sp_changedbowner kullanici_adi 
 
veritabani_adi yerine ilgili veritabanının adını, kullanici_adi yerine de o veritabanının kullanıcısının adını yazıyoruz.

İşlemler tamamlandığında, kullanıcı SQL Server Management Studio ile sunucuya bağlandığında Şekil 2'de gibi sadece kendisine ait veritaban(lar)ını görebilmektedir.


Şekil 2. Kullanıcı artık sadece kendisine ait veritaban(lar)ını görebiliyor

Not : Bu şekilde veritabanını sadece bir kullanıcı görebilmektedir. Birden fazla kullanıcısı olan veritabanlarında sadece dbo rolüne atanmış kullanıcı veritabanını görebilmektedir, diğer kullanıcılar SQL Server Management Studio ile bağlanamamakta ve veritabanını görememektedir.

SQL Server 2008'de bu işlem nasıl yapılıyor? Daha kolay bir yolu var mı? Başka bir yazıda bu soruların cevaplarını vermeye çalışacağım.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

SQL Server, SQL Server 2005
, , ,


SQL Server 2005 Driver for PHP

13 Ağustos 2008 20:26

Microsoft bir süredir üzerinde çalıştığı SQL Server 2005 Driver for PHP'nin final sürümünü yayınladı.

SQL Server 2005 Driver for PHP ile PHP yazılım geliştiricilerin ODBC'ye göre SQL Server'a daha kolay erişmesi ve  daha etkin kullanabilmesi hedefleniyor.

http://go.microsoft.com/fwlink/?LinkId=123470 adresinden indirilebilen driver'ın kaynak kodu da Codeplex'te yayınlandı. Buradan kaynak kod da indirilebilir.

SQL Server 2005 Driver for PHP ile SQL Server 2008 veritabanlarına da bağlanılabilir.

1 kişi tarafından 3.0 olarak değerlendirildi

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

PHP, PHP on Windows, SQL Server, SQL Server 2005, SQL Server 2008
, , ,