sql server 数据库服务器链接
起因:用户多,数据量大;多个数据库,每个数据库占用一台数据库服务器。
链接服务器用于处理分布式查询:当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析命令并向 OLE DB 发送请求。
sp_addlinkedserver:在本地服务器上注册远程服务器的信息。
sp_addlinkedsrvlogin:创建或更新 SQL Server 本地实例上的登录名与远程服务器中安全帐户之间的映射sp_addlinkedserver
[ @server= ] 'server' //要创建的连接服务器的名称
[ , [ @srvproduct= ] 'product_name' ] //链接服务器的OLEDB 数据源的产品名称,默认值为NULL,如果为SQL Server,则不必指定。
[ , [ @provider= ]'provider_name' ] //与此数据源对应的 OLE DB 访问接口的唯一编程标识符
[ , [ @datasrc= ] 'data_source' ] //由 OLEDB 访问接口解释的数据源的名称
sp_addlinkedsrvlogin
[ @rmtsrvname = ] 'rmtsrvname' //应用登录映射的链接服务器的名称
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] // 确定是否通过模拟本地登录名或显式提交登录名和密码来连接到 rmtsrvname,默认值为 True
值为 True 指定登录名使用自己的凭据连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数;
值False 指定 rmtuser 和 rmtpassword 参数用于连接到指定 locallogin 的 rmtsrvname;如果 rmtuser 和 rmtpassword 也设置为 NULL,则不使用登录名或密码来连接链接服务器
[ , [ @locallogin = ] 'locallogin' ] //本地服务器上的登录 ,默认值为null 。null 指定此项应用于连接到 rmtsrvname 的所有本地登录。如果不为 null ,则 locallogin 可以是 SQL Server 登录或 Windows 登录
[ , [ @rmtuser = ] 'rmtuser' ] //当 @useself 为 FALSE 时,用于连接到 rmtsrvname 的远程登录名 ,默认值为 NULL
[ , [ @rmtpassword = ] 'rmtpassword' ] //与 rmtuser 关联的密码 ,默认值为 NULL
实例演示:
exec sp_addlinkedserver 'pub', ' ', 'SQLOLEDB', '192.168.1.38'
exec sp_addlinkedsrvlogin 'pub','false',null, 'sa', '203'
SELECT * FROM pub.ce_pub.dbo.t_pub_user