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

이전 버전의 SQL Server와 관련 된 콘텐츠를 참조 하십시오. 연결된 서버 만들기(SQL Server 데이터베이스 엔진)합니다..For content related to previous versions of SQL Server, see Create Linked Servers (SQL Server Database Engine).

이 항목에서는 SQL ServerSQL Server 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 연결된 서버를 만들고 다른 Transact-SQLTransact-SQL의 데이터에 액세스하는 방법을 보여 줍니다.This topic shows how to create a linked server and access data from another SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 연결된 서버를 만들면 여러 원본의 데이터로 작업할 수 있습니다.By creating a linked server, you can work with data from multiple sources. 연결된 서버는 반드시 SQL ServerSQL Server의 다른 인스턴스일 필요는 없지만 이것이 일반적인 시나리오입니다.The linked server does not have to be another instance of SQL ServerSQL Server, but that is a common scenario.

배경 Background

연결된 서버를 만들면 OLE DB 데이터 원본과 유형이 다른 분산 쿼리에 액세스할 수 있습니다.A linked server allows for access to distributed, heterogeneous queries against OLE DB data sources. 연결된 서버를 만든 후 이 서버에 대해 분산 쿼리를 실행할 수 있으며 쿼리로 둘 이상의 데이터 원본의 테이블을 조인할 수 있습니다.After a linked server is created, distributed queries can be run against this server, and queries can join tables from more than one data source. 연결된 서버를 SQL ServerSQL Server인스턴스로 정의한 경우에는 원격 저장 프로시저를 실행할 수 있습니다.If the linked server is defined as an instance of SQL ServerSQL Server, remote stored procedures can be executed.

연결된 서버의 기능 및 필수 인수는 크게 다를 수 있습니다.The capabilities and required arguments of the linked server can vary significantly. 이 항목의 예에서는 일반적인 예제를 제공하지만 모든 옵션에 대해 설명하지는 않습니다.The examples in this topic provide a typical example but all options are not described. 자세한 내용은 sp_addlinkedserver(Transact-SQL)의 데이터에 액세스하는 방법을 보여 줍니다.For more information, see sp_addlinkedserver (Transact-SQL).

보안 Security

사용 권한Permissions

Transact-SQLTransact-SQL 문을 사용할 때는 서버에 대한 ALTER ANY LINKED SERVER 권한 또는 setupadmin 고정 서버 역할의 멤버 자격이 필요합니다.When using Transact-SQLTransact-SQL statements, requires ALTER ANY LINKED SERVER permission on the server or membership in the setupadmin fixed server role. Management StudioManagement Studio 를 사용할 때는 CONTROL SERVER 권한 또는 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.When using Management StudioManagement Studio requires CONTROL SERVER permission or membership in the sysadmin fixed server role.

방법: 연결된 서버 만들기 How to Create a Linked Server

다음 중 하나를 사용할 수 있습니다.You can use any of the following:

SQL Server Management Studio 사용 Using SQL Server Management Studio

