链接到特定服务器的SQL服务器列表

时间:2015-09-09 09:41:32

标签: sql-server sql-server-2008 sql-server-2012 linked-server

如果我有多个SQL Server,并且我想显示链接服务器到我连接的实际SQL Server(myServer1),我可以执行sp_linkedservers或在服务器对象/链接服务器下导航将显示与其连接的服务器列表。

现在假设我只能访问myServer1,因此无法执行sp_linkedservers ,有没有办法显示哪些SQL服务器有myServer1作为链接服务器?

2 个答案:

答案 0 :(得分:0)

您可以使用这些DMV但仍需要适当的权限:

use master
go
SELECT *
FROM sys.servers s
LEFT JOIN sys.linked_logins l ON s.server_id = l.server_id
LEFT JOIN sys.server_principals p ON p.principal_id = l.local_principal_id

答案 1 :(得分:0)

你提出的问题:在sql server实例上运行'something'(让我们称之为A)检索其他服务器/实例的列表,其中A作为链接服务器对象的目标

回答:你不能。

链接服务器不是持久连接,因此“目标”服务器没有关于哪个服务器具有引用它的潜在连接的信息;只有在激活连接时(例如,运行查询),目标服务器才会注意到远程服务器的存在。

此外,当激活连接时,目标服务器无法知道另一端是否存在链接服务器,odbc源或任何其他软件对象。

您可以擦除日志以查找远程端点,但是您可以自己尝试猜测远程端是否有链接服务器或其他任何内容。

你最好的选择是一个脚本(powershell,也许?),它检索sql服务器列表会产生一个在每个服​​务器上配置的链接服务器的列表。