연결된 서버(데이터베이스 엔진)Linked Servers (Database Engine)

SQL Server 데이터베이스 엔진SQL Server Database Engine 에서 SQL ServerSQL Server인스턴스 외부의 OLE DB 데이터 원본에 대해 명령을 실행할 수 있도록 연결된 서버를 구성합니다.Configure a linked server to enable the SQL Server 데이터베이스 엔진SQL Server Database Engine to execute commands against OLE DB data sources outside of the instance of SQL ServerSQL Server. 일반적으로 연결된 서버는 데이터베이스 엔진Database Engine 에서 Transact-SQLTransact-SQL 의 다른 인스턴스 또는 Oracle과 같은 다른 데이터베이스 제품에 있는 테이블이 포함된 SQL ServerSQL Server문을 실행할 수 있도록 구성됩니다.Typically linked servers are configured to enable the 데이터베이스 엔진Database Engine to execute a Transact-SQLTransact-SQL statement that includes tables in another instance of SQL ServerSQL Server, or another database product such as Oracle. MicrosoftMicrosoft Access 및 Excel을 포함한 많은 유형의 OLE DB 데이터 원본을 연결된 서버로 구성할 수 있습니다.Many types OLE DB data sources can be configured as linked servers, including MicrosoftMicrosoft Access and Excel. 연결된 서버에는 다음과 같은 이점이 있습니다.Linked servers offer the following advantages:

  • SQL ServerSQL Server외부에서 데이터에 액세스할 수 있습니다.The ability to access data from outside of SQL ServerSQL Server.

  • 기업 전체에 걸쳐 유형이 다른 데이터 원본에 대해 분산 쿼리, 업데이트, 명령, 트랜잭션 등을 수행할 수 있습니다.The ability to issue distributed queries, updates, commands, and transactions on heterogeneous data sources across the enterprise.

  • 다양한 데이터 원본을 유사하게 처리할 수 있습니다.The ability to address diverse data sources similarly.

    SQL Server Management StudioSQL Server Management Studio 를 사용하거나 sp_addlinkedserver (Transact-SQL) 문을 사용하여 연결된 서버를 구성할 수 있습니다.You can configure a linked server by using SQL Server Management StudioSQL Server Management Studio or by using the sp_addlinkedserver (Transact-SQL) statement. OLE DB Provider에 따라 필요한 매개 변수의 유형과 개수가 크게 다릅니다.OLE DB providers vary greatly in the type and number of parameters required. 예를 들어 일부 공급자는 sp_addlinkedsrvlogin(Transact-SQL)인스턴스 외부의 OLE DB 데이터 원본에 대해 명령을 실행할 수 있도록 연결된 서버를 구성합니다.For example some providers require you to provide a security context for the connection using sp_addlinkedsrvlogin (Transact-SQL). 일부 OLE DB Provider는 SQL ServerSQL Server 를 통해 OLE DB 원본에서 데이터를 업데이트하도록 허용합니다.Some OLE DB providers allow SQL ServerSQL Server to update data on the OLE DB source. 다른 일부 공급자는 읽기 전용 데이터 액세스만 제공합니다.Others provide only read-only data access. 각 OLE DB Provider에 대한 자세한 내용은 해당 OLE DB Provider에 대한 설명서를 참조하십시오.For information about each OLE DB provider, consult documentation for that OLE DB provider.

연결된 서버 구성 요소Linked Server Components

연결된 서버 정의는 다음과 같은 개체를 지정합니다.A linked server definition specifies the following objects:

  • OLE DB ProviderAn OLE DB provider

  • OLE DB 데이터 원본An OLE DB data source

    OLE DB Provider 는 특정 데이터 원본과 상호 작용하고 관리하는 DLL입니다.An OLE DB provider is a DLL that manages and interacts with a specific data source. OLE DB 데이터 원본 은 OLE DB를 통해 액세스할 수 있는 특정 데이터베이스를 식별합니다.An OLE DB data source identifies the specific database that can be accessed through OLE DB. 연결된 서버 정의를 통해 쿼리되는 데이터 원본은 일반적으로 데이터베이스이지만 OLE DB Provider에는 여러 파일 및 파일 형식이 존재합니다.Although data sources queried through linked server definitions are ordinarily databases, OLE DB providers exist for a variety of files and file formats. 여기에는 텍스트 파일, 스프레드시트 데이터 및 전체 텍스트 내용의 검색 결과가 포함됩니다.These include text files, spreadsheet data, and the results of full-text content searches.

    MicrosoftMicrosoft SQL ServerSQL Server Native Client OLE DB 공급자(PROGID: SQLNCLI11)는 SQL ServerSQL Server에 대한 공식적인 OLE DB 공급자입니다.The MicrosoftMicrosoft SQL ServerSQL Server Native Client OLE DB Provider (PROGID: SQLNCLI11) is the official OLE DB provider for SQL ServerSQL Server.

참고

SQL ServerSQL Server 분산 쿼리는 필수 OLE DB 인터페이스를 구현하는 모든 OLE DB Provider에서 실행되도록 디자인되었습니다. distributed queries are designed to work with any OLE DB provider that implements the required OLE DB interfaces. 그러나 SQL ServerSQL ServerSQL ServerSQL Server Native Client OLE DB Provider와 다른 특정 공급자에 대해서만 테스트되었습니다.However, SQL ServerSQL Server has been tested against only the SQL ServerSQL Server Native Client OLE DB Provider and certain other providers.

연결된 서버 정보Linked Server Details

다음 그림은 연결된 서버 구성의 기본 사항을 보여 줍니다.The following illustration shows the basics of a linked server configuration.

