Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
データベースサーバとテンポラリディレクトリを必要とする SQL Anywhere コマンドラインユーティリティが使用するテンポラリファイルのロケーションを指定します。
SATMP=directory-name
SQL Anywhere では、データベースサーバ関連のテンポラリファイル (すべてのプラットフォームで作成) と通信関連のテンポラリファイル (UNIX のクライアントとサーバでのみ作成) の 2 種類のテンポラリファイルが作成されます。
SATMP 環境変数には、データベースサーバとテンポラリディレクトリを必要とする SQL Anywhere コマンドラインユーティリティが使用するテンポラリファイルのロケーションが指定されます。このファイルは、データベースサーバをサービスとして実行する場合に役立ちます。テンポラリファイルをほかのプログラムがアクセスできないディレクトリに保存できるからです。
データベースサーバの起動時にテンポラリファイルのロケーションが -dt オプションで指定されていない場合は、データベースサーバによって SATMP 環境変数の値が確認され、テンポラリファイルの配置場所が決められます。SATMP 環境変数が存在しない場合は、TMP、TMPDIR、TEMP のうち最初に存在する環境変数が使用されます。Windows では、これらの環境変数がいずれも存在しない場合、現在のディレクトリが使用されます。UNIX では、これらの環境変数のいずれも存在しない場合、/tmp が使用されます。
Windows Mobile では、サーバのテンポラリフォルダとして使用するディレクトリをレジストリに指定できます。 Windows Mobile 上のテンポラリファイルのロケーションについては、Windows Mobile でのレジストリ設定を参照してください。
UNIX では、共有メモリを介して接続する場合、クライアントとデータベースサーバの両方で SATMP を同じ値に設定する必要があります。
SQL Anywhere バージョン 9 以前では、環境変数 ASTMP は SATMP と同じです。共有メモリを使用してバージョン 9 およびバージョン 10 ソフトウェアに接続している場合は、SATMP 環境変数と ASTMP 環境変数を設定して、テンポラリディレクトリの (同じ) ロケーションを指定する必要があります。
データベースサーバや UNIX 上のクライアントで作成されたテンポラリファイルのパーミッションを制限する場合は、この環境変数に、次のリストにないディレクトリを設定します。
上記のリストにないディレクトリが SATMP に設定されている場合、データベースサーバは、現在のユーザが所有し、パーミッションが 770、707、700 のいずれかに設定されているディレクトリで指定のディレクトリパスを検索します。パーミッションがそれ以外の値に設定されている場合は、パーミッションを 777 に設定してファイルを作成します。データベースサーバは、検出された各ディレクトリについて、該当するパーミッション (それぞれ other、group、other+group に対応) をテンポラリファイルの作成に使用するパーミッションマスクから削除します。
上記のリストにないディレクトリを SATMP に設定すると、別の UNIX アカウントを使用するユーザが共有メモリを介してデータベースサーバに接続できなくなる場合があります。
UNIX 上で共有メモリ接続をセキュリティで保護する方法の詳細については、SATMP 環境変数をユニークなディレクトリに設定 (UNIX)を参照してください。