Aracılığıyla paylaş


Bağlı sunucular oluşturma (SQL Server Veritabanı Altyapısı)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Bu makalede, SQL Server Management Studio (SSMS) veya Transact-SQL kullanarak başka bir SQL Server, Azure SQL yönetilen örneği veya başka bir veri kaynağından bağlantılı sunucu oluşturma ve verilere erişme adımları gösterilmektedir. Bağlı sunucular, SQL Server veritabanı altyapısının ve Azure SQL Yönetilen Örneğinin uzak veri kaynaklarından verileri okumasını ve SQL Server örneği dışında uzak veritabanı sunucularında (örneğin OLE DB veri kaynakları) komut yürütmesini sağlar.

Arka plan

Bağlı sunucular genellikle veritabanı altyapısının başka bir SQL Server örneğindeki tabloları veya Oracle gibi başka bir veritabanı ürününü içeren bir Transact-SQL deyimi yürütmesini sağlayacak şekilde yapılandırılır. Üçüncü taraf veritabanı sağlayıcıları ve Azure Cosmos DB dahil olmak üzere birçok veri kaynağı türü bağlı sunucu olarak yapılandırılabilir.

Bağlı bir sunucu oluşturulduktan sonra, bu sunucuda dağıtılmış sorgular çalıştırılabilir ve sorgular birden fazla veri kaynağından tabloları birleştirebilir. Bağlı sunucu bir SQL Server örneği veya Azure SQL Yönetilen Örneği olarak tanımlanmışsa, uzak saklı yordamlar yürütülebilir.

Bağlı sunucunun özellikleri ve gerekli bağımsız değişkenleri önemli ölçüde farklılık gösterebilir. Bu makaledeki örnekler tipik bir örnek sağlar ancak tüm seçenekler açıklanmamıştır. Daha fazla bilgi için bkz. sp_addlinkedserver.

İzinler

Transact-SQL komutlarını kullanırken, sunucuda ALTER ANY LINKED SERVER izni veya setupadmin sabit sunucu rolü üyeliği gerekir. Management Studio kullanırken CONTROL SERVER sabit sunucu rolünde izin veya üyelik gerekir.

SSMS ile bağlantılı sunucu oluşturma

Aşağıdaki yordamı kullanarak SSMS ile bağlı bir sunucu oluşturun:

Yeni Bağlı Sunucu iletişim kutusunu açma

SQL Server Management Studio'da (SSMS):

  1. Nesne Gezgini'ne gidin.
  2. Sunucu Nesnelerigenişletin.
  3. Bağlantılı Sunucular 'a sağ tıklayın.
  4. Yeni Bağlı Sunucu seçin.

Bağlı sunucu özellikleri için Genel sayfasını düzenleyin

  1. Genel sayfasındaki Bağlı sunucu kutusuna, bağlandığınız SQL Server örneğinin adını yazın.

    Not

    SQL Server örneği varsayılan örnekse, SQL Serverörneğini barındıran bilgisayarın adını girin. SQL Server adlandırılmış bir örnekse, bilgisayarın adını ve örneğin adını girin( örneğin Accounting\SQLExpressgibi).

  2. gerekirse Sunucu türü ve ilgili bilgileri belirtin:

    • SQL Server

      Bağlı sunucuyu Microsoft SQL Server veya Azure SQL Yönetilen Örneği örneği olarak tanımlayın. Bağlantılı sunucu tanımlamak için bu yöntemi kullanırsanız, Bağlı sunucu belirtilen ad sunucunun ağ adı olmalıdır. Ayrıca, sunucudan alınan tüm tablolar, bağlı sunucuda oturum açma için tanımlanan varsayılan veritabanından alınır.

    • Diğer veri kaynağı

      SQL Server dışında bir OLE DB sunucu türü belirtin. Seçenekleri etkinleştirmek için bu seçeneği belirleyin.

    • Sağlayıcı

      Liste kutusundan bir OLE DB veri kaynağı seçin. OLE DB sağlayıcısı kayıt defterinde verilen PROGID ile kaydedilir.

    • Ürün adı

      Bağlı sunucu olarak eklenecek OLE DB veri kaynağının ürün adını yazın.

    • Veri kaynağı

      OLE DB sağlayıcısı tarafından yorumlanan veri kaynağının adını yazın. SQL Server örneğine bağlanıyorsanız örnek adını belirtin.

    • Sağlayıcı dizesi

      Veri kaynağına karşılık gelen OLE DB sağlayıcısının benzersiz programlı tanımlayıcısını (PROGID) yazın. Geçerli sağlayıcı dizelerinin örnekleri için bkz. sp_addlinkedserver.

    • Konum

      VERITABANıNın konumunu OLE DB sağlayıcısı tarafından yorumlandığı şekilde yazın.

    • Katalog

      OLE DB sağlayıcısıyla bağlantı kurarken kullanılacak kataloğun adını yazın.

