none
SQL SERVER 2008 R2' de ip ile sınırlı erişim. RRS feed

  • Soru

  • Merhabalar;
    Sql Server 08r2 de veritabanı sunucuma sadece benim belirlediğim ip adreslerinin erişmesini istiyorum. Bunun dışında hesaplar 3. kişinin eline geçse bile kesinlikle veritabanıma erişemesin istiyorum.
    Bunu şuanda bütün antivirüsler hemen hemen yapmaktadır... Acaba herhangi bir 3. programa ihtiyaç duymadan sadece sql server ile yapabilmemiz mümkünmüdür?
    asd dsad
    19 Ekim 2010 Salı 08:34

Yanıtlar

  • Selam,

    Bu iş için LOGON TRIGGER kullanabilirsin. Bu Trigger ile CONNECTIONPROPERTY() sistem fonksiyonunu kullanarak gelen kullanıcının IP'sini filtreleyebilirsin.

    Bu fonksiyon hakkında daha fazla bilgi için: http://msdn.microsoft.com/en-us/library/bb895240.aspx

    Ayrıca istersen yine bir LOGON TRIGGER ile gelen kullanıcının SPID'sini @@SPID ile alıp, sys.dm_exec_connections'tan "client_net_address" alınanı göre sorgulayabilirsin ve sonuca göre kullanıcının girişini engelleyebilirsin.

    Örneğin:

    CREATE

     

    TRIGGER [IP_Filter]

    ON

     

    ALL SERVER

    FOR

     

    LOGON

    AS

    BEGIN

    IF

     

    NOT CONNECTIONPROPERTY('client_net_address') = '172.1.2.3'

    ROLLBACK

     

    ;

    GO


    Ekrem Önsoy - MCDBA, MCITP:DBA & DBD, MCSD.Net, SQL Server MVP
    • Yanıt Olarak İşaretleyen Serkan Bark 20 Ekim 2010 Çarşamba 11:18
    19 Ekim 2010 Salı 14:11

Tüm Yanıtlar

  • Selam,

    Bu iş için LOGON TRIGGER kullanabilirsin. Bu Trigger ile CONNECTIONPROPERTY() sistem fonksiyonunu kullanarak gelen kullanıcının IP'sini filtreleyebilirsin.

    Bu fonksiyon hakkında daha fazla bilgi için: http://msdn.microsoft.com/en-us/library/bb895240.aspx

    Ayrıca istersen yine bir LOGON TRIGGER ile gelen kullanıcının SPID'sini @@SPID ile alıp, sys.dm_exec_connections'tan "client_net_address" alınanı göre sorgulayabilirsin ve sonuca göre kullanıcının girişini engelleyebilirsin.

    Örneğin:

    CREATE

     

    TRIGGER [IP_Filter]

    ON

     

    ALL SERVER

    FOR

     

    LOGON

    AS

    BEGIN

    IF

     

    NOT CONNECTIONPROPERTY('client_net_address') = '172.1.2.3'

    ROLLBACK

     

    ;

    GO


    Ekrem Önsoy - MCDBA, MCITP:DBA & DBD, MCSD.Net, SQL Server MVP
    • Yanıt Olarak İşaretleyen Serkan Bark 20 Ekim 2010 Çarşamba 11:18
    19 Ekim 2010 Salı 14:11
  • Bunu 3rd party bir program kullanmak yerine Windows sunucunuzda hali hazirda kurulu bulunan Windows Firewall'u konfigure ederek gerceklestirebiliyor olmaniz lazim, ornegin sunucunuzun 1433 portu icin bir genel blok kurali olusturup izin vermek istediginiz istemcileri belirtebilirsiniz.

    Eger bunu illaki SQL server seviyesinde yapmak isterseniz, basit bir IP tablosu olusturup DDL Logon triggeri yaratip baglanan istemcinin listede olup olmadigini kontrol ettirip baglantisini bloklayabilirsiniz, benzer bir ornegini http://sql-articles.com/blogs/ip-address-blocking-or-restriction-in-sql-server/ adresinde gorebilirsiniz, ancak size tavsiyem SQL sunucunuza gereksiz yuk bindirmemek acisindan Windows Firewall kullanmanizdir.

    Diger opsiyonlar icin http://blogs.msdn.com/b/sql_protocols/archive/2006/04/10/572605.aspx adresinden faydalanabilirsiniz.

    Iyi calismalar
    Osman Shener

    • Yanıt Olarak Öneren Osman Shener 19 Ekim 2010 Salı 14:27
    19 Ekim 2010 Salı 14:16