ディレクトリ・アクセス・サーバを作成するには、Sybase Central で CREATE SERVER 文またはディレクトリ・アクセス・サーバの作成ウィザードを使用します。
ディレクトリ・アクセス・サーバを作成すると、アクセスできるサブディレクトリ数を制限したり、既存のファイルの変更時にディレクトリ・アクセス・サーバを使用できるようになります。
ディレクトリ・アクセス・サーバの設定手順は次のとおりです。
ディレクトリのリモート・サーバを作成します (DBA 権限が必要)。
ディレクトリ・アクセス・サーバを使用するデータベース・ユーザの外部ログインを作成します (DBA 権限が必要)。
コンピュータ上のディレクトリにアクセスするためのプロキシ・テーブルを作成します (RESOURCE 権限が必要)。
DBA 権限のあるユーザとしてデータベースに接続します。
左ウィンドウ枠で、[ディレクトリ・アクセス・サーバ] をダブルクリックします。
[ファイル] - [新規] - [ディレクトリ・アクセス・サーバ] を選択します。
ディレクトリ・アクセス・サーバの作成ウィザードの指示に従います。
DBA 権限のあるユーザとしてホスト・データベースに接続します。
CREATE SERVER 文を使用して、リモート・サーバを作成します。
次に例を示します。
CREATE SERVER my_dir_tree CLASS 'directory' USING 'root=c:\Program Files'; |
CREATE EXTERNLOGIN 文を使用して、外部ログインを作成します。
次に例を示します。
CREATE EXTERNLOGIN DBA TO my_dir_tree; |
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%'; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |