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 の使用法 » リモート・データとバルク・オペレーション » リモート・データへのアクセス » ディレクトリ・アクセス・サーバの使用

 

ディレクトリ・アクセス・サーバの作成

ディレクトリ・アクセス・サーバを作成するには、Sybase Central で CREATE SERVER 文またはディレクトリ・アクセス・サーバの作成ウィザードを使用します。

ディレクトリ・アクセス・サーバを作成すると、アクセスできるサブディレクトリ数を制限したり、既存のファイルの変更時にディレクトリ・アクセス・サーバを使用できるようになります。

ディレクトリ・アクセス・サーバの設定手順は次のとおりです。

  1. ディレクトリのリモート・サーバを作成します (DBA 権限が必要)。

  2. ディレクトリ・アクセス・サーバを使用するデータベース・ユーザの外部ログインを作成します (DBA 権限が必要)。

  3. コンピュータ上のディレクトリにアクセスするためのプロキシ・テーブルを作成します (RESOURCE 権限が必要)。

♦  ディレクトリ・アクセス・サーバを作成して設定するには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとしてデータベースに接続します。

  2. 左ウィンドウ枠で、[ディレクトリ・アクセス・サーバ] をダブルクリックします。

  3. [ファイル] - [新規] - [ディレクトリ・アクセス・サーバ] を選択します。

  4. ディレクトリ・アクセス・サーバの作成ウィザードの指示に従います。

♦  ディレクトリ・アクセス・サーバを作成して設定するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとしてホスト・データベースに接続します。

  2. CREATE SERVER 文を使用して、リモート・サーバを作成します。

    次に例を示します。

    CREATE SERVER my_dir_tree
    CLASS 'directory'
    USING 'root=c:\Program Files';
  3. CREATE EXTERNLOGIN 文を使用して、外部ログインを作成します。

    次に例を示します。

    CREATE EXTERNLOGIN DBA TO my_dir_tree;
  4. CREATE EXISTING TABLE 文を使用して、ディレクトリのプロキシ・テーブルを作成します。

    次に例を示します。

    CREATE EXISTING TABLE my_program_files AT 'my_dir_tree;;;.';

    この例では、my_program_files がディレクトリの名前、my_dir_tree がディレクトリ・アクセス・サーバの名前です。

次の文では、最大 3 レベルのサブディレクトリにアクセスできる directoryserver3 という名前のディレクトリ・アクセス・サーバを新規に作成し、DBA ユーザのディレクトリ・アクセス・サーバへの外部ログインを作成し、diskdir3 という名前のプロキシ・テーブルを作成します。

CREATE SERVER directoryserver3
CLASS 'DIRECTORY'
USING 'ROOT=c:\mydir;SUBDIRS=3';
CREATE EXTERNLOGIN DBA TO directoryserver3;
CREATE EXISTING TABLE diskdir3 AT 'directoryserver3;;;.';

sp_remote_tables システム・プロシージャを使用すると、データベース・サーバを実行しているコンピュータ上の c:\mydirにあるすべてのサブディレクトリを表示できます。

CALL sp_remote_tables( 'directoryserver3' );

次の SELECT 文を使用すると、c:\mydir\myfile.txt ファイルの内容を表示できます。

SELECT contents
FROM diskdir3
WHERE file_name = 'myfile.txt';

また、表示するサブディレクトリを選択することもできます。

-- Get the list of directories in this disk directory tree.
SELECT permissions, file_name, size
FROM diskdir3
WHERE PERMISSIONS LIKE 'd%';
-- Get the list of files.
SELECT permissions, file_name, size
FROM diskdir3
WHERE PERMISSIONS NOT LIKE 'd%';
参照