Bu makalede mssql’den mssql’e linked server kullanarak bağlanmayı anlatacağım. Bağlanma türlerine değinmeye çalışacağım. Üçüncü bahsedeceğim bağlanma türü linked server security ekranında bulanan Not be made seçeneği olmuş olacaktır.
Not be made seçeneği, SQL Server’da bir linked server bağlantısının kimlik doğrulama yapılmaksızın kurulamayacağını belirtir. Bu seçenek genellikle bağlantının yapılması istenmediği veya kimlik doğrulama gereksiz olduğu durumlarda kullanılır. Eğer gerçek bağlantı ve kimlik doğrulama sağlanması gerekiyorsa, bu seçenek yerine “Be made using this security context” veya “Be made using the login’s current security context” gibi seçenekler tercih edilmelidir.
Not be made Kullanım Senaryosu:
- Bu genellikle hatalı yapılandırmalarda veya bağlantının yapılması gerekmeyen, fakat test amacıyla yapılandırılan linked server’lar için kullanılan bir seçenektir.
- Gerçekten bağlantı yapılmak istenmeyen, ancak bağlantı ayarlarının tanımlandığı durumlarda bu seçenek tercih edilebilir.
Tanımladığınız local login dışındaki kimse bu linked server’ı kullanamayacaktır. Bir örnek üzerinden bu konuyu açıklayalım.
S2\TEST sunucusu ve instance’ında hiçbir yetkisi olmayan C1 adında bir login’imiz oluşturduğumuzda bu login S1 ve S2 sunucusunda A1 login’in üzerinden ilgili sunucuya gitmiş olacak ama bu linked server bağlantısı gözükmeyecektir.(Kullanıcılarımızın tanımlı olduğu resim aşağıdadır.)

S2 sunucusunda administrator olan kullanıcı ile bu linked server’ımızı oluşturuyoruz. S2\administrator kullanıcısı üzerinde oluşturulan loginler aşağıda görülmektedir.


Bu hata mesajı’nı veriyor önemsemeden geçiyoruz. Yani Linked Server oluşturulmuş, fakat bağlantı testi sırasında karşı sunucuya hangi kullanıcı bilgisiyle bağlanılacağı tanımlı değil. Linked Server’da SQL Server, karşı sunucuya bağlanırken bir login mapping (kullanıcı eşlemesi) ister. “Security” sekmesinde hiçbir kullanıcı eşlemesi yapılmamışsa, “Be made using this security context” seçilmemişse, “Be made using the login’s current security context” uygun değilse, Remote server Windows Auth bekliyor ama SQL Auth ile gidiliyorsa veya tam tersi , Bu durumda SQL Server, karşı sunucuya hangi kullanıcıyla bağlanacağını bilemez ve 7416 hatasını verir.
Bu yapı ile oluşturulduktan sonra sadece belirtilen kullanıcı linked server bağlantısını görür. Başka hiçbir kullanıcı görmez.
Şimdi aşağıdaki 3 resme dikkat ederek verilerin hangi login’de geldiğini görmüş olalım.
- Birinci Olarak sa kullanıcında linked server’da veritabanları gelmedi.

- İkinci Olarak A1 kullanıcısında bu linked server bağlantısı gelmedi. Çünkü A1 kullanıcısıyla linked server yapımızı oluşturmadık.

A1 kullanıcısı burada aracı rolünü üstleniyor.
- Üçüncü Olarak hiçbir yetkisi olmayan S2\test instance’ında oluşturulmuş olan C1 kullanıcısıyla login olduğumuzda linked server’ın geldiğini görmüş oluyoruz.

Not: Linked server ekranında impersonate checkbox yapısını işaretlenirse Local user alt kısımda bulunan remote user ve password bilgilerini kullanmaktadır. Yukarıdaki ekran resminde görüldüğü gibi sağ tarafta belirtilmesine gerek yoktur.
Başka bir makalede görüşmek dileğiyle..
“Ey Peygamber! Sakın zalimlerin yaptıklarından Allah’ın gâfil olduğunu sanma! Ancak Allah, onların cezalarını, gözlerin dışa fırlayacağı güne erteler.”İbrahim-42
