ここでは、Caché のリソースへのアクセスを制御する、ユーザ名およびパスワードのセットアップ方法の概要を説明します。ここでは、以下のトピックについて説明します。
Caché サーバ・セキュリティ
このセクションでは以下の項目について説明します。
システムの保護
Caché のセキュリティを設定する前に、システムのセキュリティを強化します。システムのセキュリティの確保の大部分は、Caché の範囲外であり、コンピュータ、ネットワーク、およびオペレーティング・システムの物理的な安全性に依存します。サーバは、パスワードや特権などの通常のオペレーティング・システム保護と併せて、ファイアウォールの背後のロックされた領域に属すると仮定します。ユーザが安全なネットワークの外から接続する場合、ユーザはインターネットのプライベート・ワイド・エリア・ネットワーク (WAN) または仮想プライベート・ネットワーク (VPN) を使用する必要があります。ネットワーク上でデータが覗かれないようにするには、標準的なネットワーク暗号化製品により、ネットワーク上で暗号化します。
ユーザ名とパスワード
Caché のさまざまな部分で使用するユーザ名には、3 つの種類があります。
最初の 2 つは、Caché のコントロール・パネル から、3 つめは Caché SQL マネージャ から制御します。
アプリケーションが 1 つのメソッドを使用してアクセスする場合、他のタイプのユーザ名は厳重に制御します。 最も信頼するシステム開発者または管理者からのアクセス以外は、効率的にこれらのアクセス・パスを無効にします。
Caché Direct セキュリティ
以下に関連する Caché Direct のセキュリティ・チェックをセットアップし、実行します。
Caché Direct ユーザ名の作成
Caché コントロール・パネルを使用して、Caché Direct ユーザを追加します。
  1. [セキュリティ] フォルダの左側にあるプラス記号 (+) をクリックして、フォルダを展開します。Windows システムでは 3 つのサブ・フォルダ、OpenVMS と UNIX リモート・システムでは 2 つのサブ・フォルダが表示されます。 各フォルダは、ユーザ名の各タイプを示しています。
  2. [Caché Direct ユーザ] をクリックして、定義されたユーザ名のリストを表示します。新規システムでは既存のユーザがないので、コントロール・パネルの右側は空欄です。
  3. [Caché Direct ユーザ] を右クリックし、ショートカット・メニューから [新規ユーザ] を選択します。
  4. [ユーザの追加] ダイアログ・ボックスに必要事項を入力し、[OK] をクリックします。
    Caché Direct ユーザの追加
既存のユーザ名を変更するには、ユーザ名をダブルクリックし、[ユーザ編集] ダイアログ・ボックスの情報を編集し、[OK] をクリックします。
Note:
[ユーザ名][パスワード] に十分注意してください。 この 2 つのフィールドは Caché Direct では大文字と小文字が区別されます。
Caché Direct セキュリティ・チェックを有効にする
ユーザ名を作成した後、セキュリティ・チェックを有効にする必要があります。
  1. 再度、コントロール・パネルの [セキュリティ] フォルダを展開します。
  2. [Caché Direct ユーザ] を右クリックします。
  3. セキュリティ・チェックを有効にするには、[セキュリティ・チェック可能] をクリックし、この項目の左側にチェック・マークを付けます。再度、このメニュー項目をクリックすると、チェック・マークを外すことができます。
Caché Direct ユーザ名を作成するときに入力したパスワードは、他の Caché GUI ツールと同様に、コントロール・パネルへのアクセスを制御します。コントロール・パネルを閉じる前に、入力したパスワードが正常に動作するかを検証する必要があります。
  1. Caché キューブから、Caché エクスプローラ などの他の Caché ツールを起動します。
  2. 指示に従ってユーザ名とパスワードを入力します。
  3. 先ほど作成したユーザ名とパスワードでうまく動作しない場合は、元のコントロール・パネルに戻り、これらのフィールドの値を検証してください。
  4. 問題を解決できずにコントロール・パネルを閉じる必要がある場合、後でコントロール・パネルを使用することができるように、一時的にセキュリティ・チェックを無効にしておきます。この問題を解決するには、インターシステムズのサポート窓口にお問い合わせください。
