CREATE ENDPOINT(Transact-SQL)

클라이언트 응용 프로그램에 사용할 수 있는 메서드를 포함하여 끝점을 만들고 속성을 정의합니다. 관련 사용 권한에 대한 자세한 내용은 GRANT 끝점 사용 권한(Transact-SQL)을 참조하십시오.

CREATE ENDPOINT의 구문은 논리적으로 다음과 같이 두 부분으로 나눌 수 있습니다.

  • 첫 번째 부분은 AS로 시작하고 FOR 절 앞에서 끝납니다.

    이 부분에서는 TCP 또는 HTTP와 같은 전송 프로토콜과 관련된 정보를 제공하며 끝점의 수신 포트 번호를 설정하고 끝점 인증의 메서드 및/또는 액세스를 차단할 IP 주소(있는 경우)를 지정합니다.

  • 두 번째 부분은 FOR 절로 시작합니다.

    이 부분에서는 끝점에서 지원되는 페이로드를 정의합니다. 페이로드는 SOAP, Transact-SQL, Service Broker, 데이터베이스 미러링 등 지원되는 여러 형식 중 하나일 수 있습니다. 또한 이 부분에는 언어별 정보도 포함됩니다. 예를 들어 HTTP SOAP를 사용하는 경우 끝점에서 웹 메서드로 노출할 프로시저를 지정할 수 있습니다. 각 웹 메서드에는 매핑할 SQL Server 저장 프로시저 또는 사용자 정의 함수를 지정할 수 있습니다. 그런 다음 클라이언트 응용 프로그램은 끝점에 있는 이 메서드를 요청하는 HTTP SOAP 요청을 전송할 수 있습니다. 또한 다음과 같은 추가 SOAP 구성 정보도 제공할 수 있습니다.

    • 임시 쿼리 요청을 허용할지 여부

    • 결과 집합에 대한 XSD 스키마 반환 여부

    • 요청된 메서드가 실행되는 데이터베이스 컨텍스트

    • 끝점에 대한 네임스페이스

    • 유효한 XML 형식이 아닌 문자가 결과에 있을 때 처리 방법

[!참고]

네이티브 XML 웹 서비스(SOAP/HTTP 끝점)는 사용되지 않습니다. 자세한 내용은 네이티브 XML 웹 서비스: SQL Server 2008 이후에는 사용되지 않음을 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

CREATE ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
AS { HTTP | TCP } (
   <protocol_specific_arguments>
        )
FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
   <language_specific_arguments>
        )<AS HTTP_protocol_specific_arguments> ::=