Bağlı sunucu özellikleri için Güvenlik sayfasını düzenleme

Güvenlik sayfasında, özgün örnek bağlı sunucuya bağlandığında kullanılan güvenlik bağlamını belirtin. Burada yapılandırılacak, tek başına veya birleştirilebilen iki strateji vardır. Birincisi yerel sunucudan uzak sunucuya oturum açma bilgilerini eşlemek, ikincisi ise bağlı sunucunun eşlenmeyen oturum açma bilgilerini nasıl ele alması gerektiğidir.

Oturum açma eşlemeleri ekleme

İsteğe bağlı olarak, belirli yerel sunucu oturum açma bilgilerinin bağlı sunucuyu kullanarak nasıl kimlik doğrulaması yapılacağını belirtebilirsiniz.

Yerel sunucu oturum açma işlemlerini uzak sunucu oturum açma işlemleriyle eşleştirmealtında, eşlemek istediğiniz her oturum açma için aşağıdaki işlemi tekrarlayın.

  1. Ekle'ı seçin.

  2. Yerel bir oturum açma belirtin.

    Bağlı sunucuya bağlanabilecek yerel oturum açma bilgilerini belirtin. Yerel oturum açma, SQL Server kimlik doğrulaması kullanılarak oturum açma veya Windows kimlik doğrulaması oturum açma işlemi olabilir. Windows grubu veya kapsanan veritabanı kullanıcısı kullanılması desteklenmez. Bağlantıyı belirli oturum açma bilgileriyle kısıtlamak veya bazı oturum açma işlemlerinin farklı oturum açma bilgileri olarak bağlanmasına izin vermek için bu listeyi kullanın.

    Not

    Uzak SQL Server örneğinde Windows kimlik doğrulaması kullanan bağlı sunucularla ilgili yaygın sorunlar, hizmet sorumlusu adlarıyla (SPN) ilgili sorunlardan kaynaklanır. Daha fazla bilgi için bkz. İstemci Bağlantıları'nda hizmet asıl adı (SPN) desteği. SQL Server için Microsoft Kerberos Configuration Manager, SQL Server ile ilgili Kerberos ile ilgili bağlantı sorunlarını gidermeye yardımcı olan bir tanılama aracıdır. Daha fazla bilgi için bkz. SQL Server için Microsoft Kerberos Configuration Manager.

  3. seçin Kimliğine Bürün (isteğe bağlı).

    Yerel oturum açma bilgilerindeki kullanıcı adını ve parolayı bağlı sunucuya geçirin. SQL Server kimlik doğrulaması için, uzak sunucuda tam olarak aynı ada ve parolaya sahip bir oturum açma bilgisi bulunmalıdır. Windows oturum açma işlemleri için oturum açma, bağlı sunucuda geçerli bir oturum açma bilgisi olmalıdır.

    Kimliğe bürünme özelliğini kullanmak için yapılandırmanın temsilci seçme gereksinimini karşılaması gerekir.

  4. Kimliğe bürünme kullanmıyorsanız Uzak Kullanıcı belirtin.

    Yerel oturum açmasırasında tanımlanan kullanıcıyı eşleştirmek için uzak kullanıcıyı kullanın. Uzak Kullanıcı uzak sunucuda bir SQL Server kimlik doğrulama giriş bilgisi olmalıdır.

  5. Kimliğe bürünme kullanmıyorsanız Uzaktan Parola belirtin.

    Uzak Kullanıcının parolasını belirtin.

  6. İsterseniz mevcut yerel oturum açma bilgilerini kaldırmak için Kaldır'ı seçin.

Eşleme listesinde bulunmayan oturum açma işlemleri için varsayılan güvenlik bağlamını belirtin

Kullanıcıların etki alanı oturum açma bilgilerini kullanarak bağlandığı bir etki alanı ortamında, oturum açmanın mevcut güvenlik bağlamı kullanılarak yapılması genellikle en iyi seçenektir. Kullanıcılar özgün SQL ServerSQL Server oturum açarak bağlandığında, en iyi seçenek genellikle bu güvenlik bağlamını kullanarak ve ardından bağlı sunucuda kimlik doğrulaması için gerekli kimlik bilgilerini sağlayarak seçmektir.