セキュリティが有効で、パスワードを忘れてしまった場合、ドキュメントには記載されていないコマンドを使用すると、セキュリティを無効にしてパスワードをリセットし、再度セキュリティを設定することができます。このコマンドの詳細は、インターシステムズのサポート窓口にお問い合わせください。
ユーザ・プロセスの UIC
ユーザ・プロセスは、ユーザ識別コード (UIC) のもとで動作します。これは、そのプロセスに対する特定の特権を指定するために使用します。
OpenVMS や UNIX では、これは Caché が実行しているオペレーティング・システム・プロセスの UIC から取得します。Windows では、UIC の概念はなく、Caché は独自のユーザ・アカウントの概念を導入しています。UIC は各ユーザ・アカウントに関連付けられます。Caché ターミナルまたは telnet セッションが実行しているときに、このアカウントを使用します。すべての OS および Caché ユーザ・アカウントのパスワードの安全は保証されています。
SQL アクセスの制御
Caché への SQL アクセスを制御するには、最初に SQL セキュリティを有効にします。
  1. Caché キューブから、[構成マネージャ] を開きます。
  2. [詳細] タブの [SQL] プロパティを展開し、リストの中央にある [SQL セキュリティ有効][ODBC ネームスペース・セキュリティ有効] の 2 つの項目を検索します。
  3. いずれかが [いいえ] の場合は、[はい] に変更して Caché を再起動します。
[SQL セキュリティ有効 = はい] の場合は、すべての Caché SQL セキュリティがアクティブです。ODBC 経由で (または直接 %msql 変数を設定して) ログインするとき、各ユーザは有効なユーザ名とパスワードを指定する必要があります。特権ベースのテーブル、またはビュー・セキュリティがアクティブな場合、ユーザはアクセス権が与えられたテーブルやビューでのみアクションを実行できます。
[ODBC ネームスペース・セキュリティ = はい] の場合、ユーザにネームスペースへのアクセス権を与えられていれば ODBC 経由でのみそのネームスペースに接続することができます。
テーブルやビューなどの SQL リソースへのアクセスは、SQL ユーザ名およびロールによって制御されます。SQL 標準に従う場合は、別の機能が必要です。すべてのリレーショナル・データベースの概念は類似していますが、詳細は異なります。Caché SQL マネージャを経由して、あるいは CREATE USERGRANT などの SQL 文を使用して、アクセスを管理します。
ネームスペース・レベルの特権を変更するには、SQL GRANT コマンドを使用する必要があります。SQL GRANT コマンド、または Caché SQL マネージャ を使用して、管理者特権とオブジェクトのシステム・レベルの特権を変更することができます。
ODBC ネームスペース・セキュリティを有効にしている場合、システム・ユーザでないユーザには Caché にアクセスする前に、明示的に SQL GRANT コマンドを発行する必要があります。
 GRANT ACCESS ON namespace TO username_or_rolename
ターミナル、または Telnet セッションで実行しているコードは、直接グローバルにアクセスできます。 したがって、SQL レベルのセキュリティは関与しません。SQL 処理を実行するには、ユーザ名を指定する必要がありますが、パスワード・チェックは強制されません。データベースおよびグローバルでの UIC プロテクションの設定により、セキュリティを実行します。
Caché SQL マネージャの使用法
Caché SQL マネージャを使用して、セキュリティ関連の多くのタスクを実行することができます。このユーティリティに関する詳細は、Caché SQL マネージャの使用法 と、Caché SQL の使用法ユーザ、ロール、特権 の章を参照してください。SQL アクセスの制御に必要なタスクに関する簡単な説明は、以下の通りです。
新規ユーザ名の作成
Caché SQL マネージャを使用して、新規のユーザ名を作成する方法は以下の通りです。
  1. [ユーザ] フォルダを展開します。最初は、_PUBLIC_SYSTEM の 2 つのユーザが表示されます。
  2. [ユーザ] を右クリックし、ショートカット・メニューから [新規ユーザ] を選択します。
  3. [新規ユーザ] ダイアログ・ボックスで、名前、説明、パスワード情報を入力し、[OK] をクリックします。[クエリ閾値] フィールドは無視します。
