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