Aşağıdaki seçeneklerden birini belirleyin:

  • Yapılmaz

    Listede tanımlanmayan oturum açma işlemleri için bağlantı yapılmaz.

  • Güvenlik bağlamı kullanılmadan yapılır

    Bağlantı, listede tanımlanmayan oturum açma işlemleri için güvenlik bağlamı kullanılmadan yapılır.

  • Oturum açma bilgilerinin geçerli güvenlik bağlamı kullanılarak yapılması

    Listede tanımlanmayan oturum açma işlemleri için oturum açma bilgilerinin geçerli güvenlik bağlamı kullanılarak bağlantı oluşturulur. Windows Kimlik Doğrulaması kullanarak yerel sunucuya bağlıysanız, uzak sunucuya bağlanmak için Windows kimlik bilgileriniz kullanılır. SQL Server Kimlik Doğrulaması kullanılarak yerel sunucuya bağlanıldıysa, uzak sunucuya bağlanmak için oturum açma adınız ve parolanız kullanılır. Bu durumda, uzak sunucuda tam olarak aynı ada ve parolaya sahip bir oturum açma bilgisi bulunmalıdır.

  • Bu güvenlik bağlamı kullanılarak yapılır

    Listede tanımlanmayan oturum açma işlemleri için Uzaktan oturum açma ve Parola ile kutularında belirtilen oturum açma bilgileri ve parola kullanılarak bağlantı oluşturulur. Uzaktaki oturum açma, uzak sunucuda bir SQL Server Kimlik Doğrulama oturum açması olmalıdır.

Dikkat

Bağlı sunucu seçeneğiyle yapılandırıldıysa Bu güvenlik bağlamıkullanılarak yapılır örnekteki herhangi bir kullanıcısı bu bağlamı kullanarak uzak bağlı sunucuya erişebilir. Bu, uygunsuz kullanım veya kötü amaçlı iç erişim için istenmeyen potansiyele sahip olabilir. Bağlantılı sunucuya sağlanan SQL kimliği doğrulanmış Uzak oturum açma, en az ayrıcalık ilkesi sağlamak ve saldırı yüzeyini azaltmak için uzak sunucuda gerekli en düşük izinler verilmelidir.

Bağlı sunucu özelliklerinde Sunucu Seçenekleri sayfasını düzenleme (isteğe bağlı)

Sunucu seçeneklerini görüntülemek veya belirtmek için Sunucu Seçenekleri sayfasını seçin. Aşağıdaki seçeneklerden herhangi birini düzenleyebilirsiniz:

  • Harmanlama Uyumlu

    Bağlı sunucularda Dağıtılmış Sorgu yürütmeyi etkiler. Bu seçenek true olarak ayarlanırsa, SQL Server bağlı sunucudaki tüm karakterlerin karakter kümesi ve harmanlama dizisi (veya sıralama düzeni) ile ilgili olarak yerel sunucuyla uyumlu olduğunu varsayar. Bu, SQL Server'ın karakter sütunlarında karşılaştırmaları sağlayıcıya göndermesini sağlar. Bu seçenek ayarlı değilse, SQL Server her zaman karakter sütunlarıyla ilgili karşılaştırmaları yerel olarak değerlendirir.

    Bu seçenek yalnızca bağlı sunucuya karşılık gelen veri kaynağının yerel sunucuyla aynı karakter kümesine ve sıralama düzenine sahip olduğundan eminse ayarlanmalıdır.

  • Veri Erişimi

    Dağıtılmış sorgu erişimi için bağlı sunucuyu etkinleştirir ve devre dışı bırakır.

  • RPC

    Belirtilen sunucudan uzak yordam çağrılarını (RPC) etkinleştirir.

  • RPC Out

    Belirtilen sunucuya RPC'yi etkinleştirir.

  • Uzak Harmanlama Kullanma

    Uzak bir sütunun veya yerel sunucunun harmanlamasının kullanılıp kullanılmayacağını belirler.

    True ise, uzak sütunların harmanlaması SQL Server veri kaynakları için kullanılır ve harmanlama adında belirtilen harmanlama SQL Server olmayan veri kaynakları için kullanılır.

    Eğer False ise, dağıtılmış sorgular her zaman yerel sunucunun varsayılan harmanlamasını kullanır ve harmanlama adı ile uzak sütunların harmanlaması dikkate alınmaz. Varsayılan değer false'tur.

  • harmanlama adı

    Uzak harmanlama kullanılıyorsa ve veri kaynağı bir SQL Server veri kaynağı değilse, uzak veri kaynağı tarafından kullanılan harmanlamanın adını belirtir. Ad, SQL Server tarafından desteklenen harmanlamalardan biri olmalıdır.

    SQL Server dışında bir OLE DB veri kaynağına erişirken ancak harmanlaması SQL Server harmanlamalarından biriyle eşleşen bir OLE DB veri kaynağına erişirken bu seçeneği kullanın.

    Bağlantılı sunucu, bu sunucudaki tüm sütunlar için kullanılacak tek bir harmanlamayı desteklemelidir. Bağlı sunucu tek bir veri kaynağı içinde birden çok harmanlamayı destekliyorsa veya bağlantılı sunucunun harmanlaması SQL Server harmanlamalarından biriyle eşleşecek şekilde belirlenemiyorsa bu seçeneği ayarlamayın.

  • Bağlantı Zaman Aşımı

    Bağlı sunucuya bağlanmak için saniye olarak zaman aşımı değeri.

    ise0, varsayılan sp_configure seçenek değerini kullanın.

  • Sorgu Zaman Aşımı

    Bağlantılı sunucuya yönelik sorgular için saniye olarak zaman aşımı değeri.

    ise0, varsayılan sp_configure seçenek değerini kullanın.

  • Dağıtılmış İşlemlerin Tanıtımını Etkinleştir

    Bir Microsoft Dağıtılmış İşlem Düzenleyicisi (MS DTC) işlemi aracılığıyla sunucudan sunucuya yordamının eylemlerini korumak için bu seçeneği kullanın. Bu seçenek TRUE olduğunda, uzak saklı yordamı çağırmak dağıtılmış bir işlem başlatır ve işlemi MS DTC ile listeler. Daha fazla bilgi için bkz. sp_serveroption.