SQL Server Management Studio를 사용하여 SQL Server의 다른 인스턴스에 연결된 서버를 만들려면To create a linked server to another instance of SQL Server Using SQL Server Management Studio
  1. SQL Server Management StudioSQL Server Management Studio에서 개체 탐색기를 열고 서버 개체를 확장한 다음 연결된 서버를 마우스 오른쪽 단추로 클릭하고 새 연결된 서버를 클릭합니다.In SQL Server Management StudioSQL Server Management Studio, open Object Explorer, expand Server Objects, right-click Linked Servers, and then click New Linked Server.

  2. 일반 페이지의 연결된 서버 상자에 연결하려는 SQL Server 인스턴스의 이름을 입력합니다.On the General page, in the Linked server box, type the name of the instance of SQL Server that you area linking to.

    SQL ServerSQL Server
    연결된 서버를 MicrosoftMicrosoft SQL ServerSQL Server의 인스턴스로 식별합니다.Identify the linked server as an instance of MicrosoftMicrosoft SQL ServerSQL Server. 이 방법을 사용하여 SQL ServerSQL Server 연결된 서버를 정의하는 경우 연결된 서버 에 지정된 이름은 서버의 네트워크 이름이어야 합니다.If you use this method of defining a SQL ServerSQL Server linked server, the name specified in Linked server must be the network name of the server. 또한 서버에서 검색된 모든 테이블은 연결된 서버에 로그인할 수 있도록 정의된 기본 데이터베이스에 있어야 합니다.Also, any tables retrieved from the server are from the default database defined for the login on the linked server.

    기타 데이터 원본Other data source
    SQL ServerSQL Server이외의 OLE DB 서버 유형을 지정합니다.Specify an OLE DB server type other than SQL ServerSQL Server. 이 옵션을 클릭하면 그 아래의 옵션이 활성화됩니다.Clicking this option activates the options below it.

    공급자Provider
    목록 상자에서 OLE DB 데이터 원본을 선택합니다.Select an OLE DB data source from the list box. OLE DB 공급자는 레지스트리에 지정된 PROGID로 등록됩니다.The OLE DB provider is registered with the given PROGID in the registry.

    제품 이름Product name
    연결된 서버로 추가할 OLE DB 데이터 원본의 제품 이름을 입력합니다.Type the product name of the OLE DB data source to add as a linked server.

    데이터 원본Data source
    OLE DB 공급자가 해석할 데이터 원본 이름을 입력합니다.Type the name of the data source as interpreted by the OLE DB provider. SQL ServerSQL Server인스턴스에 연결하는 경우에는 인스턴스 이름을 입력합니다.If you are connecting to an instance of SQL ServerSQL Server, provide the instance name.

    공급자 문자열Provider string
    데이터 원본에 해당하는 OLE DB 공급자의 고유한 PROGID(프로그래밍 ID)를 입력합니다.Type the unique programmatic identifier (PROGID) of the OLE DB provider that corresponds to the data source. 올바른 공급자 문자열의 예는 sp_addlinkedserver(Transact-SQL)의 데이터에 액세스하는 방법을 보여 줍니다.For examples of valid provider strings, see sp_addlinkedserver (Transact-SQL).

    위치Location
    OLE DB 공급자가 해석할 데이터베이스 위치를 입력합니다.Type the location of the database as interpreted by the OLE DB provider.

    CatalogCatalog
    OLE DB 공급자에 연결할 때 사용할 카탈로그 이름을 입력합니다.Type the name of the catalog to use when making a connection to the OLE DB provider.

    연결된 서버와의 연결을 테스트하려면 개체 탐색기에서 연결된 서버를 마우스 오른쪽 단추로 클릭한 다음 연결 테스트를 클릭합니다.To test the ability to connect to a linked server, in Object Explorer, right-click the linked server and then click Test Connection.

    참고

    SQL Server 인스턴스가 기본 인스턴스인 경우 SQL Server인스턴스를 호스팅하는 컴퓨터의 이름을 입력합니다.If the instance of SQL Server is the default instance, enter the name of the computer that hosts the instance of SQL Server. SQL Server 가 명명된 인스턴스인 경우 Accounting\SQLExpress와 같이 컴퓨터의 이름과 인스턴스의 이름을 입력합니다.If the SQL Server is a named instance, enter the name of the computer and the name of the instance, such as Accounting\SQLExpress.

  3. 서버 유형 영역에서 연결된 서버가 SQL Server 의 다른 인스턴스임을 나타낼 수 있도록 SQL Server를 선택합니다.In the Server type area, select SQL Server to indicate that that the linked server is another instance of SQL Server.

  4. 보안 페이지에서 원본 SQL ServerSQL Server 연결을 연결된 서버에 연결할 때 사용할 보안 컨텍스트를 지정합니다.On the Security page, specify the security context that will be used when the original SQL ServerSQL Server connects to the linked server. 사용자가 도메인 로그인을 사용하여 연결하는 도메인 환경에서는 로그인의 현재 보안 컨텍스트를 사용하여 연결 을 선택하는 것이 이상적입니다.In a domain environment where users are connecting by using their domain logins, selecting Be made using the login’s current security context is often the best choice. 사용자가 SQL Server 로그인을 사용하여 원본 SQL Server 에 연결하는 경우에는 다음 보안 컨텍스트를 사용하여 연결을 선택한 다음 연결된 서버에서 인증하기 위해 필요한 자격 증명을 제공하는 것이 이상적입니다.When users connect to the original SQL Server by using a SQL Server login, the best choice is often to select By using this security context, and then providing the necessary credentials to authenticate at the linked server.

    로컬 로그인Local login
    연결된 서버에 연결할 수 있는 로컬 로그인을 지정합니다.Specify the local login that can connect to the linked server. 로컬 로그인은 SQL ServerSQL Server 인증을 사용하는 로그인이나 Windows 인증 로그인 중 하나일 수 있습니다.The local login can be either a login using SQL ServerSQL Server Authentication or a Windows Authentication login. 이 목록을 사용하여 특정 로그인에 대한 연결을 제한하거나 일부 로그인이 다른 로그인으로 연결하도록 허용할 수 있습니다.Use this list to restrict the connection to specific logins, or to allow some logins to connect as a different login.

    ImpersonateImpersonate
    사용자 이름과 암호를 로컬 로그인에서 연결된 서버로 전달합니다.Pass the username and password from the local login to the linked server. SQL ServerSQL Server 인증의 경우 이름과 암호가 완전히 동일한 로그인이 원격 서버에 있어야 합니다.For SQL ServerSQL Server Authentication, a login with the exact same name and password must exist on the remote server. Windows 로그인의 경우 로그인이 연결된 서버에서 유효한 로그인이어야 합니다.For Windows logins, the login must be a valid login on the linked server.

    가장을 사용하려면 구성이 위임 요구 사항을 만족해야 합니다.To use impersonation, the configuration must meet the requirement for delegation.

    원격 사용자Remote User
    원격 사용자를 사용하여 로컬 로그인에 정의되어 있지 않은 사용자를 매핑합니다.Use the remote user to map users not defined in Local login. 원격 사용자 는 원격 서버에서 SQL ServerSQL Server 인증 로그인이어야 합니다.The Remote User must be a SQL ServerSQL Server Authentication login on the remote server.

    원격 암호Remote Password
    원격 사용자의 암호를 지정합니다.Specify the password of the Remote User.

    추가Add
    새 로컬 로그인을 추가합니다.Add a new local login.

    제거Remove
    기존 로컬 로그인을 제거합니다.Remove an existing local login.

    연결 안 함Not be made
    목록에 정의되어 있지 않은 로그인의 경우 연결하지 않도록 지정합니다.Specify that a connection will not be made for logins not defined in the list.

    보안 컨텍스트 없이 연결Be made without using a security context
    목록에 정의되어 있지 않은 로그인의 경우 보안 컨텍스트를 사용하지 않고 연결하도록 지정합니다.Specify that a connection will be made without using a security context for logins not defined in the list.

    로그인의 현재 보안 컨텍스트를 사용하여 연결Be made using the login's current security context
    목록에 정의되어 있지 않은 로그인의 경우 로그인의 현재 보안 컨텍스트를 사용하여 연결하도록 지정합니다.Specify that a connection will be made using the current security context of the login for logins not defined in the list. Windows 인증을 사용하여 로컬 서버에 연결한 경우 원격 서버에 연결하는 데 해당 Windows 자격 증명이 사용됩니다.If connected to the local server using Windows Authentication, your windows credentials will be used to connect to the remote server. SQL ServerSQL Server 인증을 사용하여 로컬 서버에 연결한 경우 원격 서버에 연결하는 데 로그인 이름 및 암호가 사용됩니다.If connected to the local server using SQL ServerSQL Server Authentication, login name and password will be used to connect to the remote server. 이 경우 이름과 암호가 완전히 동일한 로그인이 원격 서버에 있어야 합니다.In this case a login with the exact same name and password must exist on the remote server.

    다음 보안 컨텍스트를 사용하여 연결Be made using this security context
    목록에 정의되어 있지 않은 로그인의 경우 원격 로그인암호 상자에서 지정한 로그인과 암호를 사용하여 연결하도록 지정합니다.Specify that a connection will be made using the login and password specified in the Remote login and With password boxes for logins not defined in the list. 원격 로그인은 원격 서버에서 SQL ServerSQL Server 인증 로그인이어야 합니다.The remote login must be a SQL ServerSQL Server Authentication login on the remote server.

  5. 필요에 따라 서버 옵션을 보거나 지정하려면 서버 옵션 페이지를 클릭합니다.Optionally, to view or specify server options, click the Server Options page.

    데이터 정렬 호환Collation Compatible
    연결된 서버에 대한 분산 쿼리 실행에 영향을 줍니다.Affects Distributed Query execution against linked servers. 이 옵션을 true로 설정하면 SQL ServerSQL Server 에서는 연결된 서버의 모든 문자에 대한 문자 집합 및 데이터 정렬 시퀀스(또는 정렬 순서)가 로컬 서버와 호환된다고 가정합니다.If this option is set to true, SQL ServerSQL Server assumes that all characters in the linked server are compatible with the local server, with regard to character set and collation sequence (or sort order). 이렇게 함으로써 SQL ServerSQL Server 에서 문자 열에 관한 비교를 공급자에 전달할 수 있습니다.This enables SQL ServerSQL Server to send comparisons on character columns to the provider. 이 옵션을 설정하지 않으면 SQL ServerSQL Server 에서 항상 문자 열에 관한 비교를 로컬로 평가합니다.If this option is not set, SQL ServerSQL Server always evaluates comparisons on character columns locally.

    이 옵션은 연결된 서버에 해당되는 데이터 원본이 로컬 서버와 동일한 문자 집합 및 정렬 순서를 갖고 있는 것이 확실한 경우에만 설정해야 합니다.This option should be set only if it is certain that the data source corresponding to the linked server has the same character set and sort order as the local server.

    데이터 액세스Data Access
    분산 쿼리 액세스에 대해 연결된 서버의 사용 여부를 설정합니다.Enables and disables a linked server for distributed query access.

    RPCRPC
    지정된 서버에서 RPC를 사용하도록 설정합니다.Enables RPC from the specified server.

    RPC 내보내기RPC Out
    지정된 서버에 RPC를 사용하도록 설정합니다.Enables RPC to the specified server.

    원격 데이터 정렬 사용Use Remote Collation
    원격 열의 데이터 정렬을 사용할지 로컬 서버의 데이터 정렬을 사용할지 결정합니다.Determines whether the collation of a remote column or of a local server will be used.

    true로 설정하면 SQL ServerSQL Server 데이터 원본에 대해서는 원격 열의 데이터 정렬이 사용되고 SQL ServerSQL Server 가 아닌 데이터 원본에 대해서는 데이터 정렬 이름에 지정된 데이터 정렬이 사용됩니다.If true, the collation of remote columns is used for SQL ServerSQL Server data sources, and the collation specified in collation name is used for non- SQL ServerSQL Server data sources.

    false로 설정하면 분산 쿼리에서 항상 로컬 서버의 기본 데이터 정렬을 사용하는 반면에 데이터 정렬 이름 및 원격 열의 데이터 정렬은 무시됩니다.If false, distributed queries will always use the default collation of the local server, while collation name and the collation of remote columns are ignored. 기본값은 false입니다.The default is false.

    데이터 정렬 이름Collation Name
    원격 데이터 정렬 사용이 true이고 데이터 원본이 SQL ServerSQL Server 데이터 원본이 아닌 경우에 원격 데이터 원본에서 사용하는 데이터 정렬의 이름을 지정합니다.Specifies the name of the collation used by the remote data source if use remote collation is true and the data source is not a SQL ServerSQL Server data source. 이름은 반드시 SQL ServerSQL Server에서 지원하는 데이터 정렬 중 하나여야 합니다.The name must be one of the collations supported by SQL ServerSQL Server.

    SQL ServerSQL Server가 아닌 OLE DB 데이터 원본에 액세스할 때 해당 데이터 정렬이 SQL ServerSQL Server 데이터 정렬 중 하나와 일치하면 이 옵션을 사용하세요.Use this option when accessing an OLE DB data source other than SQL ServerSQL Server, but whose collation matches one of the SQL ServerSQL Server collations.

    연결된 서버는 반드시 해당 서버의 모든 열에 대해 사용할 단일 데이터 정렬을 지원해야 합니다.The linked server must support a single collation to be used for all columns in that server. 연결된 서버에서 단일 데이터 원본 내에 여러 데이터 정렬을 지원하거나 연결된 서버의 데이터 정렬이 SQL ServerSQL Server 데이터 정렬 중 하나와 일치하는지 확인할 수 없는 경우에는 이 옵션을 사용하지 않습니다.Do not set this option if the linked server supports multiple collations within a single data source, or if the linked server's collation cannot be determined to match one of the SQL ServerSQL Server collations.

    연결 제한 시간Connection Timeout
    연결된 서버에 연결하는 제한 시간 값(초)입니다.Time-out value in seconds for connecting to a linked server.

    0으로 설정하면 sp_configure 의 기본값인 원격 로그인 제한 시간 옵션 값을 사용합니다.If 0, use the sp_configure default remote login timeout option value.

    쿼리 제한 시간Query Timeout
    연결된 서버에 대한 쿼리의 제한 시간 값(초)입니다.Time-out value in seconds for queries against a linked server.

    0으로 설정하면 sp_configure 의 기본값인 원격 쿼리 제한 시간 옵션 값을 사용합니다.If 0, use the sp_configure default remote query timeout option value.

    RPC에 대한 분산 트랜잭션 승격 설정Enable Promotion of Distributed Transactions
    이 옵션을 사용하여 MS DTC( MicrosoftMicrosoft Distributed Transaction Coordinator) 트랜잭션을 통해 서버 간 프로시저 동작을 보호할 수 있습니다.Use this option to protect the actions of a server-to-server procedure through a MicrosoftMicrosoft Distributed Transaction Coordinator (MS DTC) transaction. 이 옵션이 TRUE인 경우 원격 저장 프로시저를 호출하면 분산 트랜잭션이 시작되고 MS DTC를 사용하여 이 트랜잭션을 참여시킵니다.When this option is TRUE, calling a remote stored procedure starts a distributed transaction and enlists the transaction with MS DTC. 자세한 내용은 sp_serveroption(Transact-SQL)의 데이터에 액세스하는 방법을 보여 줍니다.For more information, see sp_serveroption (Transact-SQL).

  6. 확인을 클릭합니다.Click OK.