既定の SQL ユーザ名 _SYSTEM は管理者特権を持ちます。のパスワード “SYS” は最初のインストール時には共通で、パスワードの変更 のセクションで説明されている手順で変更することができます。
既定の SQL ユーザ名とパスワードは、大文字と小文字を区別しません。
パスワードの変更
ユーザのパスワードを変更するには、[ユーザ] フォルダを展開し、ユーザ名を右クリックします。ショートカット・メニューの [定義の修正] を選択します。[パスワード] ボックスと [パスワード確認] ボックスに新規のパスワードを入力し、[OK] をクリックします。
パスワードを変更すると、そのパスワードを定義に含む DSN を更新する必要があります。ユーザがパスワードの入力を指示される場所では、変更の必要はありません。
テーブルへのアクセスの許可
テーブルのオーナー (通常テーブルを生成する際に使用したユーザ名) であるか、明示的にユーザ名にアクセス権が与えられていない限り、ユーザ名はテーブルへのアクセス権を持ちません。ユーザ名に対してテーブルへのアクセス権を直接付与することは可能ですが、ロールを定義して、個々のユーザをそのロールに関連付ける方がよりよい方法です。
ロールの作成と、そのロールとユーザの関連付けに関する詳細は、Caché SQL の使用法ユーザ、ロール、特権 の章を参照してください。
ロールを一度定義すると、新規に作成したロールの [プロパティ][オブジェクト] タブを使用して、特定のテーブルに対するオブジェクト特権を与えることができます。この詳細な手順は、Caché SQL マネージャの使用法“ロールと特権” の章の ロールにオブジェクト特権を割り当てる セクションを参照してください。
従来のキャラクタ・セル接続
ターミナル、telnet、LAT 接続は、ユーザ・アカウントのもとで実行します。OpenVMS および UNIX では、ユーザは最初にオペレーティング・システムにログインする必要があります。Windows では、Caché は同じロールを持つユーザ・アカウントを定義することができます。
Windows での ユーザ・アカウント の作成
Caché コントロール・パネルを使用して、Windows 用のユーザ・アカウントを作成します。[セキュリティ] フォルダを展開し、[ユーザ・アカウント] をクリックします。右側のパネルに既存のユーザ・アカウント (TRM: を含む) が表示されます。[ユーザ・アカウント] を右クリックし、ショートカット・メニューから [新規ユーザ] をクリックすると、[新規ユーザを追加] ダイアログ・ボックスが表示されます。
新規ユーザ・アカウントの作成
名前とパスワードを入力します。UIC セキュリティが有効である場合は、このユーザの UIC を選択します。ネームスペースを指定すると、ユーザ・プロセスが開始した際にこれを使用します。[ルーチン] ボックスに情報を入力すると、以下のセクションで説明される専属アカウントが作成されます。
専属アカウント
ユーザのアクセス範囲を (簡単に) 制限するには、ユーザを特定の Caché ルーチンに直接置くという方法があります。 そうすれば、ユーザは Caché ターミナル・プロンプトへのアクセス権を持ちません。UNIX または OpenVMS アカウントでは、OS レベルに専属アカウントを作成することにより、これを実行できます。Windows サーバでは、新規ユーザ・アカウントを作成するときに [ルーチン] フィールドに値を入力します。
ローカル・ターミナル・アクセスのセキュリティ
ユーザ・アカウント TRM: は、ローカルの Caché コンソールからのターミナル・アクセスに使用します。パスワード・プロテクションを追加することもできます。Caché サーバの物理的なセキュリティや Windows レベルのセキュリティに問題がない限りは、通常これは実行しません。
[TRM:] をダブルクリックして、[ユーザ編集] ダイアログ・ボックスを開きます。パスワードの指定と同様に、異なる [ネームスペース] を選択することはできますが、その他の値を変更することはできません。
ローカル・ターミナル・ユーザのパスワードの変更
グローバルへのアクセスの制御
データベースおよびグローバルへのアクセスは、ユーザ・プロセスの UIC により制御されます。UNIX と OpenVMS では、UIC は OS レベルのアカウントから取得します。Windows では、ユーザが接続されているユーザ・アカウントから取得します。
各データベースに UIC を付与することができます。これを行なうには、Caché コントロール・パネルの、[ローカル・データベース] フォルダのデータベース名で右クリックして、[プロパティ] をクリックし、[UIC] を入力した後、[OK] をクリックします。
プロセスは、プロセスとデータベースの UIC によって、[所有者][グループ][ワールド][ネットワーク] のカテゴリに指定されます。データベース内の各グローバルに、プロセスの各カテゴリに対する Read (読み取り)、Write (書き込み)、Delete (削除)、または None (なし) 特権を与えることができます。グローバル名を右クリックし、ショートカット・メニューから [プロパティ] を選択して、これらのグローバル・プロパティを編集することができます。
既定では、システムの UIC (CACHESYS データベースの UIC により指定されたもの) は [0,0] です。 これは、グローバルの更新の前に UIC チェックを実行しないことを示します。この設定を変更すると、チェックを有効にできます。このシステム・デーモンは、システム UIC の下で実行する必要があります。Windows では自動的に実行されますが、OpenVMS および UNIX では設定する必要があります。
UIC を有効にすると、その影響で Caché に接続しているユーザは、ネームスペースの切り替えができなくなります。
ODBC/JDBC、Caché Direct、CSP は、システムの UIC の下で実行するサーバ・プロセスを使用します。これらの接続は、UIC レベルのプロテクションによる影響は受けません。
Telnet アクセス
UNIX および OpenVMS の Telnet 接続は、通常の Telnet 接続機能に依存します。 これは、必ずオペレーティング・システム・レベルで制御されます。Telnet アクセスが必須でない場合は、オペレーティング・システム・レベルで無効にしてください。
Windows 用の Caché は、Telnet 接続に対応していますが、権限のないユーザの使用を防ぐため、これを無効にすることも可能です。
  1. Caché 構成マネージャ を起動し、[詳細] タブをクリックします。
  2. [開始] プロパティを展開します。
  3. [端末] から [Telnet] を開きます。
  4. [Telnet の開始] が [いいえ] に設定されていることを確認してください。
