我有 25 台链接服务器(将连接远程 sql server 2000)在一台服务器上完美运行,我什至不知道这些链接服务器的登录信息。我当前的环境是 sql server 2008 R2,我的新环境也是 sql server 2008 R2,我只需要将所有链接服务器从旧迁移到新,保留所有登录信息
可能的?
我有 25 台链接服务器(将连接远程 sql server 2000)在一台服务器上完美运行,我什至不知道这些链接服务器的登录信息。我当前的环境是 sql server 2008 R2,我的新环境也是 sql server 2008 R2,我只需要将所有链接服务器从旧迁移到新,保留所有登录信息
可能的?
如果您正在处理具有指定密码的特定用户的链接服务器,那么我认为您将无法保留该密码信息。由于链接服务器处于服务器级别,因此该信息不会出现在任何数据库备份中。但是,您可以运行如下查询来获取链接服务器列表并检查哪些服务器使用直通凭据。对于那些这样做的,只需在新数据库中创建新的链接服务器定义(您可以通过右键单击 SSMS 中的链接服务器并生成脚本来轻松获取此 SQL)。对于那些没有的,您可以通过 TSQL 创建链接服务器,但您必须为他们提供新的凭据。
SELECT
serv.NAME,
serv.product,
serv.provider,
serv.data_source,
serv.catalog,
prin.name,
ls_logins.uses_self_credential,
ls_logins.remote_name
FROM
sys.servers AS serv
LEFT JOIN sys.linked_logins AS ls_logins
ON serv.server_id = ls_logins.server_id
LEFT JOIN sys.server_principals AS prin
ON ls_logins.local_principal_id = prin.principal_id