Bağlı sunucuyu kaydetme

Tamamseçin.

SSMS'de bağlı sunucu sağlayıcısı seçeneklerini görüntüleme veya düzenleme

Tüm sağlayıcılar aynı seçeneklere sahip değildir. Örneğin, bazı veri türlerinin dizinleri vardır ve bazılarında olmayabilir. SQL Server'ın sağlayıcının özelliklerini anlamasına yardımcı olması için bu iletişim kutusunu kullanın. SQL Server bazı yaygın veri sağlayıcılarını yükler, ancak verileri sağlayan ürün değiştiğinde SQL Server tarafından yüklenen sağlayıcı en yeni özelliklerin tümünü desteklemeyebilir. Verileri sağlayan ürünün özellikleri hakkında en iyi bilgi kaynağı, söz konusu ürünün belgeleridir.

SSMS'de bağlı sunucu Sağlayıcılar Seçenekleri sayfasını açmak için:

  1. Nesne Gezgini'ne gidin.
  2. Sunucu Nesnelerigenişletin.
  3. bağlı sunucuları genişletin.
  4. Sağlayıcıları genişletin.
  5. Bir sağlayıcıya sağ tıklayın ve Özellikleröğesini seçin.

Sağlayıcı seçenekleri aşağıdaki gibi tanımlanır:

  • dinamik parametre

    Parametreleştirilmiş sorgular için sağlayıcının ? parametre işareti söz dizimini desteklediğini gösterir. Bu seçeneği yalnızca sağlayıcı ICommandWithParameters arabirimini destekliyorsa ve parametre işaretçisi olarak bir ? destekliyorsa ayarlayın. Bu seçeneğin ayarlanması, SQL Server'ın sağlayıcıya karşı parametreli sorgular yürütmesine olanak tanır. Sağlayıcıya karşı parametreli sorgular yürütebilme özelliği, belirli sorgular için daha iyi performansa neden olabilir.

  • İç içe sorguları

    Sağlayıcının yan tümcesinde iç içe SELECT deyimlere izin verdiği gösterir FROM . Bu seçeneğin ayarlanması, SQL Server'ın yan tümcesinde iç içe SELECT deyimleri gerektiren belirli sorguları sağlayıcıya devretmesine FROM olanak tanır.

  • Sadece sıfır düzeyinde

    Sağlayıcıya karşı yalnızca düzey 0 OLE DB arabirimleri çağrılır.

  • İşlemeye izin ver

    SQL Server, sağlayıcının işlem içi sunucu olarak örneğini oluşturmasına olanak tanır. Bu seçenek ayarlı olmadığında, varsayılan davranış sağlayıcıyı SQL Server işleminin dışında örneklemektir. Sağlayıcının SQL Server işleminin dışında örnek oluşturma, SQL Server işlemini sağlayıcıdaki hatalardan korur. Sağlayıcı SQL Server işleminin dışında örneklendiğinde, uzun sütunlara (metin, ntextveya resim) başvuran güncelleştirmelere veya eklemelere izin verilmez.

  • İşlemi gerçekleştirilmeyen güncellemeler

    ITransactionLocal kullanılamasa bile SQL Server güncelleştirmelere izin verir. Bu seçenek etkinleştirilirse sağlayıcı işlemleri desteklemediğinden sağlayıcıya yönelik güncelleştirmeler kurtarılamaz.

  • Dizin'i erişim yolu olarak

    SQL Server, verileri getirmek için sağlayıcının dizinlerini kullanmayı dener. Varsayılan olarak, dizinler yalnızca meta veriler için kullanılır ve hiçbir zaman açılmaz

  • Geçici erişime izin verme

    SQL Server, OLE DB sağlayıcısına karşı OPENROWSET ve OPENDATASOURCE işlevleri aracılığıyla geçici erişime izin vermez. Bu seçenek ayarlanmamışsa, SQL Server geçici erişime de izin vermez.

  • 'Like' işlecini destekler

    Sağlayıcının anahtar sözcüğü kullanarak sorguları desteklediğini LIKE gösterir.