AS HTTP (
  PATH = 'url', AUTHENTICATION = ( { BASIC | DIGEST | INTEGRATED | NTLM | KERBEROS } [ ,...n ] ), PORTS =( { CLEAR | SSL} [ ,... n ] )
  [ SITE = {'*' | '+' | 'webSite' },]
  [ [ , ] CLEAR_PORT =clearPort ]
  [ [ , ] SSL_PORT =SSLPort ]
  [ [ , ] AUTH_REALM = { 'realm' | NONE } ]
  [ [ , ] DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
  [ [ , ] COMPRESSION = { ENABLED | DISABLED } ]
  )<AS TCP_protocol_specific_arguments> ::=
AS TCP (
  LISTENER_PORT =listenerPort
  [ [ , ] LISTENER_IP = ALL | (4-part-ip ) | ( "ip_address_v6" ) ]

)<FOR SOAP_language_specific_arguments> ::=
FOR SOAP(
  [ { WEBMETHOD [ 'namespace'.] 'method_alias'(   NAME ='database.schema.name'
      [ [ , ] SCHEMA = { NONE | STANDARD | DEFAULT } ]
      [ [ , ] FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    )  
  } [ ,...n ] ]
  [ [ , ] BATCHES = { ENABLED | DISABLED } ]
  [ [ , ] WSDL = { NONE | DEFAULT | 'sp_name' } ]
  [ [ , ] SESSIONS = { ENABLED | DISABLED } ]
  [ [ , ] LOGIN_TYPE = { MIXED | WINDOWS } ]
  [ [ , ] SESSION_TIMEOUT =timeoutInterval | NEVER ]
  [ [ , ] DATABASE = { 'database_name' | DEFAULT }
  [ [ , ] NAMESPACE = { 'namespace' | DEFAULT } ]
  [ [ , ] SCHEMA = { NONE | STANDARD } ]
  [ [ , ] CHARACTER_SET = { SQL | XML } ]
  [ [ , ] HEADER_LIMIT = int ]
        )
        <FOR SERVICE_BROKER_language_specific_arguments> ::=
FOR SERVICE_BROKER (
   [ AUTHENTICATION = { 
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
      | CERTIFICATE certificate_name 
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name 
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
    } ]
   [ [ , ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED } 
       [ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] } 
   ]
   [ [ , ] MESSAGE_FORWARDING = { ENABLED | DISABLED } ]
   [ [ , ] MESSAGE_FORWARD_SIZE =forward_size ]
)
        <FOR DATABASE_MIRRORING_language_specific_arguments> ::=
FOR DATABASE_MIRRORING (
   [ AUTHENTICATION = { 
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
      | CERTIFICATE certificate_name 
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name 
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
   [ [ [ , ] ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED } 
       [ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] } 

    ] 
   [ , ] ROLE = { WITNESS | PARTNER | ALL }
)

인수

  • endPointName
    만들어지는 끝점에 할당할 이름입니다. 끝점을 업데이트하거나 삭제할 때 사용합니다.

  • AUTHORIZATION login
    새로 만들어지는 끝점 개체의 소유권을 할당할 유효한 SQL Server 또는 Windows 로그인을 지정합니다. AUTHORIZATION이 지정되지 않은 경우 기본적으로 호출자가 새로 만들어지는 개체의 소유자가 됩니다.

    AUTHORIZATION을 지정하여 소유권을 할당하려면 호출자는 지정된 login에 대해 IMPERSONATE 권한이 있어야 합니다.

    소유권을 다시 할당하려면 ALTER ENDPOINT(Transact-SQL)를 참조하십시오.

  • STATE = { STARTED | STOPPED | DISABLED }
    끝점이 생성될 때의 끝점 상태입니다. 끝점을 만들 때 상태를 지정하지 않으면 STOPPED가 기본값이 됩니다.

    • STARTED
      끝점이 시작되어 연결 수신 대기 중입니다.

    • DISABLED
      끝점이 해제되었습니다. 이 상태일 경우 서버는 포트 요청을 수신하지만 오류를 클라이언트에 반환합니다.

    • STOPPED
      끝점이 중지되었습니다. 이 상태에서 서버는 끝점 포트로의 수신을 대기하거나 끝점을 사용하기 위해 시도된 요청에 응답하지 않습니다.

    상태를 변경하려면 ALTER ENDPOINT(Transact-SQL)를 참조하십시오.

  • AS { HTTP | TCP }
    사용할 전송 프로토콜을 지정합니다.

  • FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
    페이로드 유형을 지정합니다.

    현재 <language_specific_arguments> 매개 변수에 전달할 Transact-SQL 언어 관련 인수는 없습니다.

    네이티브 XML 웹 서비스(SOAP/HTTP 끝점)는 사용되지 않습니다. 자세한 내용은 네이티브 XML 웹 서비스: SQL Server 2008 이후에는 사용되지 않음을 참조하십시오.

HTTP 프로토콜 옵션

다음은 HTTP 프로토콜 옵션에만 적용됩니다.

  • PATH = 'url'
    SITE 인수에서 지정한 호스트 컴퓨터에서 끝점의 위치를 식별하는 URL 경로를 지정합니다. PATH는 수신기가 요청을 적절하게 라우팅하기 위해 사용하는 URL 네임스페이스의 논리적 분할입니다. PATH는 클라이언트가 SQL Server 인스턴스로 HTTP SOAP 요청을 전송하는 데 사용하는 URL의 일부여야 합니다. 예를 들어 URL https://ServerName/Sql에서 ServerName은 SITE에 의해 지정된 호스트 컴퓨터이며 /Sql은 PATH에 의해 지정된 URL입니다.

  • AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] )
    SQL Server 인스턴스에 로그온하는 사용자를 인증하는 데 사용되는 인증 유형을 지정합니다. BASIC, DIGEST, NTLM, KERBEROS INTEGRATED 또는 이들 값의 조합을 쉼표(,)로 구분하여 지정할 수 있습니다. 자세한 내용은 끝점 인증 유형을 참조하십시오.

  • PORTS**=(** { CLEAR | SSL} [ ,... n ] )
    끝점과 연결된 하나 이상의 수신 포트 유형을 지정합니다. CLEAR 및 SSL을 동시에 지정할 수 있습니다. CLEAR만 지정된 경우 들어오는 요청은 HTTP를 사용해야 합니다. SSL이 지정된 경우 들어오는 요청은 보안 HTTP(https://) 요청이어야 합니다.

  • [ SITE = { ' * ' | ' + ' | 'webSite' } ]
    호스트 컴퓨터의 이름을 지정합니다. SITE가 생략된 경우 별표가 기본값입니다. sp_reserve_http_namespace가 실행된 경우 SITE 키워드에 <hostpart>를 전달합니다. 예를 들어 **sp_reserve_http_namespace N'http://MyServer:80/sql'**이 실행된 경우 CREATE ENDPOINT 문에 SITE='MyServer'를 지정합니다.

    • *(별표)
      수신 작업이 컴퓨터에 대한 호스트 이름 중 명시적으로 예약된 것을 제외하고 가능한 모든 호스트 이름에 적용됨을 나타냅니다.

    • +(더하기 기호)
      수신 작업이 컴퓨터에 대한 가능한 모든 호스트 이름에 적용됨을 나타냅니다.

    • webSite
      컴퓨터에 대한 특정 호스트 이름입니다.

  • [ CLEAR_PORT **=**clearPort ]
    CLEAR 포트 번호를 지정합니다. PORTS = (CLEAR)인 경우 이 clearPort는 CLEAR 포트 번호에 해당합니다. 기본 포트 번호는 80입니다.

  • [ SSL_PORT**=**SSLPort ]
    SSL 포트 번호를 지정합니다. PORTS = (SSL)인 경우 SSLPort는 SSL 포트 번호에 해당합니다. 기본 SSL 포트 번호는 443입니다.

  • [ AUTH_REALM = { 'realm' | NONE } ]
    AUTHENTICATION = DIGEST인 경우 HTTP 인증 시도의 일부로 SOAP 요청을 끝점에 보낸 클라이언트에 반환할 힌트를 지정합니다. 기본값은 NONE입니다.

  • [ DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
    AUTHENTICATION = BASIC인 경우 기본 로그인 도메인을 지정합니다. 기본값은 NONE입니다.

  • [ COMPRESSION = { ENABLED | DISABLED } ]
    ENABLED로 설정된 경우 SQL Server는 gzip 인코딩이 적용된 요청을 허용하고 압축된 응답을 반환합니다. 즉, 요청의 HTTP 헤더에 GZIP을 유효한 "허용 인코딩"으로 지정하는 내용이 있을 경우 서버는 응답을 gzip으로 인코딩하여 반환합니다. 기본값은 DISABLED입니다.

TCP 프로토콜 옵션

다음 인수는 TCP 프로토콜 옵션에만 적용됩니다.

  • LISTENER_PORT **=**listenerPort
    Service Broker TCP/IP 프로토콜을 통한 연결을 수신하는 포트 번호를 지정합니다. 규칙에 따라 4022가 사용되지만 1024와 32767 사이의 모든 번호를 사용할 수 있습니다.

  • LISTENER_IP = ALL | **(**4-part-ip ) | ( "ip_address_v6" )
    끝점이 수신하는 IP 주소를 지정합니다. 기본값은 ALL입니다. 이는 수신기가 모든 유효한 IP 주소에 대한 연결을 허용함을 의미합니다.

    정규화된 도메인 이름(ALTER DATABASE SET PARTNER = partner_IP_address 또는 ALTER DATABASE SET WITNESS = witness_IP_address) 대신 IP 주소를 사용하여 데이터베이스 미러링을 구성하는 경우 미러링 끝점을 만들 때 LISTENER_IP=ALL 대신 LISTENER_IP =IP_address를 지정해야 합니다.

SOAP 인수

다음은 SOAP 옵션과 관련된 인수입니다.

[!참고]

네이티브 XML 웹 서비스(SOAP/HTTP 끝점)는 사용되지 않습니다. 자세한 내용은 네이티브 XML 웹 서비스: SQL Server 2008 이후에는 사용되지 않음을 참조하십시오.

  • [ WEBMETHOD [ 'namespace' .] 'method_alias' ]
    HTTP SOAP 요청을 끝점으로 전송할 메서드를 지정합니다. 각 WEBMETHOD 절에는 하나의 메서드가 지정되지만 끝점에 대해 여러 메서드를 제공할 수 있습니다. namespace를 지정하지 않은 경우 끝점의 네임스페이스가 사용됩니다.

    메서드가 없는 끝점을 만든 다음 ALTER ENDPOINT를 사용하여 메서드를 추가할 수 있습니다.

    중요 정보중요

    WEBMETHOD를 사용하여 메서드를 제공하는 경우 둘 이상의 SQL Server 데이터베이스에서 같은 HTTP 끝점을 사용할 때 중복된 이름이 없는지 확인해야 합니다. 이를 방지하려면 등록된 도메인 이름 URL을 네임스페이스 경로의 일부로 추가하십시오.

  • NAME ='database.schema.name'
    WEBMETHOD에 지정된 SOAP 메서드에 해당하는 저장 프로시저 또는 사용자 정의 함수의 이름을 지정합니다. database**.schema.name은 식별자에 대한 규칙에 따라 세 부분으로 구성된 이름이어야 합니다. database.schema.**name 이 없는 경우 경고가 반환되지만 DDL 작업은 성공합니다.

  • [ SCHEMA = { NONE | STANDARD | DEFAULT } ]
    이 옵션은 WEBMETHOD 절에 적용됩니다. SOAP 응답 내의 현재 웹 메서드에 대한 인라인 XSD 스키마를 반환할지 여부를 결정합니다.

    • NONE
      SOAP을 통해 전송된 SELECT 문 결과에 대해 XSD 스키마가 반환되지 않습니다.

    • STANDARD
      SOAP을 통해 전송된 SELECT 문 결과에 대해 XSD 스키마가 반환됩니다.

    • DEFAULT
      기본값은 끝점의 SCHEMA 옵션 설정입니다.

    스키마가 지정되지 않았거나 이 옵션이 DEFAULT로 설정된 경우 끝점에 지정된 SCHEMA 옵션에 따라 메서드 결과에 대한 SCHEMA를 반환할지 여부가 결정됩니다.

    FOR XML 옵션을 사용하는 SELECT 쿼리의 결과에 대한 스키마를 얻으려면 SCHEMA 옵션 설정에 관계없이 쿼리에서 XMLSCHEMA 옵션을 지정해야 합니다.

  • [ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    행 개수, 오류 메시지 및 경고를 결과 집합과 함께 반환할지 여부를 지정합니다. 기본값은 ALL_RESULTS입니다.

    • ALL_RESULTS
      SOAP 응답에 있는 결과 집합, 행 개수, 오류 메시지 및 경고를 반환합니다.

    • ROWSETS_ONLY
      결과 집합만을 반환합니다.

      Visual Studio 2005 웹 서비스 프록시 클래스 생성자를 사용하는 클라이언트의 경우 결과를 개체 배열이 아닌 단일 데이터 집합(System.Data.Dataset 개체)으로 반환하려면 이 옵션을 사용하십시오.

    • NONE
      서버 응답에서 SOAP 관련 태그를 반환하지 않습니다.

      이 옵션은 응용 프로그램의 저장 프로시저가 서버의 응답을 원시 모드 그대로 반환하는 경우 이를 지원하기 위한 메커니즘으로 사용할 수 있습니다. 이 옵션이 적용되면 응용 프로그램은 올바른 형식의 XML을 반환해야 합니다. 이 기능은 응답을 제어할 필요가 있는 다양한 경우에 사용될 수 있습니다. 예를 들어 WS-Policy를 반환하는 저장 프로시저를 만드는 데 사용할 수도 있습니다. FORMAT=NONE 옵션을 사용하려면 다음 조건이 만족되어야 합니다.

      • 메서드는 출력 매개 변수가 없는 저장 프로시저를 사용하여 구현되어야 합니다. 사용자 정의 함수는 이 응답 형식에 사용할 수 없습니다.

        쿼리가 하나의 FOR XML 문 쿼리이거나(여러 FOR XML 문은 이 응답 형식에서 사용할 수 없음) 출력이 XML_F52E2B61-18A1-11d1-B105-00805F49916B라는 이름을 가진 nvarchar 유형의 단일 열로 구성되어야 합니다.

  • BATCHES = { ENABLED | DISABLED }
    끝점에서 임의 SQL 요청을 지원할지 여부를 지정합니다. 기본값은 DISABLED입니다.

    ENABLED로 지정하면 sqlbatch 메서드를 사용하는 임의 쿼리에 대한 SOAP 요청을 이 끝점으로 전송할 수 있습니다.

    일괄 처리가 가능할 경우 sql:sqlbatch 메서드를 호출하여 임의 SQL 요청을 끝점에서 실행할 수 있습니다. 또한 이 메서드는 매개 변수가 있는 쿼리 기능을 제공하므로 지정된 쿼리의 매개 변수에 대한 메타데이터 및 값을 설명하는 선택적인 SqlParameter 요소의 목록을 사용할 수 있습니다.

    쿼리 내에는 at 기호(@)로 시작하는 매개 변수 이름이 포함될 수 있으며 이때 일치하는 매개 변수 이름이 제공되어야 합니다. 그렇지 않으면 요청에 대해 오류가 반환됩니다.

  • LOGIN_TYPE = { MIXED | WINDOWS }
    끝점의 SQL Server 인증 모드를 지정합니다. LOGIN_TYPE이 지정되지 않은 경우 기본값은 WINDOWS입니다.

    LOGIN_TYPE은 SQL Server 인스턴스를 설치할 때 선택한 서버 전역 인증 모드를 기반으로 하는 끝점의 인증 모드를 더 세부적으로 제한하려는 경우에만 사용됩니다.

    • MIXED
      끝점 사용자를 인증하는 데 SQL Server 인증 또는 Windows 인증을 사용할 수 있습니다.

      MIXED가 지정되고 서버가 Windows 인증 모드로 설치된 경우 오류가 반환됩니다.

      MIXED로 설정된 경우 SQL Server 인증이 끝점에서 지원되며 끝점은 SSL(Secure Sockets Layer) 포트를 사용할 수 있도록 구성되어야 합니다.

    • WINDOWS
      끝점 사용자를 인증하는 데 Windows 인증만을 사용할 수 있습니다.

  • WSDL = { NONE | DEFAULT | 'sp_name' }
    이 끝점에 대해 WSDL 문서 생성을 지원할지 여부를 나타냅니다. NONE인 경우 끝점에 제출된 WSDL 쿼리에 대한 WSDL 응답이 생성되거나 반환되지 않습니다. DEFAULT인 경우 끝점에 제출된 WSDL 쿼리에 대한 기본 WSDL 응답이 생성되어 반환됩니다. 끝점에 대해 사용자 지정 WSDL 지원 구현을 수행하는 예외적인 경우, 변경된 WSDL 문서를 반환하는 저장 프로시저의 이름을 지정할 수도 있습니다.

  • [ SESSIONS = { ENABLED | DISABLED } ]
    SQL Server 인스턴스가 세션 지원을 허용할지 여부를 지정합니다. ENABLED로 설정된 경우 SQL Server는 세션 지원을 허용하여 여러 SOAP 요청/응답 메시지 쌍을 단일 SOAP 세션의 일부로 식별할 수 있습니다. 기본값은 DISABLED입니다.

  • SESSION_TIMEOUT **=**timeoutInterval
    더 이상의 요청이 없을 경우 SOAP 세션이 서버에서 만료되기까지의 사용 가능 시간(초)을 정수로 지정합니다. 기본값은 60초입니다. 이 값은 SOAP 세션 헤더에 지정된 제한 시간 값 보다 우선합니다.

    이 제한 시간은 _서버가 클라이언트에 대한 SOAP 응답 메시지의 전송을 완료했을 때 초기화됩니다. 동일한 세션 ID가 헤더에 지정된 다른 SOAP 요청이 전달되기 전에 제한 시간이 경과되면 세션은 서버에서 종료됩니다.

  • [ DATABASE = { 'database_name' | DEFAULT } ]
    요청한 작업 실행을 위한 대상 데이터베이스를 지정합니다. database_name이 지정되지 않았거나 DEFAULT가 지정된 경우 로그인의 기본 데이터베이스가 사용됩니다.

  • [ NAMESPACE = { 'namespace' | DEFAULT } ]
    끝점에 대한 네임스페이스를 지정합니다. namespace가 지정되지 않았거나 DEFAULT로 지정된 경우 http://tempuri.org 네임스페이스가 사용됩니다. WEBMETHOD **'namespace'**namespace를 사용하여 특정 메서드를 지정하면 기본 네임스페이스를 덮어쓸 수 있습니다.

  • [ SCHEMA = { NONE | STANDARD } ]
    SOAP 결과를 전송할 때 끝점에서 XSD 스키마를 반환할지 여부를 지정합니다.

    • NONE
      인라인 스키마를 SOAP 응답에서 생략합니다.

    • STANDARD
      인라인 스키마를 끝점 응답에 포함합니다.

    [!참고]

    Visual Studio 2005를 사용할 경우 SOAP 결과를 System.Data.DataSet 개체로 로드하려면 인라인 스키마가 필요하므로 STANDARD로 지정하십시오.

  • [CHARACTER_SET = { SQL | XML } ]
    작업의 결과가 유효하지 않은 XML 형식의 문자를 포함할 때 동작을 정의합니다. 기본값은 XML입니다.

    • SQL
      문자 참조가 유효하지 않은 문자를 인코딩한 다음 결과로 반환합니다. 반환된 XML이 유효하지 않은 경우 XML 파서는 이를 거부할 수 있습니다.

    • XML
      XML 사양에 따라 문자를 인코딩합니다. XML 문자 집합에서 허용되지 않는 문자를 사용하면 SQL Server에서 잘못된 XML 오류를 클라이언트로 보냅니다.

  • HEADER_LIMIT
    SOAP Envelope의 헤더 섹션 최대 크기(바이트)를 지정합니다. SOAP 헤더가 이 크기에 맞지 않는 경우 서버는 구문 분석 오류를 생성합니다. 지정되지 않은 경우 8KB(8192바이트)의 기본값이 사용됩니다.

SERVICE_BROKER 및 DATABASE_MIRRORING 옵션

다음 AUTHENTICATION 및 ENCRYPTION 인수는 SERVICE_BROKER 및 DATABASE_MIRRORING 옵션에 사용할 수 있는 공통 인수입니다.

[!참고]

SERVICE_BROKER와 관련된 옵션은 이 섹션 뒷부분의 "SERVICE_BROKER 옵션"을 참조하십시오. DATABASE_MIRRORING과 관련된 옵션은 이 섹션 뒷부분의 "DATABASE_MIRRORING 옵션"을 참조하십시오.

  • AUTHENTICATION = <authentication_options>
    이 끝점에 대한 연결의 TCP/IP 인증 요구 사항을 지정합니다. 기본값은 WINDOWS입니다.

    지원되는 인증 방법에는 NTLM 또는 Kerberos가 있으며 둘 다 사용할 수도 있습니다. 이 방법에 대한 자세한 내용은 끝점 인증 유형을 참조하십시오.

    중요 정보중요

    서버 인스턴스의 모든 미러링 연결은 하나의 데이터베이스 미러링 끝점을 사용합니다. 추가 데이터베이스 미러링 끝점을 만들려고 시도하면 실패합니다.

    <authentication_options> ::=

    • WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      끝점이 인증을 위해 Windows 인증 프로토콜을 사용하여 연결하도록 지정합니다. 기본값입니다.

      인증 방법(NTLM 또는 KERBEROS)을 지정한 경우 항상 해당 방법이 인증 프로토콜로 사용됩니다. 기본값인 NEGOTIATE를 적용하면 끝점이 Windows 협상 프로토콜을 사용하여 NTLM이나 Kerberos를 선택합니다.

    • CERTIFICATE certificate_name
      끝점이 certificate_name에 지정된 인증서를 사용하여 인증용 ID를 설정하고 연결을 인증하도록 지정합니다. 먼 끝점에는 지정된 인증서의 개인 키와 일치하는 공개 키를 가진 인증서가 있어야 합니다.

    • WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
      Windows 인증을 사용하여 끝점이 연결을 시도하고 이 시도가 실패하면 지정한 인증서를 사용하여 연결을 시도하도록 지정합니다.

    • CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      지정한 인증서를 사용하여 끝점이 연결을 시도하고 이 시도가 실패하면 Windows 인증을 사용하여 연결을 시도하도록 지정합니다.

  • ENCRYPTION = { DISABLED | SUPPORTED | REQUIRED } [ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ]
    프로세스에서 암호화를 사용할지 여부를 지정합니다. 기본값은 REQUIRED입니다.

    • DISABLED
      연결을 통해 전송되는 데이터를 암호화하지 않도록 지정합니다.

    • SUPPORTED
      반대쪽 끝점이 SUPPORTED나 REQUIRED로 지정된 경우에만 데이터를 암호화하도록 지정합니다.

    • REQUIRED
      이 끝점에 대한 연결이 암호화를 사용하도록 지정합니다. 따라서 이 끝점에 연결하려면 다른 끝점의 ENCRYPTION이 SUPPORTED 또는 REQUIRED로 설정되어 있어야 합니다.

    필요에 따라 다음과 같이 ALGORITHM 인수를 사용하여 끝점에 사용되는 암호화 형식을 지정할 수 있습니다.

    • RC4
      끝점이 반드시 C4 알고리즘을 사용하도록 지정합니다. 기본값입니다.

    • AES
      끝점이 반드시 AES 알고리즘을 반드시 사용하도록 지정합니다.

    • AES RC4
      두 끝점이 암호화 알고리즘에 대해 협상하고 이 끝점이 AES 알고리즘에 우선 순위를 부여하도록 지정합니다.

    • RC4 AES
      두 끝점이 암호화 알고리즘에 대해 협상하고 이 끝점이 RC4 알고리즘에 우선 순위를 부여하도록 지정합니다.

    [!참고]

    RC4 알고리즘은 더 이상 사용되지 않습니다. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하십시오. AES를 사용하는 것이 좋습니다.

    양쪽 끝점이 두 알고리즘을 모두 지정하지만 순서가 다른 경우 연결을 수락하는 끝점의 알고리즘이 적용됩니다.

SERVICE_BROKER 옵션

다음은 SERVICE_BROKER 옵션에 대한 인수입니다.

  • MESSAGE_FORWARDING = { ENABLED | DISABLED }
    끝점에서 수신한 메시지가 다른 위치에 있는 서비스에 관련된 것일 경우 이 메시지를 전달할지 여부를 결정합니다.

    • ENABLED
      전달 주소가 있을 경우 메시지를 전달합니다.

    • DISABLED
      다른 위치에 있는 서비스에 대한 메시지를 무시합니다. 기본값입니다.

  • MESSAGE_FORWARD_SIZE **=**forward_size
    끝점이 전달할 메시지를 저장할 때 사용할 수 있는 최대 저장 크기(MB)를 지정합니다.

DATABASE_MIRRORING 옵션

다음은 DATABASE_MIRRORING 옵션에 대한 인수입니다.

  • ROLE = { WITNESS | PARTNER | ALL }
    데이터베이스 미러링 역할 또는 끝점이 지원하는 역할을 지정합니다.

    • WITNESS
      미러링 프로세스에서 끝점이 미러링 모니터의 역할을 수행하도록 합니다.

      [!참고]

      SQL Server 2005 Express Edition의 경우 WITNESS 옵션만 사용할 수 있습니다.

    • PARTNER
      미러링 프로세스에서 끝점이 파트너의 역할을 수행하도록 합니다.

    • ALL
      미러링 프로세스에서 끝점이 미러링 모니터 및 파트너 역할을 모두 수행하도록 지정합니다.

    이러한 역할에 대한 자세한 내용은 데이터베이스 미러링 개요를 참조하십시오.

[!참고]

DATABASE_MIRRORING의 경우 HTTP가 아닌 TCP만을 전송 프로토콜로 사용할 수 있습니다. DATABASE_MIRRORING에 대한 기본 포트는 없습니다.

주의

ENDPOINT DDL 문은 사용자 트랜잭션 내에서 실행할 수 없습니다. 활성 스냅숏 격리 수준 트랜잭션이 변경되는 끝점을 사용하는 경우에도 ENDPOINT DDL 문은 실패하지 않습니다.

ENDPOINT에 대한 요청을 실행할 수 있는 사람은 다음과 같습니다.

  • sysadmin 고정 서버 역할의 멤버

  • 끝점의 소유자

  • 끝점에 대한 CONNECT 권한이 부여된 사용자 또는 그룹

사용 권한

CREATE ENDPOINT 권한 또는 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다. 자세한 내용은 GRANT 끝점 사용 권한(Transact-SQL)를 참조하십시오.

1. SOAP 요청에 사용할 끝점 만들기

다음 예에서는 sql_endpoint라는 끝점을 GetSqlInfo 및 DayAsNumber라는 두 가지 메서드를 사용하여 만듭니다. 이 메서드는 클라이언트가 SOAP 요청을 끝점에 전송하는 데 사용됩니다.

각 메서드의 FORMAT 옵션에 대한 기본값은 ALL_RESULTS입니다. 따라서 메서드 요청에 대한 SOAP 응답에는 오류 메시지, 경고, 행 개수 정보가 포함됩니다.

다음 SOAP별 설정을 참조하십시오.

  • SCHEMA 옵션은 끝점에서 STANDARD로 설정됩니다. 그러므로 기본적으로 SOAP 응답에 인라인 스키마가 반환됩니다.

  • WSDL 옵션은 DEFAULT로 설정됩니다. 그러므로 클라이언트가 이 끝점(https://Server/sql?wsdl)에서 WSDL 응답을 요청하는 경우 서버는 WSDL 응답을 생성하여 클라이언트에 반환합니다.

DROP ENDPOINT sql_endpoint;
GO

CREATE ENDPOINT sql_endpoint 
STATE = STARTED
AS HTTP(
   PATH = '/sql', 
   AUTHENTICATION = (INTEGRATED ), 
   PORTS = ( CLEAR ), 
   SITE = 'SERVER'
   )
FOR SOAP (
   WEBMETHOD 'GetSqlInfo' 
            (name='master.dbo.xp_msver', 
             SCHEMA=STANDARD ),
   WEBMETHOD 'DayAsNumber' 
            (name='master.sys.fn_MSdayasnumber'),
   WSDL = DEFAULT,
   SCHEMA = STANDARD,
   DATABASE = 'master',
   NAMESPACE = 'http://tempUri.org/'
   ); 
GO

다음 예에서 볼 수 있듯이 카탈로그 뷰를 쿼리하여 끝점에 대한 정보를 얻을 수 있습니다. 또한 이들 카탈로그 뷰를 조인하여 원하는 데이터를 얻을 수 있습니다.

시스템의 모든 끝점 정보를 검색하려면 sys.endpoints를 쿼리하십시오. 여기에는 이름, 끝점의 ID, 끝점을 소유하는 서버 보안 주체의 ID 및 끝점의 기타 속성이 포함됩니다.

SELECT *
FROM sys.endpoints;

sys.http_endpoints를 쿼리하면 SITE, URL, AUTHENTICATION 메커니즘 및 기타 HTTP 관련 정보와 같은 HTTP와 관련된 자세한 끝점 정보를 검색할 수 있습니다.

SELECT *
FROM sys.http_endpoints;

끝점에 대한 SOAP 관련 정보를 검색하려면 sys.soap_endpoints를 쿼리하십시오.

SELECT * 
FROM sys.soap_endpoints;

끝점에 정의된 SOAP 메서드를 검색하려면 sys.endpoint_webmethods를 쿼리하십시오.

SELECT *
FROM sys.endpoint_webmethods;

2. 데이터베이스 미러링 끝점 만들기

다음 예에서는 데이터베이스 미러링 끝점을 만듭니다. 사용할 수 있는 포트 번호라면 어떤 것이라도 관계 없으나 여기서는 끝점이 7022 포트 번호를 사용합니다. 끝점은 Kerberos만을 사용하는 Windows 인증을 사용하도록 구성됩니다. ENCRYPTION 옵션은 암호화되거나 암호화되지 않은 데이터를 모두 지원하기 위해 기본값이 아닌 SUPPORTED로 구성됩니다. 끝점은 파트너와 미러링 모니터 역할을 모두 지원하도록 구성됩니다.

CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (
       AUTHENTICATION = WINDOWS KERBEROS,
       ENCRYPTION = SUPPORTED,
       ROLE=ALL);
GO

3. 포트 지정

Windows Server 2003부터 Windows Server에서 SOAP 끝점을 만들 때 경로(URL)와 포트 조합이 IIS에 사용되고 있으면 CREATE ENDPOINT가 실패합니다.

Windows XP에서는 IIS를 중지해야 SOAP 끝점이 작동할 수 있습니다.

CREATE ENDPOINT sql_endpoint
 STATE = STARTED 
AS HTTP
( PATH = '/sql',
 AUTHENTICATION = (INTEGRATED ),
 PORTS = ( CLEAR ),
 SITE = 'SERVER',
 CLEAR_PORT = 2000 )
FOR SOAP 
( WEBMETHOD 'GetSqlInfo' (name='master.dbo.xp_msver', SCHEMA=STANDARD ),
 WEBMETHOD 'DayAsNumber' (name='master.sys.fn_MSdayasnumber'),
 WSDL = DEFAULT,
 SCHEMA = STANDARD,
 DATABASE = 'master',
 NAMESPACE = 'http://tempUri.org/' );