リンクサーバーとそのマッピングされたログインのリストを作成したいと思います。誰か知ってる? sys.sysserversはサーバーを表示しますが、ログイン情報は表示されません。
そして簡単なトレースで答えがわかりました:
sys.linked_logins
さらに詳細を検索するクエリ:
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')
したがって、これを複数のクエリ接続でロードし、データベースをあるデータベースから別のデータベースに移動するときに更新する必要があるリンクサーバーを確認できます。
このクエリは、すべてのリンクサーバーとそのログインのリストを提供します。
-- 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
さらに情報が必要な場合は、列を追加します。基本の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