Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (E-O)

 

GRANT CONSOLIDATE 语句 [SQL Remote]

此语句用于标识 SQL Remote 层次中位于当前数据库上一层的数据库,该数据库将从当前数据库接收消息。

语法
GRANT CONSOLIDATE
TO userid
TYPE message-system, ...
ADDRESS address-string, ...
[ SEND { EVERY | AT } hh:mm:ss ]
message-system:
FILE | FTP | SMTP 
address: string
参数
  • userid   被授予权限的用户的用户 ID。

  • message-system   SQL Remote 支持的消息系统之一。

  • address   指定的消息系统的地址。

注释

在 SQL Remote 安装中,必须为 SQL Remote 层次中位于当前数据库正上方的数据库授予 CONSOLIDATE 权限。远程数据库中发出 GRANT CONSOLIDATE 以标识它的统一数据库。每个数据库只能有一个用户 ID 具有 CONSOLIDATE 权限:一个远程数据库不能有多个统一数据库。

统一用户由消息系统标识,以标识出统一用户收发消息的方法。地址名必须是消息系统的有效地址,用单引号括起来。每个远程数据库只能有一个统一用户。

对于 FILE 消息类型,地址是 SQLREMOTE 环境变量所指向目录的子目录。

统一数据库需要使用 GRANT CONSOLIDATE 语句来接收消息,但此语句本身并不为统一数据库预订任何数据。若要预订数据,必须为统一用户 ID 创建对当前数据库中的某个发布的预订。在统一数据库中运行数据库抽取实用程序可创建一个已发出正确 GRANT CONSOLIDATE 语句的远程数据库。

可选的 SEND EVERY 和 SEND AT 子句指定发送消息的频率。该字符串包含各消息之间的时间长度(对于 SEND EVERY)或一天中发送消息的具体时间(对于 SEND AT)。使用 SEND AT 时,每天发送一次消息。

如果授予用户远程权限时未指定 SEND EVERY 或 SEND AT 子句,则消息代理处理消息,然后停止。要继续运行消息代理,必须确保为每个具有 REMOTE 权限的用户都指定了频率 SEND AT 或 SEND EVERY。

预计在许多远程数据库中,消息代理都定期运行,并且统一数据库将不指定 SEND 子句。

权限

必须具有 DBA 权限。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例
GRANT CONSOLIDATE TO con_db
TYPE SMTP
ADDRESS 'Singer, Samuel';