Sam*_*Sam 4 sql-server-2008 sql-server linked-server
我想生成链接服务器及其映射登录名的列表。有谁知道怎么做?sys.sysservers 将显示服务器,但不显示登录信息。
此查询将为您提供所有链接服务器及其登录名的列表:
-- 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)
快速跟踪告诉我答案:
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)
因此,我将其加载到多个查询连接中,当数据库从一个数据库移动到另一个数据库时,我可以看到哪些链接服务器需要更新。