ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

3.8 CONNECT文

機能

コネクションを接続します。

記述形式

参照項番

一般規則

SQLサーバ名
  • SQLサーバ名は、ローカルにあるSymfoware/RDBと接続する場合とリモートにあるSymfoware/RDBと接続する場合で、指定する内容が異なります。

    • ローカルのSymfoware/RDBと接続する場合(マルチRDB運用でない場合)は、データベース名を指定します。

    • ローカルのSymfoware/RDBと接続する場合(マルチRDB運用の場合)は、“[RDBシステム名.]データベース名”を指定します。RDBシステム名には、データベースの存在するSymfoware/RDBのシステム名を指定します。省略した場合は、環境変数RDBNAMEに指定されたRDBシステム名が有効となります。

    • リモートのSymfoware/RDBと接続する場合は、任意の文字列を指定することができます。ただし、同じSQLサーバ名を持つSERVER_SPECがクライアント用の動作環境ファイルに指定されていることが必要です。

  • SQLサーバ名は、文字列定数または文字列型の埋込み変数で指定します。

コネクション名
  • コネクション名は、複数のコネクションを接続する場合に、コネクションを識別する名前を指定します。ただし、コネクション名は一意であることが必要です。

  • コネクション名を省略した場合、SQLサーバ名がコネクション名になります。

  • コネクション名は、文字列定数または文字列型の埋込み変数で指定します。

USER(ユーザ指定)
  • サーバに接続する利用者を指定します。利用者は、埋込み変数または文字列で認可識別子とパスワードを斜線“/”で区切って指定します。ユーザ指定を省略した場合は、クライアント用の動作環境ファイルの実行パラメタ“DEFAULT_CONNECTION”に指定された認可識別子とパスワードでサーバに接続します。

  • 認可識別子は、18文字以内の先頭が英字で始まる英数字、または9文字以内の日本語文字列を指定します。

  • 以下の場合、本指定は不要です。

    この場合、アプリケーション実行時のログイン名が有効となります。

    • ローカルのSymfoware/RDBと接続する場合

    • 接続先ホスト名に自端末のIPアドレス、自端末のホスト名、“localhost”またはループバックアドレスを指定し、リモートのSymfoware/RDBと接続する場合

  • Symfoware/RDBの認証機構を使用し、ローカルのSymfoware/RDBと接続する場合は、ユーザ指定を省略できません。

  • リモートのSymfoware/RDBと接続するとき、ユーザ指定を省略した場合は、クライアント用の動作環境ファイルの実行パラメタ“DEFAULT_CONNECTION”に指定された認可識別子とパスワードでサーバに接続します。

DEFAULT
  • DEFAULTを指定した場合は、クライアント用の動作環境ファイルの実行パラメタ“DEFAULT_CONNECTION”に指定された情報が有効となります。

  • ローカルのSymfoware/RDBと接続する場合、本指定に関係なく実行時のログイン名とパスワードでサーバに接続します。

利用者の認証

不当な利用者がサーバに接続することを抑止するため、サーバに接続する時に利用者の認証が行われます。認証の方式は、以下の接続形式により異なります。

  • OSのログイン名で接続する場合

  • データベース専用利用者名で接続する場合

OSのログイン名で接続する場合
  • サーバに接続する利用者の認可識別子とパスワードはサーバにログイン可能で、かつデータベースの使用権限があるログイン名およびパスワードでなければなりません。

データベース専用利用者名で接続する場合
  • サーバに接続する利用者は、CREATE USER文で登録した利用者で、かつデータベースの使用権限がある利用者でなければなりません。

  • CREATE USER文でデータベース専用利用者として登録した利用者は、登録した認可識別子とパスワードを指定します。

  • CREATE USER文でOSの利用者として登録した利用者は、サーバにログイン可能なログイン名およびパスワードを指定します。

ログイン名とパスワード

ログイン名とパスワードは、各サーバでは以下のように扱われます。

SolarisLinuxSolaris/Linuxの場合
ログイン名: ログイン名
パスワード: ログイン名のパスワード

WindowsWindowsの場合
ログイン名: ユーザ名
パスワード: ユーザ名のパスワード

使用例

1

ローカルのSymfoware/RDBと接続する場合(マルチRDB運用の場合)

CONNECT TO 'SYS1.DB01'

2

ローカルのSymfoware/RDBと接続する場合(マルチRDB運用ではない場合)

CONNECT TO 'DB01'

3

リモートのSymfoware/RDBと接続する場合

CONNECT TO 'SV1' USER 'USER1/777###FF'

備考.コネクション名を省略しているためコネクション名は、SQLサーバ名と同じ“SV1”となります。


4

リモートのSymfoware/RDBと接続する場合で、SQLサーバ名、ログイン名およびパスワードをホスト変数で指定します。なお、可変長文字型の展開規則は、“6.3 SQL埋込みCプログラム”を参照してください。

EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR server[13];
    VARCHAR user[26];
EXEC SQL END DECLARE SECTION;
            :
    strcpy(server.sqlvar,"SV1");
    server.sqllen = strlen(server.sqlvar);
    strcpy(user.sqlvar,"USER1/777###FF");
    user.sqllen = strlen(user.sqlvar);
EXEC SQL CONNECT TO :server USER :user;

備考.コネクション名を省略しているためコネクション名は、SQLサーバ名と同じ“SV1”となります。