Sql-Server
查詢連結伺服器登錄
我想生成連結伺服器及其映射登錄名的列表。有誰知道怎麼做?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