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, вызывающий должен иметь разрешение IMPERSONATE для указанного значения login.

    О переназначении владельца см. раздел 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 }
    Указывает тип передаваемых полезных данных.

    В настоящее время не существует специфических для языка Transact-SQL аргументов, передаваемых в параметре <language_specific_arguments>.

    Собственные веб-службы с поддержкой XML (конечные точки SOAP/HTTP) являются устаревшими. Дополнительные сведения см. в разделе Собственные веб-службы с поддержкой XML: устарели в SQL Server 2008.

Параметры протокола HTTP

Следующие аргументы относятся только к протоколу HTTP.

  • PATH = 'url'
    Указывает путь URL-адреса, задающий местоположение конечной точки на узле, указанном в аргументе SITE. Аргумент PATH является логическим разбиением пространства имен URL-адресов, которое используется средством прослушивания для правильного перенаправления запросов. Аргумент PATH должен быть частью URL-адреса, использующегося клиентом для отправки запросов HTTP SOAP к экземпляру SQL Server. Например, в URL-адресе http://ServerName/SqlServerName — это сервер, указанный в аргументе SITE, а /Sql — это часть URL-адреса, указанная в аргументе PATH.

  • 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', укажите SITE='MyServer' в инструкции CREATE ENDPOINT.

    • * (звездочка)
      Подразумевается, что операция прослушивания применяется ко всем возможным именам узлов, не зарезервированным явно.

    • + (знак «плюс»)
      Подразумевается, что операция прослушивания применяется ко всем возможным именам узлов.

    • webSite
      Конкретное имя узла.

  • [ CLEAR_PORT **=**clearPort ]
    Указывает номер незащищенного порта. Если указан аргумент PORTS = (CLEAR), значение аргумента clearPort задает номер соответствующего незащищенного порта. По умолчанию номер порта равен 80.

  • [ SSL_PORT**=**SSLPort ]
    Указывает номер порта для работы по протоколу SSL. Если указан аргумент PORTS = (SSL), значение аргумента SSLPort задает номер соответствующего открытого порта. По умолчанию номер порта SSL равен 443.

  • [ AUTH_REALM = { 'realm' | NONE } ]
    Если присутствует аргумент AUTHENTICATION = DIGEST, указывается подсказка, которая возвращается клиенту, отправившему запрос SOAP к конечной точке, и которая используется как часть вызова при проверке подлинности через HTTP. По умолчанию значение установлено в 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
    Указывает номер порта протокола TCP/IP, прослушиваемого компонентом Service Broker на предмет соединений. По соглашению используется порт 4022, но допустим любой порт от 1024 до 32767.

  • LISTENER_IP = ALL | **(**4-part-ip ) | ( "ip_address_v6" )
    Указывает IP-адрес, с которым конечная точка будет ожидать соединения. По умолчанию значение установлено в ALL. Это значит, что средство прослушивания примет соединение с любым верным IP-адресом.

    Если зеркальное отображение базы данных настраивается с использованием IP-адреса, а не полного имени домена (ALTER DATABASE SET PARTNER = partner_IP_address или ALTER DATABASE SET WITNESS = witness_IP_address), необходимо указать LISTENER_IP =IP_address вместо LISTENER_IP=ALL при создании конечных точек зеркального отображения.

