서버 연결

연결된 서버를 구성하면 SQL Server에서 원격 서버에 있는 OLE DB 데이터 원본에 대해 명령을 실행할 수 있습니다. 연결된 서버에는 다음과 같은 이점이 있습니다.

  • 원격 서버 액세스

  • 기업 전체에 걸쳐 유형이 다른 데이터 원본에 대해 분산 쿼리, 업데이트, 명령, 트랜잭션 등을 수행할 수 있습니다.

  • 다양한 데이터 원본을 유사하게 처리할 수 있습니다.

연결된 서버 구성 요소

연결된 서버 정의는 다음과 같은 개체를 지정합니다.

  • OLE DB 공급자

  • OLE DB 데이터 원본

OLE DB 공급자는 특정 데이터 원본과 상호 작용하고 관리하는 DLL입니다. OLE DB 데이터 원본은 OLE DB를 통해 액세스할 수 있는 특정 데이터베이스를 식별합니다. 연결된 서버 정의를 통해 쿼리되는 데이터 원본은 일반적으로 데이터베이스이지만 OLE DB 공급자에는 여러 파일 및 파일 형식이 존재합니다. 여기에는 텍스트 파일, 스프레드시트 데이터 및 전체 텍스트 내용의 검색 결과가 포함됩니다.

MicrosoftSQL Server Native Client OLE DB 공급자(PROGID: SQLNCLI10)는 공식 SQL Server용 OLE DB 공급자입니다.

[!참고]

SQL Server 분산 쿼리는 필수 OLE DB 인터페이스를 구현하는 모든 OLE DB 공급자에서 실행되도록 디자인되었습니다. 그러나 SQL Server는 SQL Server Native Client OLE DB 공급자와 다른 특정 공급자에 대해서만 테스트되었습니다. 자세한 내용은 SQL Server로 테스트한 OLE DB 공급자를 참조하십시오.

연결된 서버 정보

다음 그림은 연결된 서버 구성의 기본 사항을 보여 줍니다.

클라이언트 계층, 서버 계층 및 데이터베이스 서버 계층

연결된 서버는 일반적으로 분산 쿼리를 처리하는 데 사용됩니다. 클라이언트 응용 프로그램이 연결된 서버를 통해 분산 쿼리를 실행할 때 SQL Server는 명령을 구문 분석하고 OLE DB로 요청을 보냅니다. 행 집합 요청은 공급자에 대해 쿼리를 실행하거나 공급자로부터 기본 테이블을 여는 형식일 수 있습니다.

연결된 서버를 통해 데이터를 반환하는 데이터 원본의 경우 해당 데이터 원본에 대한 OLE DB 공급자(DLL)는 SQL Server 인스턴스와 같은 서버에 있어야 합니다.

타사 OLE DB 공급자를 사용하는 경우 SQL Server 서비스가 실행되는 계정에는 공급자가 설치된 디렉터리 및 모든 하위 디렉터리에 대한 읽기 및 실행 권한이 있어야 합니다.

공급자 관리

일련의 옵션을 사용하여 SQL Server에서 레지스트리에 지정된 OLE DB 공급자를 로드하고 사용하는 방법을 제어할 수 있습니다. 자세한 내용은 분산 쿼리를 위한 OLE DB 공급자 구성을 참조하십시오.

연결된 서버 정의 관리

연결된 서버를 설정할 때 연결 정보와 데이터 원본 정보를 SQL Server에 등록합니다. 등록한 후에는 단일 논리적 이름으로 데이터 원본을 참조할 수 있습니다.

저장 프로시저와 카탈로그 뷰를 사용하여 연결된 서버 정의를 다음과 같이 관리할 수 있습니다.

  • sp_addlinkedserver를 실행하여 연결된 서버 정의를 만듭니다.

  • sys.servers 시스템 카탈로그 뷰에 대해 쿼리를 실행하여 특정 SQL Server 인스턴스에 정의된 연결된 서버에 대한 정보를 봅니다.

  • sp_dropserver를 실행하여 연결된 서버 정의를 삭제합니다. 사용자는 이 저장 프로시저를 사용하여 원격 서버를 제거할 수 있습니다.

또한 SQL Server Management Studio를 사용하여 연결된 서버를 정의할 수 있습니다. 개체 탐색기에서 서버 개체를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 선택하고 연결된 서버를 선택합니다. 연결된 서버 이름을 마우스 오른쪽 단추로 클릭하고 삭제를 선택하면 연결된 서버 정의를 삭제할 수 있습니다.

연결된 서버에 대해 분산 쿼리를 실행할 경우 각 데이터 원본에서 쿼리할 정식 이름인, 네 부분으로 된 테이블 이름이 포함됩니다. 이 네 부분으로 된 이름은 linked_server_name.catalog**.schema.**object_name 형식이어야 합니다. 자세한 내용은 분산 쿼리를 참조하십시오.