공급자 옵션을 보려면To view the provider options
  • 공급자를 사용할 수 있도록 설정하는 옵션을 보려면 공급자 옵션 페이지를 클릭합니다.To view the options that the provider makes available, click the Providers Options page.

    공급자마다 사용 가능한 옵션은 다릅니다.All providers do not have the same options available. 예를 들어 일부 데이터 형식에는 사용 가능한 인덱스가 있지만 사용 가능한 인덱스가 없는 데이터 형식도 있습니다.For example, some types of data have indexes available and some might not. 이 대화 상자를 사용하여 SQL ServerSQL Server 에서의 공급자 기능을 이해할 수 있습니다.Use this dialog box to help SQL ServerSQL Server understand the capabilities of the provider. SQL ServerSQL Server 에서는 몇 가지 일반 데이터 공급자를 설치하는데, 데이터를 공급하는 제품이 변경되는 경우 SQL ServerSQL Server 에서 설치한 공급자가 모든 최신 기능을 지원하지 않을 수 있습니다. installs some common data providers, however when the product providing the data changes, the provider installed by SQL ServerSQL Server might not support all the newest features. 데이터를 공급하는 제품 기능에 대한 가장 유용한 정보는 해당 제품 설명서에서 제공합니다.The best source of information about the capabilities of the product providing the data is the documentation for that product.

    동적 매개 변수Dynamic parameter
    공급자에서 매개 변수가 있는 쿼리에 대해 '?' 매개 변수 표식 구문을 허용한다는 것을 나타냅니다.Indicates that the provider allows '?' parameter marker syntax for parameterized queries. 이 옵션은 공급자가 ICommandWithParameters 인터페이스를 지원하고 '?'를 매개 변수 표식으로 지원하는 경우에만 설정합니다.Set this option only if the provider supports the ICommandWithParameters interface and supports a '?' as the parameter marker. 이 옵션을 설정하면 SQL ServerSQL Server 에서 공급자에 대해 매개 변수가 있는 쿼리를 실행할 수 있습니다.Setting this option allows SQL ServerSQL Server to execute parameterized queries against the provider. 공급자에 대해 매개 변수가 있는 쿼리를 실행할 수 있는 기능으로 인해 특정 쿼리의 경우 성능이 향상될 수 있습니다.The ability to execute parameterized queries against the provider can result in better performance for certain queries.

    중첩 쿼리Nested queries
    공급자가 FROM 절의 SELECT 중첩문을 허용함을 나타냅니다.Indicates that the provider allows nested SELECT statements in the FROM clause. 이 옵션을 설정하면 SQL ServerSQL Server 에서 FROM 절의 SELECT 중첩문을 요청하는 공급자에게 특정 쿼리를 위임할 수 있습니다.Setting this option allows SQL ServerSQL Server to delegate certain queries to the provider that require nesting SELECT statements in the FROM clause.

    0 수준만Level zero only
    공급자에 대해 수준 0 OLE DB 인터페이스만 호출됩니다.Only level 0 OLE DB interfaces are invoked against the provider.

    Inprocess 허용Allow inprocess
    SQL ServerSQL Server 에서 공급자가 in-process 서버로 인스턴스화될 수 있습니다. allows the provider to be instantiated as an in-process server. 이 옵션을 설정하지 않으면 SQL ServerSQL Server 프로세스 외부에서 공급자를 인스턴스화하는 것이 기본 동작입니다.When this option is not set, the default behavior is to instantiate the provider outside the SQL ServerSQL Server process. SQL ServerSQL Server 프로세스 외부에서 공급자를 인스턴스화하면 공급자 오류로부터 SQL ServerSQL Server 프로세스를 보호할 수 있습니다.Instantiating the provider outside the SQL ServerSQL Server process protects the SQL ServerSQL Server process from errors in the provider. 공급자가 SQL ServerSQL Server 프로세스 외부에서 인스턴스화되면 긴 열(text, ntext또는 image)을 참조하는 업데이트나 삽입은 허용되지 않습니다.When the provider is instantiated outside the SQL ServerSQL Server process, updates or inserts referencing long columns (text, ntext, or image) are not allowed.

    트랜잭션되지 않은 업데이트Non transacted updates
    SQL ServerSQL Server 에서는 ITransactionLocal 을 사용할 수 없는 경우에도 업데이트를 허용합니다. allows updates, even if ITransactionLocal is not available. 이 옵션을 사용하면 공급자가 트랜잭션을 지원하지 않으므로 공급자에 대한 업데이트를 복구할 수 없습니다.If this option is enabled, updates against the provider are not recoverable, because the provider does not support transactions.

    액세스 경로인 인덱스Index as access path
    SQL ServerSQL Server 에서 공급자 인덱스를 사용하여 데이터를 인출하려고 합니다. attempts to use indexes of the provider to fetch data. 기본적으로 인덱스는 메타데이터에만 사용되며 열리지 않습니다.By default, indexes are used only for metadata and are never opened

    임시 액세스 허용 안 함Disallow ad hoc access
    SQL ServerSQL Server 에서 OLE DB 공급자에 대해 OPENROWSET 및 OPENDATASOURCE 함수를 통한 임시 액세스를 허용하지 않습니다. does not allow ad hoc access through the OPENROWSET and OPENDATASOURCE functions against the OLE DB provider. 이 옵션을 설정하지 않은 경우에도 SQL ServerSQL Server 에서 임시 액세스를 허용하지 않습니다.When this option is not set, SQL ServerSQL Server also does not allow ad hoc access.

    'LIKE' 연산자를 지원합니다.Supports 'Like' operator
    공급자가 LIKE 키워드를 사용하는 쿼리를 지원한다는 것을 나타냅니다.Indicates that the provider supports queries using the LIKE key word.