Аргументы 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'
    Указывает имя хранимой процедуры или определяемой пользователем функции, которая соответствует методу SOAP, указанному в WEBMETHOD. database**.schema.Значение параметра** name должно быть трехкомпонентным именем, соответствующим правилам для идентификаторов. Если имя аргумента database**.schema.**name не существует, возвращается предупреждение, но операция DDL выполняется успешно.

  • [ SCHEMA = { NONE | STANDARD | DEFAULT } ]
    (Данный параметр предназначен для предложения WEBMETHOD.) Определяет, будет ли возвращена в ответах SOAP для текущего веб-метода встроенная XSD-схема.

    • NONE
      XSD-схема не возвращена в результатах инструкции SELECT, отправленных по протоколу SOAP.

    • STANDARD
      XSD-схема возвращена в результатах инструкции SELECT, отправленных по протоколу SOAP.

    • DEFAULT
      Соответствует значению аргумента SCHEMA конечной точки.

    Если схема не указана или аргумент принял значение DEFAULT, аргумент SCHEMA, указанный для конечной точки, определяет, возвращать ли схему для результата метода.

    Чтобы получить схему для результата запроса SELECT, который использует аргумент FOR XML, нужно указать в запросе аргумент XMLSCHEMA, независимо от того, каково значение аргумента SCHEMA.

  • [ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    Указывает, возвращать ли в результирующем наборе количество строк, сообщения об ошибках и предупреждения. По умолчанию значение установлено в ALL_RESULTS.

    • ALL_RESULTS
      Возвращает в ответе SOAP результирующий набор, количество строк, сообщения об ошибках и предупреждения.

    • ROWSETS_ONLY
      Возвращает только результирующие наборы.

      Указывайте это значение для клиентских приложений, использующих генератор промежуточного класса для веб-службы Visual Studio 2005, если нужно получать результаты в виде одного набора данных (объекта System.Data.Dataset), а не массива объектов.

    • NONE
      Подавляет возврат специальной разметки SOAP в ответе сервера.

      Это значение может использоваться как механизм поддержки приложений с хранимыми процедурами, в которых ответ будет возвращен сервером таким как есть, в необработанном виде. Если указан этот параметр, ответственным за возвращение XML-документа правильного формата будет приложение. Эта возможность может быть использована для управления ответом по ряду причин. Например, для создания хранимой процедуры, которая будет возвращать политику веб-службы. Аргумент FORMAT=NONE ограничен следующими условиями применения:

      • Метод должен быть реализован при помощи хранимой процедуры без выходных параметров. Для этого формата ответа определяемые пользователем функции недопустимы.

        Запрос должен состоять из одной инструкции FOR XML (наличие нескольких инструкций FOR XML недопустимо для этого формата ответа), или выход должен состоять из одного столбца с именем XML_F52E2B61-18A1-11d1-B105-00805F49916B и типом nvarchar.

  • BATCHES = { ENABLED | DISABLED }
    Указывает, поддерживаются ли на конечной точке нерегламентированные запросы SQL. По умолчанию значение установлено в DISABLED.

    Если задано значение ENABLED, запросы SOAP становятся доступными для нерегламентированных запросов, использующих метод sqlbatch для отправки данных этой конечной точке.

    Если использование пакетов разрешено, нерегламентированные запросы SQL могут быть выполнены на конечной точке вызовом метода sql:sqlbatch. Этот метод также предоставляет функциональность параметризированных запросов, поэтому он может принять дополнительный список элементов SqlParameter, который будет описывать метаданные и значения аргументов указанного запроса.

    В запросе могут использоваться имена аргументов, начинающиеся со знака (@). Должно обеспечиваться совпадение имен аргументов; иначе в ответ на запрос возвращается ошибка.

  • LOGIN_TYPE = { MIXED | WINDOWS }
    Указывает режим проверки подлинности SQL Server для конечной точки. Если аргумент LOGIN_TYPE не указан, значение по умолчанию равно WINDOWS.

    Аргумент LOGIN_TYPE может применяться для дальнейшего ограничения режима проверки подлинности для конечных точек, использующих глобальный режим проверки подлинности сервера, выбранный при установке экземпляра SQL Server.

    • MIXED
      Допускает использование либо проверки подлинности SQL Server, либо проверки подлинности Windows для проверки пользователей конечной точки.

      Если указано значение MIXED и сервер работает в режиме проверки подлинности Windows, возвращается ошибка.

      Если указано значение MIXED, то в конечной точке поддерживается проверка подлинности SQL Server, при этом конечная точка должна быть настроена для использования порта SSL.

    • 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 клиенту. Если время ожидания истекает до того, как будет получен другой запрос SOAP с тем же идентификатором сеанса в заголовке, сеанс на сервере прерывается.

  • [ DATABASE = { 'database_name' | DEFAULT } ]
    Указывает базу данных, в контексте которой выполняется запрошенная операция. Если аргумент database_name не указан или если указано значение DEFAULT, для входа используется база данных по умолчанию.

  • [ NAMESPACE = { 'namespace' | DEFAULT } ]
    Указывает пространство имен конечной точки. Если аргумент namespace не указан или указано значение DEFAULT, используемым пространством имен будет http://tempuri.org. Можно изменить пространство имен по умолчанию, указав конкретный метод в предложении WEBMETHOD **'namespace'**namespace.

  • [ SCHEMA = { NONE | STANDARD } ]
    Указывает, будет ли возвращена конечной точкой XSD-схема при отправке результатов SOAP.

    • NONE
      Опускает встроенную схему из ответа SOAP.

    • STANDARD
      Включает встроенную схему в ответы конечной точки.

    ПримечаниеПримечание

    Для загрузки результатов SOAP в объекты System.Data.DataSet при использовании Visual Studio 2005 необходимы встроенные схемы; поэтому должно использоваться значение STANDARD.

  • [CHARACTER_SET = { SQL | XML } ]
    Определяет поведение, если результат операции включает недопустимые в формате XML символы. Значение по умолчанию — XML.

    • SQL
      Кодирует неправильные символы как ссылки на символы и возвращает их в результат. В этом случае средство синтаксического анализа XML может отклонить возвращаемый XML как недопустимый.

    • XML
      Кодирует символы в соответствии со спецификацией XML. Символы, не разрешенные в кодировке XML, вызовут отправку сервером SQL Server клиенту ошибки о недопустимых XML-данных.

  • HEADER_LIMIT
    Указывает максимальный размер в байтах заголовочного раздела в конверте SOAP. Если заголовки SOAP не превышают этот размер, сервер формирует ошибку синтаксического анализа. Если значение не указано, подразумевается значение по умолчанию, равное 8 КБ (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 для определения идентификатора для авторизации. Противоположная конечная точка должна иметь сертификат с открытым ключом, совпадающим с закрытым ключом указанного сертификата.

    • 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
      Указывает на то, что конечная точка должна использовать алгоритм RC4. Это значение по умолчанию.

    • 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
    Указывает максимальный объем хранилища в мегабайтах для размещения в нем сообщений конечной точки, предназначенных для перенаправления.

Параметры DATABASE_MIRRORING

Следующие параметры используются, если указан аргумент DATABASE_MIRRORING.

  • ROLE = { WITNESS | PARTNER | ALL }
    Указывает роль в зеркальном отображении базы данных или роли, поддерживаемые конечной точкой.

    • WITNESS
      Позволяет конечной точке выполнять роль следящего сервера в процессе зеркального отображения.

      ПримечаниеПримечание

      Для выпуска SQL Server 2005 Express Edition WITNESS является единственным доступным значением.

    • PARTNER
      Позволяет конечной точке выполнять роль участника в процессе зеркального отображения.

    • ALL
      Позволяет конечной точке выполнять как роль следящего сервера, так и роль участника в процессе зеркального отображения.

    Дополнительные сведения об этих ролях см. в разделе Обзор зеркального отображения базы данных.

ПримечаниеПримечание

Если указан аргумент DATABASE_MIRRORING, только протокол TCP может использоваться в качестве транспортного. Также для аргумента DATABASE_MIRRORING не определен порт по умолчанию.

Замечания

Инструкции DDL ENDPOINT не могут выполняться внутри пользовательской транзакции. Инструкции ENDPOINT DDL не будут вызывать ошибки даже в случае, если активная транзакция уровня изоляции моментального снимка использует изменяемую конечную точку.

Запросы к объекту ENDPOINT могут быть выполнены следующими пользователями:

  • членами предопределенной роли сервера sysadmin;

  • владельцем конечной точки;

  • пользователями или группами, которым предоставлено разрешение CONNECT на конечную точку.

Разрешения

Требуется разрешение CONTROL SERVER или членство в предопределенной роли сервера sysadmin. Дополнительные сведения см. в разделе GRANT, предоставление разрешений на конечные точки (Transact-SQL).

Примеры

A. Создание конечной точки при помощи запросов SOAP

В следующем примере создается конечная точка с именем sql_endpoint и двумя методами: GetSqlInfo и DayAsNumber. Это методы, для которых клиент может отправлять запросы SOAP к конечной точке.

Для каждого метода значение параметра FORMAT по умолчанию равно ALL_RESULTS. Поэтому ответ SOAP на запрос к методу будет включать в себя сообщения об ошибках, предупреждения и сведения о количестве строк.

Обратите внимание на следующие аргументы для параметра SOAP:

  • аргумент SCHEMA конечной точки принимает значение STANDARD. Поэтому по умолчанию встроенные схемы возвращаются в ответах SOAP;

  • аргумент WSDL принимает значение DEFAULT. Поэтому если клиент запрашивает у конечной точки ответ WSDL (http://Server/sql?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 для получения всех сведений о конечных точках в системе. В эти сведения входят имя, идентификатор конечной точки, идентификатор участника [системы безопасности] на уровне сервера, который владеет конечной точкой, и другие свойства конечной точки.

SELECT *
FROM sys.endpoints;

Можно выполнить запрос к представлению sys.http_endpoints для получения подробных сведений о параметрах работы конечной точки с протоколом HTTP, таких как значения аргументов SITE, URL-адрес, механизм AUTHENTICATION и другие данные.

SELECT *
FROM sys.http_endpoints;

Чтобы получить сведения о параметрах работы конечной точки с протоколом HTTP SOAP, выполните запрос к представлению sys.soap_endpoints.

SELECT * 
FROM sys.soap_endpoints;

Чтобы узнать, какие методы SOAP определены на конечной точке, выполните запрос к представлению sys.endpoint_webmethods.

SELECT *
FROM sys.endpoint_webmethods;

Б. Создание конечной точки зеркального отображения базы данных

В следующем примере создается конечная точка зеркального отображения базы данных. Конечная точка использует номер порта 7022, хотя допустим любой доступный номер порта. Конечная точка настроена на использование проверки подлинности Windows только по методу Kerberos. Аргумент ENCRYPTION имеет значение SUPPORTED, отличное от значения по умолчанию, для передачи зашифрованных или незашифрованных данных. Конечная точка может выступать как в роли участника, так и в роли следящего сервера.

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

В. Указание порта

При создании конечной точки SOAP на Windows Server начиная с версии Windows Server 2003, если IIS использует сочетание пути (URL-адрес) и порта, выполнение инструкции 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/' );