2015-08-19 13 views
6

Yerel SQL Server 2008R2 kullanıyorum. Bağlantılı Sunucuyu uzak veritabanına yapılandırdım.SQL Bağlantılı Sunucu, yönetici olmayan hesap kullanılıyorsa "giriş eşlemesi yok" hatası veriyor

Bağlı Sunucu, yerel sunucuya sysadmin sunucu rolüyle SQL-login hesabı kullanarak giriş yaptığımda harika çalışıyor. Uzak sunucuya karşı sorgu yapabilirim, bu yüzden Bağlantılı Sunucu ayarının doğru olduğunu biliyorum. Ancak, sysadmin sunucu rolüne sahip olmayan bir hesabı kullanırsam, aşağıdaki hatayı alırdım. hem yerel hem de uzak sunucular, SQL giriş kullanıldığı için

Msg 7416, Level 16, State 2, Line 2 
Access to the remote server is denied because no login-mapping exists. 

(Windows kimlik doğrulaması kullanılmaz)

Ben Bağlantılı sunucu kullanmak için düzenli SQL oturum açma hesabı için yapılandırmanız gerekir güvenliğin ne tür?

+1

Sağ tıklarsanız. bağlantılı sunucu tanımındaki özellikler ve Güvenlik sekmesine gidin, nasıl kurulur? Alternatif olarak, bağlantılı sunucuyu "sp_addlinkedsrvlogin" parçalarını (şifreleri dezenfekte ederek) yapıştırın ve yapıştırın. –

+0

Ne @ Nick.McDermaid dedi. Eğer yapılmayacaksa, listeye bir eşleme eklemeniz VEYA radyo düğmelerinde aşağıdaki 3 alternatif seçenekten birini sağlamanız gerekir. –

+0

@ Nick.McDermaid, @BradD: Listeye harita ekledim. “Yapılmayacak” ve “Bu güvenlik bağlamından yararlanılarak” denedim ve her iki seçenek de işe yaramadı. Ancak sysadmin sunucu rolünü yerel SQL hesabına eklediğimde hemen çalıştı. Niye ya? – Tony

cevap

7

this blog'a göre, sysadmin olmayan hesaplar kullanılıyorsa sağlayıcı dizesinde User ID belirtmeliyim. İşte bir örnek.

EXEC master.dbo.sp_addlinkedserver 
    @server = N'MyLinkServerName', 
    @provider = N'SQLNCLI', 
    @srvproduct = 'SQLNCLI', 
    @provstr = N'SERVER=MyServerName\MyInstanceName;User ID=myUser' 

Bu, karşılaştığım ile tam olarak eşleşiyor ve sorunumu çözüyor.

+0

Bir yıl sonra ve benim kafa çizicilerimden birini çözdünüz! –

0

Alternatif çözüm olarak @provstr yerine @datasrc parametresini kullanabilirsiniz. @ datasrc Kullanıcı numarası

Numune ayarlamadan çalışır:

EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName', @provider=N'SQLNCLI',@srvproduct = 'MS SQL Server', @datasrc=N'serverName\InstanceName' 
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LinkServerName', @locallogin = NULL , @useself = N'False', @rmtuser = N'myUser', @rmtpassword = N'*****' 

Ben de bir yorum here ekledim ama görünür değil (neden bilmiyorum).

İlgili konular