2013年8月14日 星期三

[SQL Server]建立連結伺服器(DB LINK)

情境說明:
  1. 自A資料庫能夠查詢B資料庫上的物件(ex:Table, View....)
  2. B資料庫已有帳號且有權限存取特定資料庫
  3. SQL Server 對 SQL Server
  4. 資料庫版本SQL Server 2008 R2
步驟:
  • 使用圖形介面
    1. 開啟[SQL SERVER Management Studio]
    2. 展開[伺服器物件]後在[連結的伺服器]上[右鍵],點選[新增連結的伺服器]
    3. 在[新增連結的伺服器]視窗中的[一般]頁籤依序輸入如下欄位
      • 連結的伺服器:輸入[AR]
      • 伺服器類型:點選[其他資料來源]
      • 提供者:下拉選單選[Microsoft OLE DB Provider for SQL Server]
      • 產品名稱:輸入[SQLNCLI]
      • 資料來源:輸入B主機IP[10.48.16.10]
    4. 在[新增連結的伺服器]視窗中的[安全性]頁籤依序輸入如下欄位,輸入完後按下[確定
      • 點選[使用此安全性內容建立]
      • 遠端登入:[User Name]->此User在B資料庫主機上需要有權限
      • 指定密碼:[Password]->User密碼
    5. 以上程序完成後便可使用此DB Link,例如:SELECT * from [AR]..[B資料庫名稱].[dbo].[TABLE NAME]

  • 使用T-SQL
             USE [master]
             GO
             EXEC master.dbo.sp_addlinkedserver
                 @server = N'AR',
                 @srvproduct=N'SQLNCLI',
                 @provider=N'SQLOLEDB',
                 @datasrc=N'10.48.16.10'
             GO
             USE [master]
             GO
             EXEC master.dbo.sp_addlinkedsrvlogin
                @rmtsrvname = N'AR',
                @locallogin = NULL ,
                @useself = N'False',
                @rmtuser = N'User Name',
                @rmtpassword = N'Password'
            GO
          
            P.S. sp_addlinkedserver 參數說明
                    @server = N'AR',  連結的伺服器
                    @srvproduct=N'a',  產品名稱(SQLNCLI)
                    @provider=N'SQLOLEDB', 提供者
                    @datasrc=N'b',   資料來源(預設執行個體)
                    @provstr=N'c',   提供者字串(可不填)
                    @catalog=N'd'   目錄(資料庫名稱,可不填)

參考資料及說明
  1. sp_addlinkedserver(建立連結伺服器)
  2. 連結伺服器的安全性
  3. T-SQL及圖形介面對應

沒有留言:

張貼留言