클라이언트 계층, 서버 계층 및 데이터베이스 서버 계층Client tier, server tier, and database server tier

연결된 서버는 일반적으로 분산 쿼리를 처리하는 데 사용됩니다.Typically, linked servers are used to handle distributed queries. 클라이언트 응용 프로그램이 연결된 서버를 통해 분산 쿼리를 실행할 때 SQL ServerSQL Server 는 명령을 구문 분석하고 OLE DB로 요청을 보냅니다.When a client application executes a distributed query through a linked server, SQL ServerSQL Server parses the command and sends requests to OLE DB. 행 집합 요청은 공급자에 대해 쿼리를 실행하거나 공급자로부터 기본 테이블을 여는 형식일 수 있습니다.The rowset request may be in the form of executing a query against the provider or opening a base table from the provider.

연결된 서버를 통해 데이터를 반환하는 데이터 원본의 경우 해당 데이터 원본에 대한 OLE DB Provider(DLL)는 SQL ServerSQL Server인스턴스와 같은 서버에 있어야 합니다.For a data source to return data through a linked server, the OLE DB provider (DLL) for that data source must be present on the same server as the instance of SQL ServerSQL Server.

타사 OLE DB Provider를 사용하는 경우 SQL ServerSQL Server 서비스가 실행되는 계정에는 공급자가 설치된 디렉터리 및 모든 하위 디렉터리에 대한 읽기 및 실행 권한이 있어야 합니다.When a third-party OLE DB provider is used, the account under which the SQL ServerSQL Server service runs must have read and execute permissions for the directory, and all subdirectories, in which the provider is installed.

공급자 관리Managing Providers

일련의 옵션을 사용하여 SQL ServerSQL Server 에서 레지스트리에 지정된 OLE DB Provider를 로드하고 사용하는 방법을 제어할 수 있습니다.There is a set of options that control how SQL ServerSQL Server loads and uses OLE DB providers that are specified in the registry.

연결된 서버 정의 관리Managing Linked Server Definitions

연결된 서버를 설정할 때 연결 정보와 데이터 원본 정보를 SQL ServerSQL Server에 등록합니다.When you are setting up a linked server, register the connection information and data source information with SQL ServerSQL Server. 등록한 후에는 단일 논리적 이름으로 데이터 원본을 참조할 수 있습니다.After registered, that data source can be referred to with a single logical name.

저장 프로시저와 카탈로그 뷰를 사용하여 연결된 서버 정의를 다음과 같이 관리할 수 있습니다.You can use stored procedures and catalog views to manage linked server definitions:

  • sp_addlinkedserver를 실행하여 연결된 서버 정의를 만듭니다.Create a linked server definition by running sp_addlinkedserver.

  • SQL ServerSQL Server sys.servers 시스템 카탈로그 뷰에 대해 쿼리를 실행하여 특정 인스턴스에 정의된 연결된 서버에 대한 정보를 봅니다.View information about the linked servers defined in a specific instance of SQL ServerSQL Server by running a query against the sys.servers system catalog views.

  • sp_dropserver를 실행하여 연결된 서버 정의를 삭제합니다.Delete a linked server definition by running sp_dropserver. 사용자는 이 저장 프로시저를 사용하여 원격 서버를 제거할 수 있습니다.You can also use this stored procedure to remove a remote server.

    또한 SQL Server Management StudioSQL Server Management Studio를 사용하여 연결된 서버를 정의할 수 있습니다.You can also define linked servers by using SQL Server Management StudioSQL Server Management Studio. 개체 탐색기에서 서버 개체를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 선택하고 연결된 서버를 선택합니다.In the Object Explorer, right-click Server Objects, select New, and select Linked Server. 연결된 서버 이름을 마우스 오른쪽 단추로 클릭하고 삭제를 선택하면 연결된 서버 정의를 삭제할 수 있습니다.You can delete a linked server definition by right-clicking the linked server name and selecting Delete.

    연결된 서버에 대해 분산 쿼리를 실행할 경우 각 데이터 원본에서 쿼리할 정식 이름인, 네 부분으로 된 테이블 이름이 포함됩니다.When you execute a distributed query against a linked server, include a fully qualified, four-part table name for each data source to query. 네 부분으로 된 이 이름은 linked_server_name.catalog.schema.object_name형식이어야 합니다.This four-part name should be in the form linked_server_name.catalog.schema.object_name.

참고

연결된 서버는 이 서버가 정의된 서버의 포인트 백(루프백)에 정의될 수 있습니다.Linked servers can be defined to point back (loop back) to the server on which they are defined. 단일 서버 네트워크에서 분산 쿼리를 사용하는 응용 프로그램을 테스트할 때 루프백 서버를 유용하게 사용할 수 있습니다.Loopback servers are most useful when testing an application that uses distributed queries on a single server network. 루프백 연결된 서버는 테스트를 위한 것이며 분산 트랜잭션과 같은 많은 작업에 지원되지 않습니다.Loopback linked servers are intended for testing and are not supported for many operations, such as distributed transactions.

연결된 서버 만들기(SQL Server 데이터베이스 엔진)Create Linked Servers (SQL Server Database Engine)

sp_addlinkedserver(Transact-SQL)sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin(Transact-SQL)sp_addlinkedsrvlogin (Transact-SQL)

sp_dropserver(Transact-SQL)sp_dropserver (Transact-SQL)

sys.servers(Transact-SQL)sys.servers (Transact-SQL)

sp_linkedservers(Transact-SQL)sp_linkedservers (Transact-SQL)