[MS-SQL] 연결된서버 사용하기 (linked server) > db

본문 바로가기
사이트 내 전체검색

db

[MS-SQL] 연결된서버 사용하기 (linked server)

페이지 정보

작성자 서방님 댓글 0건 조회 663회 작성일 18-08-17 16:27

본문

01. 연결된 서버 생성 방법

- MSSQL 연결된 서버란?

 

   MSSQL 은 연결된서버 기능을 제공하는데 이를 이용하면 다른 네트워크의 데이터베이스를 원격으로 접속하여

   사용할 수 있도록 해줍니다.



 - MSSQL 연결된 서버 생성

 

   EXEC sp_addlinkedserver

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

      @srvproduct = '',

      @provider = 'SQLOLEDB',

      @datasrc = '[서버 아이피]',

      @catalog = '[데이터 베이스명]'

 

 - MSSQL 연결계정 생성

 

   EXEC sp_addlinkedsrvlogin

      @rmtsrvname= '[연결된 서버별칭]',

      @useself= 'false',

      @rmtuser = '[사용자 이름]',

      @rmtpassword = '[사용자 암호]'

 

02. 연결된 서버 확인 방법

- MSSQL 연결된 서버 확인

 

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

 

 

 - MSSQL 연결계정 확인

 

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

 

03. 연결된 서버 이용 방법

- MSSQL 연결된 서버 이용방법

 

   연결된 서버를 등록한 후 사용하려면 [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명]

   형태로 호출하여 사용할 수 있습니다.

   SELECT 쿼리를 예로 들면 아래와 같습니다.

 


 - MSSQL 일반서버에 SELECT 쿼리시

 

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

 

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

 

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


04. 연결된 서버 삭제 방법

- MSSQL 연결된 서버 삭제

 

   EXEC sp_dropserver

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

 

 - MSSQL 연결계정 삭제

 

   EXEC sp_droplinkedsrvlogin

      @rmtsrvname= '[연결된 서버별칭]',

      @locallogin = NULL


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

 

   연결된 서버를 삭제하기 위해서는 sp_droplinkedsrvlogin 을 이용하여 연결계정을 먼저 삭제하고

   sp_dropserver 를 이용하여 연결된 서버를 삭제하여야 합니다.

 


05. 연결된 서버 예제

- 예제 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'


댓글목록

등록된 댓글이 없습니다.

Total 464건 2 페이지
게시물 검색

회원로그인

접속자집계

오늘
91
어제
84
최대
1,347
전체
154,462
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.