[MSSQL] 링크서버 사용법( linkedserver)

[MSSQL] 링크서버 사용법( linkedserver)

mssql에서 다른 데이터 베이스 에 있는 테이블에 접근하고자 한다면 같은 서버의경우에는 아래와 같이 간단하게 접근이 가능합니다.

EX) SELECT * FROM ANOTHERDATABASE.OWNER.TABLENAME

-> select * from dbname2.odb.tablename

하지만 물리적으로 분리된 다른 서버에 있는테이블에 접근하고자 한다면 어떻게해야 할까요?

답은 링크서버입니다. 먼저 접근하고 싶은 서버로 링크(연결)를 걸고 그런다음 쿼리를 날려주면 됩니다.

오늘은 mssql에서 링크서버를 구성하는 방법과 로그인, 그리고 활용법에 대해서 알아보겠습니다.

1. 해당 원격지 서버에 링크를 구성

EXEC sp_addlinkedserver

@server=’link_server’, — 링크 서버이름 (ex: my_link)

@provider = ‘SQLOLEDB’, — 해당 디비에 맞는 공급자를 선택

@datasrc = ‘127.0.0.1’, — 아이피 (정확히는 네트워크 이름을 적어줍니다.)

@catalog=’DBNAME’ — 카다로그 이름(안적어도 상관없어요)

2. 해당 원격지 서버에 로그인을 합니다.

EXEC sp_addlinkedsrvlogin

     @rmtsrvname = ‘link_server’ –링크 서버이름

     @useself = ‘TRUE’ | ‘FALSE’ | ‘NULL’ –로컬이면 ture, 로그인 패스워드 넣어야 하면 false
     @locallogin = ‘locallogin’  –도메인상의 유저를 지정( 생략가능)
     @rmtuser = ‘rmtuser’  –유저ID
     @rmtpassword = ‘rmtpassword’ –유저 패스워드

아래와 같이 적어도 무방해요..^^

EX) EXEC sp_addlinkedsrvlogin ‘link_server’, ‘false’, NULL, ‘ID’, ‘PASSWORD’

3. 링크서버 구성이 잘 이루어 졌는지 테스트

EXEC sp_testlinkedserver 

     @servername = ‘link_server’

결과 성공 = 0

     실패 = 1

4. 접근해서 select

링크된 서버로 접근해서 select 를 해봅니다.

EX) select * from openquery(link_server, ‘select * from tableA’)

5. 원격지 서버에서 로그아웃

사실 별 필요 없는 아이 같지만 일단 적어두겠습니다.

EXEC sp_droplinkedsrvlogin 

       @rmtsrvname= ‘link_server’

6. 현재 로컬 서버에 링크서버 구성 목록을 보기

EXEC  sp_linkedservers

주의사항

링크서버를 만들때 권한 에러가나면 링크서버를 구성하려는유저에게

ALTER ANY LINKED SERVER 라는 권한이 있는가 확인하고 없으면 권한설정부터 해주어야 합니다.

————————————–

출처 : http://jajking-textcube.blogspot.kr/2009/08/mssql-%EB%A7%81%ED%81%AC%EC%84%9C%EB%B2%84-%EC%82%AC%EC%9A%A9%EB%B2%95-linkedserver.html

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다