Transact-SQL 사용 Using Transact-SQL

Transact-SQLTransact-SQL을 사용하여 연결된 서버를 만들려면 sp_addlinkedserver(Transact-SQL)CREATE LOGIN(Transact-SQL)sp_addlinkedsrvlogin(Transact-SQL) 문을 사용합니다.To create a linked server by using Transact-SQLTransact-SQL, use the sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL) and sp_addlinkedsrvlogin (Transact-SQL) statements.

Transact-SQL을 사용하여 SQL Server의 다른 인스턴스에 연결된 서버 만들기To create a linked server to another instance of SQL Server using Transact-SQL
  1. 쿼리 편집기에서 다음 Transact-SQLTransact-SQL 명령을 입력하여 SQL ServerSQL Server 명명된 SRVR002\ACCTG인스턴스에 연결합니다.In Query Editor, enter the following Transact-SQLTransact-SQL command to link to an instance of SQL ServerSQL Server named SRVR002\ACCTG:

    USE [master]  
    GO  
    EXEC master.dbo.sp_addlinkedserver   
        @server = N'SRVR002\ACCTG',   
        @srvproduct=N'SQL Server' ;  
    GO  
    
  2. 다음 코드를 실행하여 연결된 서버에서 연결된 서버를 사용하는 로그인의 도메인 자격 증명을 사용하도록 구성합니다.Execute the following code to configure the linked server to use the domain credentials of the login that is using the linked server.

    EXEC master.dbo.sp_addlinkedsrvlogin   
        @rmtsrvname = N'SRVR002\ACCTG',   
        @locallogin = NULL ,   
        @useself = N'True' ;  
    GO  
    

