카테고리 없음2008. 7. 17. 14:42

이제 [보안] 탭과 [서버 옵션] 탭에 내용을 입력해야 합니다. 우선 [보안] 탭을 살펴 보도록 하겠습니다.


[그림 5]

[그림 5]에서 맨 위의 "로컬 서버 로그인과 원격 서버 로그인 매핑" 부분은 "로컬 로그인"에 지정된 계정으로 로컬 서버로 로그인 해서 연결된 서버에 접속을 하면 "원격 사용자"에 지정된 계정과 "원격 암호"로 지정된 암호를 이용해서 접속한 것으로 가장하라는 설정을 하는 것입니다. 예를 들어 FUTURE 서버에 jangrae 계정이 있고 FUTURE\INST01 서버에 james 라는 계정이 있는 상태에서 jangrae 계정으로 FUTURE 서버에 로그인 한 후 연결된 서버 FUTURE\INST01에 접속하면 james 계정으로 접속 한 것처럼 하고자 하는 경우 다음과 같이 설정하면 됩니다.


[그림 6]

위 [그림 6]에서 "가장" 부분은 원격 서버(연결된 서버 FUTURE\INST01)에 jangrae 라은 계정이 존재 할 경우 체크해 주면 됩니다. [그림 6]의 경우는 로컬 서버(FUTURE)와 원격 서버(FUTURE\INST01)의 계정이 다르기 때문에 계정과 암호를 지정해 준 것입니다.

현재 FUTURE 서버에는 jangrae 계정이 등록되어 있고, FUTURE\INST01 서버에는 james 계정이 등록되어 있는 상태이므로 위 작업이 가능한 것입니다.

[그림 6]에서 지정하는 것은 양쪽 서버(로컬 서버와 원격 서버)의 계정을 1:1 로 지정해주고 있습니다. 하지만 이렇게 계정을 개별적으로 지정하지 않고 연결된 서버를 사용하기 위해서는 아래 부분 "위 목록에서 정의..." 부분을 사용하면 됩니다. 만일 로컬 서버(FUTURE)에 어떤 계정으로 연결되었든지간에 원격 서버(FUTURE\INST01)에 언결된 서버로 연결할 경우 james 계정으로 연결이 되도록 하기 위해서는 다음 [그림 7]과 같이 지정하면 됩니다.


[그림 7]

이렇게 되면 FUTURE 서버에 로그인 하더라도 FUTURE\INST01을 james 계정에 설정된 권한을 이용해 접근해 데이터를 사용 할 수 있습니다. 연결된 서버를 설정할 경우 적절한 권한을 갖고 접근 할 수 있도록 [그림 7]에서 설정을 해주어야 합니다. 만일 [그림 7]에서 FUTURE\INST01의 sa 계정과 암호를 지정하게 되면 FUTURE 서버에 로그인 해서 FUTURE\INST01을 다음대로 접근해 데이터베이스를 사용할 수 있게 됩니다. 이런 방법 보다는 적절한 권한을 갖는 계정을 FUTURE\INST01에 설정하고 그 계정을 이용해 접근이 되도록 지정해야 합니다. [그림 7]에서 지정된 james 계정의 경우 FUTURE\INST01 서버에서 Pubs 데이터베이스에 대한 접근 권한만이 설정되었기 때문에 Pubs 데이터베이스 이외의 데이터베이스에는 접근을 할 수 없게 됩니다.

나머지 설정 부분은 [도움말] 버튼을 눌러 도움말을 참조하여 그 역할을 필히 확인하시기 바랍니다. 아래 [그림 8]은 FUTURE\INST01 서버가 FUTURE 서버에 연결된 서버로 등록되어 테이블 목록이 표시되고 있는 내용입니다.


[그림 8]

위 [그림 8]에서 오른쪽에 표시된 테이블들은 FUTURE\INST01 서버의 Pubs 데이터베이스의 테이블 들입니다. 왜 Pubs 데이터베이스의 테이블이 표시되고 있을 까요?

그 이유는 연결된 서버 설정시 지정된 james 계정의 기본 데이터베이스가 Pubs 이기 때문입니다.

Posted by penguindori
카테고리 없음2008. 7. 17. 14:31
http://blog.naver.com/oyukihana?Redirect=Log&logNo=60002506931

두 개의 MS SQL 서버가 존재한다고 가정을 하겠습니다. 그리고 서버의 이름은 SVR1과 SVR2라고 가정을 하겠습니다. 이런 상황에서 SVR1의 데이터베이스에 연결이 된 상태에서 SVR2 서버의 데이터베이스 내용을 참고해야 하는 경우가 발생 할 수 있습니다. 실제 업무에서 본다면 회계용 MS SQL 서버에 접속한 상태에서 특별한 목적으로 인사용 MS SQL 서버의 데이터베이스의 내용이 필요한 경우가 발생할 수 있습니다.

