Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL Server'ın yerel örneğindeki oturum açma bilgileriyle uzak sunucudaki bir güvenlik hesabı arasında eşleme oluşturur veya güncelleştirir.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_addlinkedsrvlogin
[ @rmtsrvname = ] N'rmtsrvname'
[ , [ @useself = ] 'useself' ]
[ , [ @locallogin = ] N'locallogin' ]
[ , [ @rmtuser = ] N'rmtuser' ]
[ , [ @rmtpassword = ] N'rmtpassword' ]
[ ; ]
Tartışmalar
[ @rmtsrvname = ] N'rmtsrvname'
Oturum açma eşlemesinin uygulandığı bağlı sunucunun adı. @rmtsrvnamesysname'dir ve varsayılan değer yoktur.
[ @useself = ] 'kendini kullan'
Yerel oturum açma bilgilerinin kimliğine bürünerek veya açıkça oturum açma ve parola göndererek rmtsrvname'e bağlanılıp bağlanılmayacağını belirler.
@useself , varsayılan değeri olan varchar(8)'dir true.
- değeri
true, oturum açma işlemlerinin @rmtuser ve@rmtpassword bağımsız değişkenleri yoksayılarak @rmtsrvname bağlanmak için kendi kimlik bilgilerini kullandığını belirtir. -
falsebelirtilen @locallogin @rmtsrvname bağlanmak için @rmtuserve@rmtpassword bağımsız değişkenlerinin kullanıldığını belirtir.
@rmtuser ve @rmtpassword olarak ayarlanırsaNULL, bağlı sunucuya bağlanmak için hiçbir oturum açma veya parola kullanılmaz.
[ @locallogin = ] N'locallogin'
Yerel sunucuda oturum açma.
@localloginsysname değeridir ve varsayılan değeri .NULL
NULL bu girişin @rmtsrvname bağlanan tüm yerel oturum açma işlemleri için geçerli olduğunu belirtir.
NULLdeğilse, @locallogin bir SQL Server oturum açma veya Windows hesabı olabilir. Windows hesabının SQL Server'a doğrudan veya bir Windows grubu üyeliği aracılığıyla erişimi olmalıdır.
[ @rmtuser = ] N'rmtuser'
olduğunda @useself bağlanmak için kullanılan uzaktan oturum açma bilgileri.false
@rmtusersysname şeklindedir ve varsayılan değeri .NULL Uzak sunucu Windows Kimlik Doğrulaması kullanmayan bir SQL Server örneği olduğunda , @rmtuser bir SQL Server oturum açma bilgisidir.
[ @rmtpassword = ] N'rmtpassword'
@rmtuser ile ilişkili parola.
@rmtpasswordsysname şeklindedir ve varsayılan değeri .NULL
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Açıklamalar
Bir kullanıcı yerel sunucuda oturum açtığında ve bağlı sunucudaki bir tabloya erişen bir dağıtılmış sorgu yürüttüğünde, yerel sunucunun bu tabloya erişmek için kullanıcı adına bağlı sunucuda oturum açması gerekir. Yerel sunucunun bağlı sunucuda oturum açmak için kullandığı kimlik bilgilerini belirtmek için kullanın sp_addlinkedsrvlogin .
Uyarı
Bağlı sunucuda tablo kullanırken en iyi sorgu planlarını oluşturmak için, sorgu işlemcisinin bağlı sunucudan veri dağıtım istatistiklerine sahip olması gerekir. Tablonun herhangi bir sütunu üzerinde sınırlı izinlere sahip kullanıcılar tüm yararlı istatistikleri elde etmek için yeterli izinlere sahip olmayabilir ve daha az verimli bir sorgu planı alabilir ve düşük performansla karşılaşabilir. Bağlı sunucu bir SQL Server örneğiyse, kullanılabilir tüm istatistikleri elde etmek için kullanıcının tabloya sahip olması veya sysadmin sabit sunucu rolünün, db_owner sabit veritabanı rolünün veya bağlı sunucudaki db_ddladmin sabit veritabanı rolünün üyesi olması gerekir. SQL Server 2012 SP1 (11.0.3x), istatistikleri almak için izin kısıtlamalarını değiştirir ve SELECT iznine sahip kullanıcıların DBCC SHOW_STATISTICS aracılığıyla sağlanan istatistiklere erişmesine izin verir. Daha fazla bilgi için DBCC SHOW_STATISTICS İzinler bölümüne bakın.
Yerel sunucudaki tüm oturum açma işlemleri ile bağlı sunucudaki uzak oturum açma işlemleri arasında varsayılan eşleme, yürütülerek sp_addlinkedserverotomatik olarak oluşturulur. Varsayılan eşleme, SQL Server'ın oturum açma adına bağlı sunucuya bağlanırken yerel oturum açma bilgilerinin kullanıcı kimlik bilgilerini kullandığını belirtir. Bu, yerel bir kullanıcı adı belirtmeden bağlı sunucu için olarak ayarlanmış sp_addlinkedsrvlogin olarak @useself yürütmeye true eşdeğerdir. Yalnızca varsayılan eşlemeyi değiştirmek veya belirli yerel oturum açma işlemleri için yeni eşlemeler eklemek için kullanın sp_addlinkedsrvlogin . Varsayılan eşlemeyi veya diğer eşlemeleri silmek için kullanın sp_droplinkedsrvlogin.
SQL Server, önceden belirlenmiş bir oturum açma eşlemesi oluşturmak için kullanmak sp_addlinkedsrvlogin zorunda kalmak yerine, sorguyu veren kullanıcının Windows güvenlik kimlik bilgilerini (Windows oturum açma adı ve parolası) otomatik olarak kullanarak aşağıdaki koşulların tümü mevcut olduğunda bağlantılı sunucuya bağlanabilir:
Bir kullanıcı Windows Kimlik Doğrulama Modu kullanılarak SQL Server'a bağlanır.
güvenlik hesabı temsilcisi istemcide ve gönderen sunucuda kullanılabilir.
Sağlayıcı Windows Kimlik Doğrulama Modu'nu destekler; örneğin, Windows üzerinde çalışan SQL Server.
Uyarı
Tek atlamalı senaryolar için temsilci seçmenin etkinleştirilmesi gerekmez, ancak çok atlamalı senaryolar için gereklidir.
Kimlik doğrulaması, SQL Server'ın yerel örneğinde yürütülerek sp_addlinkedsrvlogin tanımlanan eşlemeler kullanılarak bağlantılı sunucu tarafından gerçekleştirildikten sonra, uzak veritabanındaki tek tek nesneler üzerindeki izinler yerel sunucu tarafından değil bağlantılı sunucu tarafından belirlenir.
sp_addlinkedsrvlogin kullanıcı tanımlı bir işlem içinden yürütülemez.
İzinler
Sunucuda ALTER ANY LOGIN izni gerektirir.
Örnekler
A. Kendi kullanıcı kimlik bilgilerini kullanarak tüm yerel oturum açma bilgilerini bağlı sunucuya bağlama
Aşağıdaki örnek, yerel sunucudaki tüm oturum açma işlemlerinin kendi kullanıcı kimlik bilgilerini kullanarak bağlı sunucuya Accounts bağlandığından emin olmak için bir eşleme oluşturur.
EXECUTE sp_addlinkedsrvlogin 'Accounts';
Veya
EXECUTE sp_addlinkedsrvlogin 'Accounts', 'true';
Uyarı
Tek tek oturum açma işlemleri için oluşturulan açık eşlemeler varsa, bu eşlemeler söz konusu bağlantılı sunucu için mevcut olabilecek tüm genel eşlemelerden önceliklidir.
B. Farklı kullanıcı kimlik bilgilerini kullanarak belirli bir oturum açma bilgilerini bağlı sunucuya bağlama
Aşağıdaki örnek, Windows kullanıcısının Domain\Mary oturum açma bilgilerini Accountskullanarak bağlı sunucuya MaryP bağlandığından emin olmak için bir eşleme oluşturur. değerini güçlü bir parolayla değiştirin <password> .
EXECUTE sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', '<password>';
Dikkat
Bu örnekte Windows Kimlik Doğrulaması kullanılmaz. Parolalar şifrelenmemiş olarak iletilir. Parolalar diske kaydedilen veri kaynağı tanımlarında ve betiklerinde, yedeklemelerde ve günlük dosyalarında görünebilir. Bu tür bağlantılarda hiçbir zaman yönetici parolası kullanmayın. Ortamınıza özgü güvenlik yönergeleri için ağ yöneticinize başvurun.
C. Belirli yerel oturum açma bilgilerini uzak sunucu oturum açma bilgileriyle eşleme
Azure SQL Yönetilen Örneği gibi bazı durumlarda, bağlı bir sunucu aracılığıyla uzak sunucuda Transact-SQL (T-SQL) sorgusu yürüten bir SQL Aracısı işi çalıştırmak için, yerel sunucudaki oturum açma bilgileri ile T-SQL sorgusunu yürütme izni olan uzak sunucudaki oturum açma bilgileri arasında eşleme oluşturmanız gerekir. SQL Aracısı işi bağlı sunucu aracılığıyla uzak sunucuya bağlandığında, T-SQL sorgusunu uzaktan oturum açma bağlamında yürütür ve bu sorgunun T-SQL sorgusunu yürütmek için gerekli izinlere sahip olması gerekir.
Azure SQL Yönetilen Örneği'ndeki bir SQL Aracısı işi için oturum açma bilgilerini eşlerseniz, SQL Aracısı işi sysadmin değilse, uzak oturum açmayla eşlediğiniz yerel oturum açma bilgileri SQL Aracısı işinin sahibi olmalıdır. Bu durumda tüm yerel oturum açma bilgilerini eşlemeniz gerekir. Daha fazla bilgi için Bkz. Azure SQL Yönetilen Örneği ile SQL Aracısı işleri.
Bağlı sunucuya bağlanırken yerel oturum açma bilgilerini uzak sunucu oturum açma local_login_name bilgileriyle login_name eşlemek için yerel sunucuda remote_serveraşağıdaki örnek komutu çalıştırın:
EXECUTE master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'<remote_server>',
@useself = N'False',
@locallogin = N'<local_login_name>',
@rmtuser = N'<login_name>',
@rmtpassword = '<login_password>';
D. Tüm yerel oturum açma bilgilerini uzak sunucu oturum açma bilgileriyle eşleme
olarak ayarlayarak localloginNULLtüm yerel oturum açma bilgilerini uzak sunucudaki bir oturum açma işlemine eşleyebilirsiniz.
Sysadmin'in sahip olduğu ve bağlı bir sunucu üzerinden uzak bir sunucuyu sorgulayan bir Azure SQL Yönetilen Örneği SQL Aracısı işi yürütülürken tüm yerel oturum açma bilgilerinin uzak sunucu oturum açma bilgileriyle eşlenmesi gerekir. Daha fazla bilgi için Bkz. Azure SQL Yönetilen Örneği ile SQL Aracısı işleri. SQL Aracısı işi bağlı sunucu aracılığıyla uzak sunucuya bağlandığında, T-SQL sorgusunu uzaktan oturum açma bağlamında yürütür ve bu sorgunun T-SQL sorgusunu yürütmek için gerekli izinlere sahip olması gerekir.
Bağlı sunucuya bağlanırken tüm yerel oturum açma bilgilerini uzak sunucu oturum açma bilgileriyle login_name eşlemek için yerel sunucuda remote_serveraşağıdaki örnek komutu çalıştırın:
EXECUTE master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'<remote_server>',
@useself = N'False',
@locallogin = NULL,
@rmtuser = N'<login_name>',
@rmtpassword = '<login_password>';
E. Bağlantılı oturum açma bilgilerini denetleme
Aşağıdaki örnek, bağlı sunucuyla eşlenmiş tüm oturum açma bilgilerini gösterir:
SELECT s.name AS server_name, ll.remote_name, sp.name AS principal_name
FROM sys.servers s
INNER JOIN sys.linked_logins ll
ON s.server_id = ll.server_id
INNER JOIN sys server_principals sp
ON ll.local_principal_id = sp.principal_id
WHERE s.is_linked = 1;