추가 작업: 연결된 서버를 만든 후 수행할 단계 Follow Up: Steps to take after you create a linked server

연결된 서버 테스트To test the linked server

  • 다음 코드를 실행하여 연결된 서버에 대한 연결을 테스트합니다.Execute the following code to test the connection to the linked server. 이 예에서는 연결된 서버의 데이터베이스 이름을 반환합니다.This example the returns the names of the databases on the linked server.

    SELECT name FROM [SRVR002\ACCTG].master.sys.databases ;  
    GO  
    

연결된 서버의 테이블을 조인하는 쿼리 작성Writing a query that joins tables from a linked server

  • 네 부분으로 이루어진 이름을 사용하여 연결된 서버의 개체를 참조합니다.Use four-part names to refer to an object on a linked server. 다음 코드를 실행하면 로컬 서버의 모든 로그인 및 연결된 서버에서 이와 일치하는 로그인의 목록이 반환됩니다.Execute the following code to return a list of all logins on the local server and their matching logins on the linked server.

    SELECT local.name AS LocalLogins, linked.name AS LinkedLogins  
    FROM master.sys.server_principals AS local  
    LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked  
        ON local.name = linked.name ;  
    GO  
    

    연결된 서버에 대해 NULL이 반환되면 로그인이 연결된 서버에 없음을 의미합니다.When NULL is returned for the linked server login it indicates that the login does not exist on the linked server. 이러한 로그인은 연결된 서버가 다른 보안 컨텍스트를 통과시키거나 연결된 서버가 익명 연결을 허용하도록 구성되어야 연결된 서버를 사용할 수 있습니다.These logins will not be able to use the linked server unless the linked server is configured to pass a different security context or the linked server accepts anonymous connections.

참고 항목See Also

연결된 서버(데이터베이스 엔진) Linked Servers (Database Engine)
sp_addlinkedserver(Transact-SQL) sp_addlinkedserver (Transact-SQL)
sp_serveroption(Transact-SQL)sp_serveroption (Transact-SQL)