linked server 셋팅 및 사용

 - MSSQL 연결된 서버 생성


   EXEC sp_addlinkedserver
      @server = '[연결된 서버별칭]',
      @srvproduct = '',
      @provider = 'SQLOLEDB',
      @datasrc = '[서버 아이피]',
      @catalog = '[데이터 베이스명]'

 - MSSQL 연결계정 생성


   EXEC sp_addlinkedsrvlogin
      @rmtsrvname= '[연결된 서버별칭]',
      @useself= 'false',
      @rmtuser = '[(연결할 서버의)사용자 이름]',
      @rmtpassword = '[(연결할 서버의)사용자 암호]'

 - MSSQL 연결된 서버 확인

   SELECT FROM master.dbo.sysservers WHERE srvname = '[연결된 서버별칭]'

 - MSSQL 연결계정 확인


   SELECT FROM master.sys.linked_logins WHERE remote_name = '[사용자 이름]'

 - MSSQL 연결된 서버 이용방법

   연결된 서버를 등록한 후 사용하려면 [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명]
   형태로 호출하여 사용할 수 있습니다.
   SELECT 쿼리를 예로 들면 아래와 같습니다.


 - MSSQL 일반서버에 SELECT 쿼리시


​   SELECT [컬럼명] FROM [테이블명] WHERE [조건절]

 - MSSQL 연결된 서버에 SELECT 쿼리시


​   SELECT [컬럼명] FROM [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명] WHERE [조건절]

 - MSSQL 연결된 서버 삭제


   EXEC sp_dropserver
      @server = '[연결된 서버별칭]'

 - MSSQL 연결계정 삭제


   EXEC sp_droplinkedsrvlogin
      @rmtsrvname= '[연결된 서버별칭]',
      @locallogin = NULL

 [참고사항] 연결된 서버 삭제

   연결된 서버를 삭제하기 위해서는 sp_droplinkedsrvlogin 을 이용하여 연결계정을 먼저 삭제하고
   sp_dropserver 를 이용하여 연결된 서버를 삭제하여야 합니다.


 - 예제 1

   아래와 같은 정보를 갖는 연결된 서버를 생성하시오.


항목
상세 내용
연결된 서버별칭
linkedserver
서버 아이피
192.168.1.3
데이터 베이스명
test
사용자 이름
id
사용자 암호
password

 예제 1 쿼리

   EXEC sp_addlinkedserver
      @server = 'linkedserver',
      @srvproduct = '',
      @provider = 'SQLOLEDB',
      @datasrc = '192.168.1.3',
      @catalog = 'test'

   EXEC sp_addlinkedsrvlogin
      @rmtsrvname= 'linkedserver',
      @useself= 'false',
      @rmtuser = 'id',
      @rmtpassword = 'password'

 - 예제 2

   예제1에서 생성한 연결된 서버와 연결계정을 확인하시오.



 - 예제 2 연결된 서버 생성여부 확인

   SELECT FROM master.dbo.sysservers WHERE srvname = 'linkedserver'

srvid
srvstatus
srvname
1
1184
linkedserver

 - 예제 2 연결계정 생성여부 확인

   SELECT FROM master.sys.linked_logins WHERE remote_name = 'id'

server_id
local_principal_id
uses_self_credential
remote_name
modify_date
1
0
0
id
2015-03-22 16:11:41.637

srvid
srvstatus
srvname
1
1184
linkedserver

 - 예제 3

   예제1에서 생성한 연결된 서버를 이용하여 아래와 같은 테이블의 내용을 조회하시오.


 - 192.168.1.3 서버 test.dbo.성적 테이블
일련번호
이름
점수
1
홍길동
90
2
일지매
95
3
임꺽정
85

 - 예제 3 쿼리

   SELECT 일련번호이름점수 FROM linkedserver.test.dbo.성적

일련번호
이름
점수
1
홍길동
90
2
일지매
95
3
임꺽정
85

 - 예제 4

   예제1에서 생성한 연결된 서버와 연결계정을 삭제하시오.


 - 예제 4 쿼리


   EXEC sp_droplinkedsrvlogin
      @rmtsrvname= 'linkedserver',
      @locallogin = NULL

   EXEC sp_dropserver
      @server = 'linkedserver'

원본
https://m.blog.naver.com/PostView.nhn?blogId=diceworld&logNo=220311810558&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
Previous
Next Post »