Transact-SQL ile bağlantılı sunucu oluşturma

Transact-SQL kullanarak bağlantılı sunucu oluşturmak için sp_addlinkedserver, CREATE LOGIN ve sp_addlinkedsrvlogin deyimlerini kullanın.

Bu örnek, Transact-SQL kullanarak sql server'ın başka bir örneğine bağlı bir sunucu oluşturur:

  1. Sorgu Düzenleyicisi'nde, SRVR002\ACCTGadlı bir SQL Server örneğine bağlanmak için aşağıdaki Transact-SQL komutunu girin:

    USE [master];
    GO
    
    EXECUTE master.dbo.sp_addlinkedserver
        @server = N'SRVR002\ACCTG',
        @srvproduct = N'SQL Server';
    GO
    
  2. Bağlı sunucuyu, bağlı sunucuyu kullanan oturum açma bilgilerinin etki alanı kimlik bilgilerini kullanacak şekilde yapılandırmak için aşağıdaki kodu yürütebilirsiniz.

    EXECUTE master.dbo.sp_addlinkedsrvlogin
        @rmtsrvname = N'SRVR002\ACCTG',
        @locallogin = NULL,
        @useself = N'True';
    GO
    

İzleme: Bağlı sunucu oluşturduktan sonra izleyebileceğiniz adımlar

Aşağıdaki adımlar bağlı sunucuyu doğrulamanıza yardımcı olur.

Bağlı sunucuyu test edin

Bağlı sunucunun kimlik doğrulamasını geçerli güvenlik bağlamınızda test etmek için aşağıdaki iki yaklaşımdan birini göz önünde bulundurun.

  • SSMS'de bağlı bir sunucuya bağlanma özelliğini test etmek için Nesne Gezgini'nde bağlı sunucuya gidin, bağlı sunucuya sağ tıklayın ve bağlantıyı test et'i seçin.

  • T-SQL'de bağlı bir sunucuya bağlanma yeteneğini test etmek için, örneğin temel veritabanı kataloğu bilgilerini almak amacıyla, basit bir SELECT ifadesi yürütebilirsiniz. Bu örnek, bağlı sunucudaki veritabanlarının adlarını döndürür.

    SELECT name
    FROM [SRVR002\ACCTG].master.sys.databases;
    GO
    

Bağlı sunucudan tabloları birleştirme

Bağlı sunucudaki bir nesneye başvurmak için dört parçalı adlar kullanın. Yerel sunucudaki tüm oturum açma işlemlerinin listesini ve bağlantılı sunucuda eşleşen oturum açma bilgilerini döndürmek için aşağıdaki kodu yürütebilirsiniz.

SELECT local.name AS LocalLogins,
       linked.name AS LinkedLogins
FROM master.sys.server_principals AS local
     LEFT OUTER JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked
         ON local.name = linked.name;
GO

Bağlı sunucu oturum açma işlemi için NULL döndürülürse, oturum açmanın bağlı sunucuda mevcut olmadığını gösterir. Bu oturumlar, bağlı sunucu farklı bir güvenlik bağlamına geçiş yapacak biçimde yapılandırılmadığı takdirde veya bağlı sunucu anonim bağlantıları kabul etmediği takdirde bağlı sunucuyu kullanamaz.

Azure SQL Yönetilen Örneği ile ilişkili sunucular

Azure SQL Yönetilen Örneği kullanıyorsanız sp_addlinkedserver aşağıdaki örneklere bakın: