SQLSERVER2005 跨數據庫訪問 -- 建立鏈接服務器

--創建鏈接服務器

  exec sp_addlinkedserver    '鏈接服務器名稱','','SQLOLEDB','遠程服務器名或ip地址'

exec sp_addlinkedsrvlogin  '鏈接服務器名稱','false',null,'需要鏈接服務器用戶名','密碼'  

 

 

sp_addlinkedserver

[ @server= ] 'server'

[ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ]

 

參數(Parameters):

[ @server = ] 'server'

      要創建的鏈接服務器的名稱。server 的數據類型爲 sysname,沒有默認值。

 

[ @srvproduct = ] 'product_name' 要添加爲鏈接服務器的 OLE DB 數據源的產品名稱。product_name 的數據類型爲 nvarchar(128),默認值爲 NULL。如果爲 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。

 

[ @provider = ] 'provider_name' 與此數據源對應的 OLE DB 訪問接口的唯一編程標識符 (PROGID)。對於當前計算機中安裝的指定 OLE DB 訪問接口,provider_name 必須唯一。provider_name 的數據類型爲 nvarchar(128),默認值爲 NULL;但如果忽略 provider_name,則使用 SQLNCLI。SQLNCLI 是 SQL 本機 OLE DB 訪問接口。OLE DB 訪問接口應以指定的 PROGID 在註冊表中註冊。

 

[ @datasrc = ] 'data_source' 由 OLE DB 訪問接口解釋的數據源的名稱。data_source 的數據類型爲 nvarchar(4000)。data_source 作爲 DBPROP_INIT_DATASOURCE 屬性傳遞以初始化 OLE DB 訪問接口。

 

[ @location = ] 'location' 由 OLE DB 訪問接口解釋的數據庫的位置。location 的數據類型爲 nvarchar(4000),默認值爲 NULL。location 作爲 DBPROP_INIT_LOCATION 屬性傳遞以初始化 OLE DB 訪問接口。

 

[ @provstr = ] 'provider_string' OLE DB 訪問接口特定的連接字符串,它可標識唯一的數據源。provider_string 的數據類型爲 nvarchar(4000),默認值爲 NULL。provstr 或傳遞給 IDataInitialize 或設置爲 DBPROP_INIT_PROVIDERSTRING 屬性以初始化 OLE DB 訪問接口。

在針對 SQL 本機客戶端 OLE DB 訪問接口創建鏈接服務器後,可將 SERVER 關鍵字用作 SERVER=servername/instancename 來指定實例,以指定特定的 SQL Server 實例。servername 是運行 SQL Server 的計算機名稱,instancename 是用戶將連接到的特定 SQL Server 實例的名稱。

 

[ @catalog = ] 'catalog' 與 OLE DB 訪問接口建立連接時所使用的目錄。catalog 的數據類型爲 sysname,默認值爲 NULL。catalog 作爲 DBPROP_INIT_CATALOG 屬性傳遞以初始化 OLE DB 訪問接口。在針對 SQL Server 實例定義鏈接服務器時,目錄指向鏈接服務器映射到的默認數據庫。

 

返回代碼值(returnValue):

0(成功)或 1(失敗)

 

權限:

要求具有 ALTER ANY LINKED SERVER 權限。

 

sp_addlinkedsrvlogin
[ @rmtsrvname = ] 'rmtsrvname' 
[ , [ @useself = ] 'useself' ] 
[ , [ @locallogin = ] 'locallogin' ] 
[ , [ @rmtuser = ] 'rmtuser' ] 
[ , [ @rmtpassword = ] 'rmtpassword' ] 
注意:不能從用戶定義的事務中執行 sp_addlinkedsrvlogin。 
參數(Parameters):
[ @rmtsrvname = ] 'rmtsrvname'

應用登錄映射的鏈接服務器的名稱。rmtsrvname 的數據類型爲 sysname,沒有默認值。

[ @useself = ] 'useself' 
確定用於連接遠程服務器的登錄名。useself 的數據類型爲 varchar(8),默認值爲 TRUE。 
值爲 true 時指定登錄使用自己的憑據連接 rmtsrvname,忽略 rmtuser 和 rmtpassword 參數。
false 指定使用 rmtuser 和 rmtpassword 參數連接指定 locallogin 的 rmtsrvname。
如果 rmtuser 和 rmtpassword 也設置爲 NULL,則不使用登錄名或密碼來連接鏈接服務器。 

[ @locallogin = ] 'locallogin'

本地服務器上的登錄。locallogin 的數據類型爲 sysname,默認值爲 NULL。

NULL 指定此項應用於連接到 rmtsrvname 的所有本地登錄。

如果不爲 NULL,則 locallogin 可以是 SQL Server 登錄或 Windows 登錄。

對於 Windows 登錄來說,必須以直接的方式或通過已被授權訪問的 Windows 組成員身份授予其訪問 SQL Server 的權限。


[ @rmtuser = ] 'rmtuser'

當 useself 爲 false 時,表示用於連接 rmtsrvname 的用戶名。

rmtuser 的數據類型爲 sysname,默認值爲 NULL。


[ @rmtpassword = ] 'rmtpassword'

與 rmtuser 關聯的密碼。rmtpassword 的數據類型爲 sysname,默認值爲 NULL。

返回代碼值(returnValue):

0(成功)或 1(失敗)

 

權限:

需要對服務器具有 ALTER ANY LOGIN 權限。

 

 

--查詢示例
select   *   from   鏈接服務器名.數據庫名.dbo.表名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章