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登录名、证书映射登录名和非对称密钥映射登录名。

浙公网安备 33010602011771号