다음은 MSSQL에서 다른 네트워크의 MSQL DB를 연결하고, 연결한 DB의 테이블을 조회하는 방법이다.
1. MSSQL DB LINK 서버 생성 (빨간색 글자인 부분만 수정 필요)
EXEC sp_addlinkedserver
@server = 'TEST_DBLINK', -- 서버 별칭
@srvproduct = '',
@provider = 'SQLOLEDB',
@datasrc = '121.71.171.71', -- 연결할 DB 서버 IP
@catalog = 'TEST_DB' -- 연결할 DB 명
2. DB LINK 생성 여부 확인
SELECT * FROM master.dbo.sysservers
3. 연결 계정 생성
EXEC sp_addlinkedsrvlogin
@rmtsrvname= 'TEST_DBLINK', -- 서버 별칭
@useself= 'false',
@rmtuser = 'test', -- 연결할 DB의 계정 이름
@rmtpassword = 'test1234!' -- 연결할 DB의 계정 패스워드
4. 연결 계정 생성 여부 확인
SELECT * FROM master.sys.linked_logins
WHERE remote_name = 'test'
5. 연결한 DB의 테이블 조회하기
블로그에 보면, SELECT * FROM 서버별칭.DB명.연결한DB계정.테이블명 으로 조회하라고 되어 있는 글이 있어서
SELECT * FROM TEST_DBLINK.TEST_DB.test.BOARD; 로 조회 했더니 테이블을 찾을 수 없다는 오류 발생
그래서 연결한 db계정이 아닌 소유자로 변경하여 조회하였더니 성공!!
SELECT * FROM TEST_DBLINK.TEST_DB.dbo.BOARD;