Telnet が許可されている場合、ユーザはユーザ名とパスワードを提供し、プロセスは対応する UIC を持ちます。
アプリケーション・レベルのセキュリティ
アプリケーション開発者は、データベース・セキュリティに加え、セキュリティの維持管理も担います。
例えば、最も基本的なレベルでは、データベースにアクセスする Web アプリケーションには、ユーザにユーザ名とパスワードを入力するように指示し、ユーザが適切に Caché にログインできるようにするという役割があります。
データベースのセキュリティに加え、アプリケーションは、ユーザがアクセスできる Web アプリケーションのページの制御や、ユーザがデータベースのテーブルへのアクセスを試行する前にアクセスを拒否するなどのセキュリティも管理します。
アプリケーションには、簡単に中断されるアクティビティを高レベルで記録するという共通の機能があります。データベースは、特定の ODBC 機能が任意のユーザに実行されたことを記録しますが、レベルの低いコマンドの内容は詳細に記録しません。
システムへのアクセスの記録
Caché には、情報を記録する機能がいくつかあります。すべてに、アプリケーション設計者またはシステム管理者による特別な操作が必要です。
ご使用のシステムに ODBC からアクセスする各ユーザの詳細を記録するには、インターシステムズは標準の機能をオーバーライドする SQL ログイン の実装をお勧めします。ご要望に応じて、簡単な例を提供できます。インターシステムズのサポート窓口にお問い合わせください。
Caché の他の部分のコールバック機能は、その他の検査追跡機能を提供します。
ユーザ名とパスワードの提供
Caché Direct ユーザ
オブジェクト・ファクトリを使用してアプリケーションにアクセスするために、接続文字列にユーザ名とパスワードを含むことができます。ユーザ名が指定されていない場合、Visual Basic アプリケーションは自動的にユーザに要求しますが、Java アプリケーションは、アクセスを拒否します。アプリケーションは、Caché に接続する前にユーザ名とパスワードをユーザに要求します。
Note:
Caché 5.0 より前のバージョンでは、Visual Basic は接続文字列内にユーザ名を許可しておらず、常にユーザが入力する必要がありました。
SQL ユーザ
ODBC アプリケーションは、DSN の定義または ODBC 接続文字列のいずれかで、パスワードを提供できます。
JDBC アプリケーションは、接続文字列内でパスワードを提供する必要があります。
CSP アプリケーションは、$System.SQL.Login() メソッドを使用して、セッションを SQL ユーザ名に書き込みます。ユーザ名は、%session 変数内に保持されます。