얼핏 생각하기에 두 서버가 MS SQL 서버가 설치가 되어 있고 네트워크로 연결이 되어 있으므로 그냥 쿼리문을 수행하면 될거라 생각하지만 그렇지 않습니다.

이 처럼 다른 MS SQL와 연결하여 작업을 해야하는 경우 사용되는 것이 연결된 서버(Linked Server)입니다. 연결된 서버를 이용하게 되면 다른 서버에 위치하고 있는 데이터베이스를 손쉽게 접근할 수 있으며, 심지어는 MS SQL 서버가 아니더라도 다른 종류의 데이터를 쉽게 접근 할 수 있습니다. 예를 들어 엑셀 파일을 데이터베이스 서버처럼 사용 할 수 도 있고 심지어 텍스트 파일도 데이터베이스 서버처럼 사용을 할 수 도 있습니다. 이에 대한 내용들을 살펴보도록 하겠습니다.

1. 연결된 서버 만들기

대부분의 작업들이 그러하듯이 연결된 서버를 만드는 것은 EM(Enterprise Manager)를 이용해서도 가능하고 QA(Query Analyzer)를 이용해서도 가능합니다. 이 두가지 방법은 순서대로 살펴보도록 하겠습니다.

그런데 이 강좌에 있어 전제 사항이 있습니다. 연결된 서버의 경우 두대의 MS SQL 서버를 연결해야 하는데 이 강좌를 작성하고 있는 지금 제게는 두대의 MS SQL 서버가 없습니다. 이런 이유도 강좌를 작성하는데는 두개의 MS SQL 서버 인스턴스를 사용하도록 하겠습니다. MS SQL 서버 2000은 하나의 서버에 여러개의 MS SQL 서버를 만들 수 있습니다. 이것이 인스턴스 입니다. 처음에 기본 인스턴스로 설치되면 이때 설치된 MS SQL 서버가 서버 이름이 되며 그 이후에 설치되는 MS SQL 서버는 "서버이름\인스턴스이름"을 이름으로 갖게 됩니다.

이 강좌에서는 다음의 인스턴스가 사용됩니다.

o FUTURE
o FUTURE\INST01

위 두개의 인스턴스가 개별적인 MS SQL 서버라고 생각하시고 강좌를 이해하시면 됩니다. 다음 [그림 1]은 두개의 인스턴스가 설치어 EM에 등록된 모습을 보여주고 있습니다.


[그림 1]

이제 하려고 하는 것은 FUTURE 서버에 접속을 해서 FUTURE\INST01 서버의 데이터베이스를 사용 할 수 있도록 FUTURE\INST01서버를 FUTURE 서버에 연결된 서버로 등록하는 것입니다. 만일 지금 상황에서 FUTURE 서버에 로그인 해서 다음과 같이 FUTURE\INST01 서버의 Pubs 데이터베이스에서 검색을 하려고 하면 어떻게 될까요?


SELECT * FROM [FUTURE\INST01].Pubs.dbo.Titles

다음과 같은 에러가 발생하게 됩니다.


서버: 메시지 7202, 수준 11, 상태 2, 줄 1
sysservers에서 'FUTURE\INST01' 서버를 찾을 수 없습니다. sp_addlinkedserver를 실행하여 sysservers에 서버를 추가하십시오.

위 에러메세지만 보아도 연결된 서버(Linked Server)를 만들어야 위 쿼리문이 제대로 수행되며 연결된 서버를 만드는 시스템 저장프로시져가 sp_addlinkedserver 임을 알 수 있습니다. 이 저장프로시져는 뒤에서 살펴보도록 하고 우선 EM을 통해 연결된 서버를 만들어 보도록 하겠습니다.

EM에서 연결된 서버를 등록하는 부분은 다음 [그림 2]와 같이 [보안] 부분의 [연결된 서버] 부분 입니다. 현재는 연결된 서버가 전혀 등록되어 있지 않음을 알 수 있습니다.


[그림 2]

[그림 2]의 "연결된 서버" 에서 마우스 오른쪽 버튼을 눌러 표시되는 단축 메뉴에서 "새 연결된 서버(S)"를 선택하면 다음 [그림 3]과 같이 "연결된 서버 속성" 대화 창이 표시됩니다.


[그림 3]

위 [그림 3]에서 [일반] 탭을 보면 입력할 사항들이 많습니다. 하지만 MS SQL 서버를 연결된 서버로 등록하는 경우는 "연결된 서버" 이름만 입력하고 "서버 유형"에서 "SQL Server" 만 선택하면 됩니다. 다머지 항목들은 MS SQL 서버가 아닌 다른 DBMS와 연결을 하는 경우에 사용됩니다. 이 부분은 나중에 사용을 해보도록 하겠습니다.

저희가 연결된 서버로 등록하려고 하는 것은 FUTURE\INST01 서버입니다. 이 서버를 등록하기 위해 다음 [그림 4] 처럼 입력과 선택을 하면 됩니다.


[그림 4]

Posted by penguindori