http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html
遠程鏈接服務器詳細配置
--
建立連接服務器
EXEC
sp_addlinkedserver?
'
遠程服務器IP
'
,
'
SQL Server
'
--
標注存儲
EXEC
sp_addlinkedserver
@server
=
'
server
'
,
--
鏈接服務器的本地名稱。也允許使用實例名稱,例如MYSERVER\SQL1
@srvproduct
=
'
product_name
'
--
OLE DB數據源的產品名。對于SQL Server實例來說,product_name是'SQL Server'
,
@provider
=
'
provider_name
'
--
這是OLE DB訪問接口的唯一可編程標識。當沒有指定它時,訪問接口名稱是 SQL Server數據源。SQL Server顯式的provider_name是 SQLNCLI(Microsoft SQL Native Client OLE DB Provider)。Oracler的是 MSDAORA,Oracle 8或更高版本的是OraOLEDB.Oracle。MS Access和MS Excel的是 Microsoft.Jet.OLEDB.4.0。IBM DB2的是DB2OLEDB,以及ODBC數據源的是MSDASQL
,
@datasrc
=
'
data_source
'
--
這是特定OLE DB訪問接口解釋的數據源。對于SQL Server,這是 SQL Server(servername或servername\instancename)的網絡名稱。對于Oracle,這是SQL*Net別名。對于 MS Access和MSExcel,這是文件的完整路徑和名稱。對于ODBC數據源,這是系統DSN名稱
,
@location
=
'
location
'
--
由特定OLE DB訪問接口解釋的位置
,
@provstr
=
'
provider_string
'
--
OLE DB 訪問接口特定的連接字符串。對于ODBC連接,這是ODBC連接字符串。對于MS Excel,這是Excel 5.0
,
@catalog
=
'
catalog
'
--
catalog的定義變化基于OLE DB訪問接口的實現。對于SQL Server,這是可選的數據庫名稱,對于DB2,這個目錄是數據庫的名稱
--
創建鏈接服務器上遠程登錄之間的映射
EXEC
sp_addlinkedsrvlogin
'
遠程服務器IP
'
,
'
false
'
,
'
sa
'
,
'
架構名
'
,
'
訪問密碼
'
--
標注存儲
EXEC
sp_addlinkedsrvlogin
@rmtsrvname
=
'
遠程服務器IP
'
,
--
要添加登錄名映射的本地鏈接服務器
@useself
=
false,
--
當使用true值時,使用本地SQL或Windows登錄名連接到遠程服務器名。如果設為false,存儲過程 sp_addlinkedsrvlogin的locallogin、rmtuser和rmtpassword參數將應用到新的映射中
@locallogin
=
NULL
,
--
這是映射到遠程登錄名的SQL Server登錄或Windows用戶的名稱。如果這個參數置為NULL,映射將應用SQL Server實例中的所有本地登錄名
@rmtuser
=
'
架構名
'
,
--
用來連接到鏈接服務器的用戶/登錄名的名稱
@rmtpassword
=
'
訪問密碼
'
--
用來連接到鏈接服務器的用戶/登錄名的密碼
--
查詢數據
select
top
10
*
from
[
222
]
.pwms.pwms.bas_tb_sku
--
查看鏈接服務器信息
select
name,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabled
from
sys.servers
where
is_linked
=
1
--
配置鏈接服務器屬性
exec
sp_serveroption
'
別名
'
,
'
name
'
,
'
遠程服務器IP
'
--
標注存儲
EXEC
sp_serveroption
@server
=
'
server
'
--
配置屬性的鏈接服務器的名稱
,
@optname
=
'
option_name
'
--
要配置的選項
,
@optvalue
=
'
option_value
'
--
選項的新值
--
附參數
參??? 數 描??? 述
collation compatible 如果你確認SQL Server實例與遠程SQL Server擁有相同的排序規則就啟用這個設置。由于SQL Server不再需要對數據源之間的字符列執行比較操作,把它們假定為相同的排序規則,這樣做可以提升性能
collation name 如果啟用了use remote collation并且是非SQL Server的數據源,則collation name指定遠程服務器排序規則的名稱。這個排序規則名稱必須是SQL Server所支持的
connect timeout 指定在超時發生之前到鏈接服務器的連接會嘗試多少秒。如果數值為“
0
”,sp_ configure的remote query timeout的服務器值用來當作默認值
data access 如果啟用,就允許分布式查詢訪問
lazy
schema
validation 如果設為true,則架構不會在查詢開始時去檢測遠程表。盡管這樣會減少遠程查詢的負載,但是如果架構發生了變化并且你沒有進行架構檢測,比如說查詢中引用的對象不能與查詢命令進行通信,就會生成錯誤
query timeout 指定查詢等待的超時值(秒數)。如果這個值為0,則query wait選項使用sp_configure值
rpc 啟用從服務器進行遠程過程調用
rpc out 啟用遠程過程調用到服務器
use
remote collation 指定是使用遠程服務器排序規則(true)還是本地服務器排序規則(false)
--
刪除鏈接服務器屬性
exec
sp_dropserver
'
4
'
--
標注存儲
EXEC
sp_dropserver
@server
=
'
server
'
--
從SQL Server實例中刪除的鏈接服務器的名稱
,
@droplogins
=
'
droplogins
'
--
如果指定droplogins,則在刪除鏈接服務器之前要刪除登錄名映射
--
查看鏈接登錄名
select
s.name linkedServerName,s.data_source linkedserver_source,s.is_linked,s.modify_date,
ll.remote_name,ll.local_principal_id,ll.uses_self_credential,
p.name localLoginName
from
sys.Linked_logins ll
inner
join
sys.servers s
on
s.server_id
=
ll.server_id
left
join
sys.server_principals p
on
p.principal_id
=
ll.local_principal_id
where
s.is_linked
=
1
--
刪除鏈接服務器登錄名映射
exec
sp_droplinkedsrvlogin
'
遠程服務器IP
'
,
NULL
--
標注存儲
EXEC
sp_droplinkedsrvlogin
@rmtsrvname
=
'
遠程服務器IP
'
--
登錄名映射的鏈接服務器名稱
@locallogin
=
NULL
--
這是從鏈接服務器刪除的SQL Server登錄或Windows用戶映射的名稱
?
?
?
-- 假設遠程機器IP為127.0.0.1
-- 建立連接服務器
EXEC sp_addlinkedserver? ' 127.0.0.1 ' , ' SQL Server '
-- 創建鏈接服務器上遠程登錄之間的映射
EXEC sp_addlinkedsrvlogin ' 10.0.0.222 ' , ' false ' , ' sa ' , ' 架構名 ' , ' 密碼 '
-- 查詢數據
select top 10 * from [ 127.0.0.1 ] .數據庫名.架構名.表名
-- 查看鏈接服務器信息
select name,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabled
from sys.servers
where is_linked = 1
-- 配置鏈接服務器屬性設置別名
exec sp_serveroption ' remotecmp ' , ' name ' , ' 127.0.0.1 '
-- 查詢數據
select top 10 * from remotecmp.數據庫名.架構名.表名
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
