查询链接服务器登录

Sam*_*Sam 4 sql-server-2008 sql-server linked-server

我想生成链接服务器及其映射登录名的列表。有谁知道怎么做?sys.sysservers 将显示服务器,但不显示登录信息。

Ste*_*ven 5

此查询将为您提供所有链接服务器及其登录名的列表:

-- linked servers and their logins
select s.name, p.principal_id, l.remote_name
from sys.servers s
    join sys.linked_logins l
        on s.server_id = l.server_id
    left join sys.server_principals p
        on l.local_principal_id = p.principal_id
where s.is_linked = 1
go
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请添加更多列。以下是基本的 DMV:

-- list the linked servers
select * 
from sys.servers
where is_linked = 1
go

-- linked server logins
select * 
from sys.linked_logins
go

-- local logins
select * 
from sys.server_principals
go
Run Code Online (Sandbox Code Playgroud)


Sam*_*Sam 1

快速跟踪告诉我答案:

sys.linked_logins
Run Code Online (Sandbox Code Playgroud)

以及查找更多信息的查询:

SELECT  sp.name ,
        s.name ,
        ll.remote_name
FROM    sys.linked_logins ll
        INNER JOIN sys.server_principals sp ON ll.local_principal_id = sp.principal_id
        INNER JOIN sys.servers s ON s.server_id = ll.server_id
WHERE   remote_name IN ('mylogin')
Run Code Online (Sandbox Code Playgroud)

因此,我将其加载到多个查询连接中,当数据库从一个数据库移动到另一个数据库时,我可以看到哪些链接服务器需要更新。