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 REMOTE 文 [SQL Remote]

この文は、SQL Remote 階層において、現在のデータベースのすぐ下にあり、現在のデータベースからメッセージを受信するデータベースの識別に使用します。これらはリモート・ユーザといいます。

構文
GRANT REMOTE TO userid, ...
TYPE message-system, ...
ADDRESS address-string, ...
[ SEND { EVERY | AT } send-time ]
パラメータ
  • userid   パーミッションを付与されるユーザのユーザ ID。

  • message-system   SQL Remote がサポートするメッセージ・システムの 1 つ。次のいずれかの値を指定します。

    • FILE
    • FTP
    • SMTP

  • address-string   指定したメッセージ・システムに対して有効なアドレスを含む文字列。

  • send-time   hh:mm:ss の形式で時刻を指定した文字列。

備考

SQL Remote インストール環境では、現在のデータベースからメッセージを受信する各データベースに REMOTE パーミッションが必要です。

この唯一の例外として、SQL Remote 階層で現在のデータベースのすぐ上にあるデータベースに、CONSOLIDATE パーミッションを付与します。

リモート・ユーザはメッセージ・システムにより識別され、統合ユーザに対するメッセージの送受信方法が識別されます。address-name には、メッセージ・システムに対して有効なアドレスを、一重引用符で囲んで指定します。

FILE メッセージ・タイプの場合、アドレスは SQLREMOTE 環境変数で指定されているディレクトリのサブディレクトリです。

GRANT REMOTE 文は、リモート・データベースがメッセージを受信するのには必要ですが、リモート・データベースをサブスクライブして何らかのデータを取得するものではありません。データをサブスクライブするには、データベース抽出ユーティリティまたは CREATE SUBSCRIPTION 文を使用して、現在のデータベースにあるパブリケーションのユーザ ID に対するサブスクリプションを作成します。

オプションの SEND EVERY 句と SEND AT 句を使用すると、メッセージを送信する間隔を指定できます。文字列には、メッセージ送信間隔の時間 (SEND EVERY) またはメッセージを送信する時刻 (SEND AT) を指定します。SEND AT の場合、メッセージは 1 日に 1 回送信されます。

ユーザに SEND EVERY 句も SEND AT 句もない REMOTE パーミッションが付与されている場合、Message Agent はメッセージを処理した後、停止します。Message Agent を継続的に実行する場合は、REMOTE パーミッションを持つすべてのユーザの SEND AT または SEND EVERY の頻度が指定されていることを確認します。

多くの統合データベースでは Message Agent を定期的に実行するため、すべてのリモート・データベースに SEND 句が指定されている必要があります。ラップトップ・ユーザに毎日 (SEND AT)、リモート・サーバに 1、2 時間ごとに (SEND EVERY) メッセージを送信するというのが、一般的な設定です。効率的に運用するためには、この設定の時間をできるだけ変えずに使用してください。

パーミッション

DBA 権限が必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   ベンダ拡張。

次の文は、REMOTE パーミッションをユーザ SamS に付与し、SMTP 電子メール・システムを使用して、アドレス Singer, Samuel に 2 時間ごとにメッセージを送信するように設定します。

GRANT REMOTE TO SamS
TYPE SMTP
ADDRESS 'Singer, Samuel'
SEND EVERY '02:00';