broker 应用

create remote service binding binding_name

to service 'service_name'

with user = user_name

[,ANONYMOUS= {ON|OFF}]

参数: to service 'service_name'

指定要绑定在 with user 子句中标识的用户的远程服务

user = user_name

指定拥有与to service 子句所标识远程服务关联的证书的数据库主体.

ANONYMOUS 

指定在与远程服务进行通信时是否使用匿名身份验证。如果ANONYMOUS为ON,则使用匿名验证。

如果 ANONYMOUS 为 OFF,则作为该数据库中的特定用户执行远程数据库中的操作。 如果没有指定该子句,则默认为 OFF。

---------------------------------------------------------------------------------------------------------------------------------

create route route_name

with

  [service_name = 'service_name',]

  [broker_instance = 'broker_instance_identifier',]

  address = 'next_hop_address'

参数:

route_name

路由名称。

server_name

路由所指向的远端服务名称,且与远端服务名称完全相符。如果省略server_name,这个路由会符合任何服务名称

broker_instance = 'broker_instance_identifier'

broker_instance_identifier参数必须是远端资料库的执行个体识别码,你可以在所选资料库中执行下列查询来取得这个识别码:

1 SELECT service_broker_guid
2 FROM sys.databases
3 WHERE database_id = DB_ID()

如果省略broker_instance 子句时,这项路由会符合任何broker执行个体。

address = 'next_hop_address'

指定这个路由的网络位置

 TCP://{ dns_name | netbios_name | ip_address } :port_number

--------------------------------------------------------------------------------------------------------

create certificate certificate_name

AUTHORIZATION user_name

WITH subject = 'certificate_subject_name';

start_date = ''

expiry_date = ''

 

参数:

AUTHORIZATION user_name

拥有这个凭证的使用者名称

subject = 'certificate_subject_name'

START_DATE =' datetime '

这是凭证的生效日期,若没有指定,会将start_date设为目前的日期。

expiry_date = 'datetime'

这是凭证到期的日期,若未指定,会将expiry_date设为start_date之后一年的日期。

------------------------------------------------------------------------------------------------

CREATE MASTER KEY ENCRYPTION  BY PASSWORD = 'password'

参数:

PASSWORD = 'password'

用于加密数据库主密钥的密码。

数据库主密钥是指用于保护证书私钥的对称密钥,以及数据库中存在的非对称密钥。

 -------------------------------------------------------------------------------------

CREATE QUEUE queue_name

WITH STATUS = ON/OFF 

RETENTION = ON/OFF

ACTIVATION(

STATUS = ON

PROCEDURE_NAME = <过程>

EXECUTE AS 

)

 

 

在数据库中创建新队列。当一条针对某项服务的消息到达时,Service broker会将该消息放入与该服务关联的队列中。

queue_name 要创建的队列名称

STATUS 

指定队列是可用(ON)还是不可用(OFF)。如果队列不可用,则不能向队列添加消息或从队列删除消息。

RETENTION 

指定队列的保持期设置,如果RETENTION = ON 则使用此队列的会话发送和接受的所有消息都将保持在队列中,直到会话结束为止。这样就可以保留消息以便审核,或者用于在出现错误时执行补偿事务。

ACTIVATION

指定与为了处理此队列中的消息而必须启动的存储过程有关的信息。

STATUS

指定Service broker是否启动存储过程。当STATUS = ON 时,如果当前运行的存储过程小于MAX_QUEUE_READERS,并且消息抵达队列的速度比存储过程接收消息的速度快,则队列启动用 PROCEDURE_NAME 指定的存储过程。 当 STATUS = OFF 时,队列不启动存储过程。 如果未指定该子句,则默认为 ON。

PROCEDURE_NAME = <过程>

指定处理此队列中的消息时要启动的存储过程的名称。 此值必须是一个 SQL Server 标识符。

EXECUTE AS 

指定用于激活存储过程的SQL SERVER数据库用户帐户。

SELF 

指定存储过程以当前用户身份执行。(执行该 CREATE QUEUE 语句的数据库主体。)

 -------------------------------------------------------------------------------------------------------------

CREATE USER user_name

WITHOUT LOGIN   指定不应将用户映射到现有登录名。

WITH DEFAULT_SCHEMA = schema_name

指定服务器为此数据库用户解析对象名时将搜索的第一个架构。

---------------------------------------------------------------------------------------------------------------

CREATE ENDPOINT endPointName

[AUTHORIZATION login]

 

endPointName

所创建的端点已分配名称。

AUTHORIZATION login

分配端点的所有权,调用方必须对指定的login具有IMPERSONATE权限。

 -----------------------------------------------

CREATE LOGIN login_name

 

login_name 指定创建的登录名。有四种登录名:SQL SERVER登录名、Windows登录名、证书映射登录名和非对称密钥映射登录名。

 

posted @ 2013-10-25 17:59  小刘_php  阅读(144)  评论(0)    收藏  举报