CREATE ENDPOINT (Transact-SQL)
创建端点并定义其属性,这些属性包括可用于客户端应用程序的方法。关于相关权限的信息,请参阅 GRANT 端点权限 (Transact-SQL)。
CREATE ENDPOINT 的语法在逻辑上分为两部分:
第一部分从 AS 开始,到 FOR 子句之前结束。
在此部分中,需要提供传输协议(TCP 或 HTTP)特定的信息,设置端点的侦听端口号,以及设置端点身份验证的方法和/或要限制访问端点的 IP 地址列表(如果有的话)。
第二部分从 FOR 子句开始。
在此部分中,需要定义端点上所支持的负载。负载可以为以下多种支持类型中的一种:SOAP、Transact-SQL、Service Broker、数据库镜像。在此部分中,还需要提供语言特定信息。例如,在使用 HTTP SOAP 期间,需要标识要在端点中将其公开为 Web 方法的过程。对于每种 Web 方法,需要标识相应的 SQL Server 存储过程或它所映射到的用户定义函数。这样,客户端应用程序就可以在端点中发送调用这些方法的 HTTP SOAP 请求。此外,还可以提供其他 SOAP 配置信息,如下所示:
是否允许即席查询请求
是否为结果集返回 XSD 架构
在其中执行所请求的方法的数据库上下文
端点的命名空间
如何处理结果中 XML 无效的字符
注意 |
---|
不推荐使用本机 XML Web 服务(SOAP/HTTP 端点)。有关详细信息,请参阅本机 XML Web 服务:不推荐在 SQL Server 2008 中使用。 |
语法
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 Web 服务(SOAP/HTTP 端点)。有关详细信息,请参阅本机 XML Web 服务:不推荐在 SQL Server 2008 中使用。
HTTP 协议选项
下列参数仅适用于 HTTP 协议选项。
PATH = 'url'
指定标识端点在主机(在 SITE 参数中指定)上的位置的 URL 路径。PATH 是侦听器用于适当地传送请求的 URL 命名空间的逻辑分区。PATH 必须是客户端用于将 HTTP SOAP 请求发送到 SQL Server 实例的 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,则传入请求必须是 Secure HTTP (https://) 请求。[ SITE = { ' * ' | ' + ' | 'webSite' } ]
指定主机的名称。如果忽略 SITE,则默认值为星号。若执行了 sp_reserve_http_namespace,请将 <hostpart> 传递给 SITE 关键字。例如,如果执行了 sp_reserve_http_namespace N'http://MyServer:80/sql',请在 CREATE ENDPOINT 语句中指定 SITE='MyServer'。*(星号)
表示侦听操作适用于未另外显式保留的计算机的所有可能的主机名。+(加号)
表示侦听操作适用于计算机的所有可能的主机名。webSite
是计算机的特定主机名。
[ CLEAR_PORT **=**clearPort ]
指定明文端口号。如果 PORTS = (CLEAR),则此 clearPort 指定明文端口号。默认端口号为 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 编码的请求,并返回压缩响应。也就是说,如果传入带有将 GZIP 指定为有效“accept-encoding”的 HTTP 标头的请求,则服务器返回 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 地址上的连接。如果用 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 Web 服务(SOAP/HTTP 端点)。有关详细信息,请参阅本机 XML Web 服务:不推荐在 SQL Server 2008 中使用。 |
[ WEBMETHOD [ 'namespace' .]'method_alias' ]
指定可用于将 HTTP SOAP 请求发送到端点的方法。每个 WEBMETHOD 子句分别说明了一种方法;但可以为端点公开多种方法。如果未指定 namespace,则使用端点的命名空间。可以创建不带任何方法的端点,然后使用 ALTER ENDPOINT 将方法添加到该端点中。
重要提示 在使用 WEBMETHOD 公开方法时,必须确保在同一 HTTP 端点服务于多个 SQL Server 数据库时方法的名称不重复。若要避免发生这一问题,请考虑在命名空间路径中添加注册域名 URL。
NAME ='database.schema.name'
指定与 WEBMETHOD 中指定的 SOAP 方法相对应的存储过程或用户定义函数的名称。database**.schema.name 必须是符合标识符规则且由三部分构成的名称。如果 database.schema.**name 不存在,则返回一条警告,但 DDL 操作仍会成功。[ SCHEMA = { NONE | STANDARD | DEFAULT } ]
(此选项用于 WEBMETHOD 子句。)确定是否将在 SOAP 响应中为当前 Web 方法返回内联 XSD 架构。NONE
对于通过 SOAP 发送的 SELECT 语句结果,不返回 XSD 架构。STANDARD
对于通过 SOAP 发送的 SELECT 语句结果,将返回 XSD 架构。DEFAULT
默认为端点 SCHEMA 选项设置。
如果未指定架构或该选项设置为 DEFAULT,则为端点指定的 SCHEMA 选项确定是否返回方法结果的 SCHEMA。
若要获取使用 FOR XML 选项的 SELECT 查询结果的架构,必须在查询中指定 XMLSCHEMA 选项,而与此处的 SCHEMA 选项设置无关。
[ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
指定是否与结果集一起返回行计数、错误消息和警告。默认值为 ALL_RESULTS。ALL_RESULTS
在 SOAP 响应中返回结果集、行计数、错误消息和警告。ROWSETS_ONLY
只返回结果集。如果希望结果作为单个数据集(System.Data.Dataset 对象)而不是作为对象数组返回,则将此选项用于使用 Visual Studio 2005 Web 服务代理类生成器的客户端应用程序。
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 元素的可选列表,这些元素将说明指定查询参数的元数据和值。
在查询中,可以嵌入以 (@) 符号开头的参数名。必须提供匹配的参数名;否则将会为请求返回错误。
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 响应,也不返回 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 信封中标头部分的最大大小(字节)。如果 SOAP 标头超过此大小,则服务器将生成分析错误。如果未指定该参数,则使用默认值 8 KB(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
指定存储要转发的消息时为要使用的端点分配的最大存储量 (MB)。
DATABASE_MIRRORING 选项
下列参数专用于 DATABASE_MIRRORING 选项。
ROLE = { WITNESS | PARTNER | ALL }
指定端点支持的数据库镜像角色(一个或多个)。WITNESS
启用要在镜像过程中以见证角色执行的端点。注意 在 SQL Server 2005 Express Edition 中,只提供 WITNESS 选项。
PARTNER
启用要在镜像过程中以伙伴角色执行的端点。ALL
启用要在镜像过程中以见证角色兼伙伴角色执行的端点。
有关这些角色的详细信息,请参阅数据库镜像概述。
注意 |
---|
对于 DATABASE_MIRRORING,只能将 TCP 用作传输协议,不能使用 HTTP。没有用于 DATABASE_MIRRORING 的默认端口。 |
注释
ENDPOINT DDL 语句不能在用户事务内部执行。即使活动的快照隔离级别事务正在使用被更改的端点,ENDPOINT DDL 语句也不会失败。
下列用户可以对 ENDPOINT 执行请求:
sysadmin 固定服务器角色的成员
端点的所有者
已被授予对端点的 CONNECT 权限的用户或组
示例
创建端点以用于 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 可以检索有关 HTTP 的详细端点信息,如 SITE、URL、AUTHENTICATION 机制和其他 HTTP 特定的信息。
SELECT *
FROM sys.http_endpoints;
若要检索有关端点的 SOAP 特定的信息,请查询 sys.soap_endpoints。
SELECT *
FROM sys.soap_endpoints;
若要检索在端点上定义的 SOAP 方法,请查询 sys.endpoint_webmethods。
SELECT *
FROM sys.endpoint_webmethods;
B. 创建数据库镜像端点
下面的示例创建一个数据库镜像端点。该端点使用端口号 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
C. 指定端口
在 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/' );