다음을 통해 공유


연결된 서버(데이터베이스 엔진)

SQL Server 데이터베이스 엔진이 SQL Server 인스턴스 외부의 OLE DB 데이터 원본에 대해 명령을 실행할 수 있도록 연결된 서버를 구성합니다. 일반적으로 연결된 서버는 데이터베이스 엔진이 SQL Server의 다른 인스턴스 또는 Oracle과 같은 다른 데이터베이스 제품의 테이블을 포함하는 Transact-SQL 문을 실행할 수 있도록 구성됩니다. 많은 형식의 OLE DB 데이터 원본은 Microsoft Access 및 Excel을 포함하여 연결된 서버로 구성할 수 있습니다. 연결된 서버는 다음과 같은 이점을 제공합니다.

  • SQL Server 외부에서 데이터에 액세스하는 기능입니다.

  • 엔터프라이즈 전체의 다른 유형의 데이터 원본에서 분산 쿼리, 업데이트, 명령 및 트랜잭션을 실행하는 기능입니다.

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

SQL Server Management Studio를 사용하거나 sp_addlinkedserver(Transact-SQL) 문을 사용하여 연결된 서버를 구성할 수 있습니다. OLE DB 공급자는 필요한 매개 변수의 유형과 수에 따라 크게 다릅니다. 예를 들어 일부 공급자는 sp_addlinkedsrvlogin(Transact-SQL)를 사용하여 연결에 대한 보안 컨텍스트를 제공해야 합니다. 일부 OLE DB 공급자를 사용하면 SQL Server에서 OLE DB 원본의 데이터를 업데이트할 수 있습니다. 다른 경우 읽기 전용 데이터 액세스만 허용합니다. 각 OLE DB 공급자에 대한 자세한 내용은 해당 OLE DB 공급자에 대한 설명서를 참조하세요.

연결된 서버 구성 요소

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

  • OLE DB 공급자

  • OLE DB 데이터 원본

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

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

비고

SQL Server 분산 쿼리는 필요한 OLE DB 인터페이스를 구현하는 모든 OLE DB 공급자와 작동하도록 설계되었습니다. 그러나 SQL Server는 SQL Server Native Client OLE DB 공급자 및 특정 다른 공급자에 대해서만 테스트되었습니다.

연결된 서버 세부 정보

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

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

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

데이터 원본이 연결된 서버를 통해 데이터를 반환하려면 해당 데이터 원본에 대한 OLE DB 공급자(DLL)가 SQL Server 인스턴스와 동일한 서버에 있어야 합니다.

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

공급자 관리

SQL Server가 레지스트리에 지정된 OLE DB 공급자를 로드하고 사용하는 방법을 제어하는 옵션 집합이 있습니다.

연결된 서버 정의 관리

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

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

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

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

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

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

연결된 서버에 대해 분산 쿼리를 실행하는 경우 쿼리할 각 데이터 원본에 대해 정규화된 네 부분으로 구성된 테이블 이름을 포함합니다. 이 네 부분으로 구성된 이름은 linked_server_name.catalogschema 형식이어야 합니다.object_name.

비고

연결된 서버는 정의된 서버를 다시 가리키도록 정의할 수 있습니다(루프백). 루프백 서버는 단일 서버 네트워크에서 분산 쿼리를 사용하는 애플리케이션을 테스트할 때 가장 유용합니다. 루프백 연결된 서버는 테스트용이며 분산 트랜잭션과 같은 많은 작업에 지원되지 않습니다.

연결된 서버 만들기(SQL Server 데이터베이스 엔진)

sp_addlinkedserver(Transact-SQL)

sp_addlinkedsrvlogin(Transact-SQL)

sp_dropserver(Transact-SQL)

sys.servers(Transact-SQL)

sp_linkedservers(Transact-SQL)