ユーザ
この章は、以下のセクションで構成されます。
ユーザのプロパティ
Caché の各ユーザ・アカウントには多くのプロパティがあります。ユーザの [一般] タブに表示されるプロパティは以下のとおりです。
プロパティ名 | プロパティの説明 |
---|---|
名前 | 128 文字以内の一意のユーザ識別子。この識別子には、“@” と “*” を除くすべての文字を使用できます。名前は大文字と小文字が区別されません。すべてのユーザ名に Unicode 文字を使用することができます。 |
フルネーム | このユーザの表示可能な名前。 |
コメント | 任意のテキスト。 |
パスワード | 新しいパスワードの値。このページを閲覧するユーザの特権に関係なく、この値を見ることはできません。%Admin_Secure:Use 特権を持つユーザ、または %All ロールに割り当てられているユーザであれば、他のユーザのパスワードを変更できます。この機能は、ユーザがパスワードを忘れた場合や、パスワードを紛失した場合などに使用します。パスワードは最長 128 文字で、大文字と小文字が区別されます。すべてのパスワードに Unicode 文字を使用することができます。 |
パスワード確認 | 新しいパスワードの値の確認。 |
次回のログインでパスワード変更 | 次回ユーザがログインしたときに、パスワードの変更を求めるかどうかを指定するチェック・ボックス。 |
パスワードを無期限にする | システム規模のパスワードの有効期限をこのユーザに適用するかどうかを指定するチェック・ボックス。チェックを付けると、システムの制限より長い期間パスワードを変更しなくてもユーザのパスワードは期限切れになりません。パスワードの有効期限を設定するには、"システム規模のセキュリティ・パラメータ" のページを参照してください。 |
ユーザ有効 | このアカウントが現在有効であるかどうかを指定するチェック・ボックス。 |
有効期限 | このアカウントを使用できる最後の日付。 |
アカウントを無期限にする | システム規模のアカウント不活動上限をこのユーザに適用するかどうかを指定するチェック・ボックス。チェックを付けると、システムの制限より長い期間アカウントが不活動でもユーザのアカウントは期限切れになりません。不活動上限を設定するには、"システム規模のセキュリティ・パラメータ" のページを参照してください。 |
実行開始ネームスペース | ターミナル・タイプのサービスからログインした後、実行を開始する場所となるネームスペース。このプロパティは、Caché を呼び出すコマンドで指定されたネームスペースの値より優先して適用されます。 |
Tag^Routine の起動 | ターミナル・タイプのサービスからログインした後、自動的に実行されるルーチン。このプロパティは、Caché を呼び出すコマンドで指定されたルーチンの値より優先して適用されます。 |
携帯電話サービス・プロバイダ | 2 要素認証用のユーザの携帯電話サービス・プロバイダ。 |
携帯電話番号 | 2 要素認証用の携帯電話番号。2 つ目の認証トークン (要素) を含むテキスト・メッセージをユーザが受信する携帯電話番号です。 |
タイプ ([ユーザ] ページにのみ表示されます) | ユーザの種類。これは使用している認証メカニズムとロール割り当てメカニズムによって決まります。値は Caché パスワード・ユーザ、代行ユーザ、Kerberos ユーザ、LDAP ユーザ、または OS ユーザのいずれかです。ユーザ・タイプの詳細は、“ユーザ・タイプについて” のセクションを参照してください。 |
ユーザ・タイプについて
ユーザの Type はユーザ・プロパティの 1 つです。以下のようなタイプがあります。
-
Caché パスワード・ユーザ — このユーザは、Caché ログイン、Kerberos 認証 (代行承認を使用していない場合)、またはオペレーティング・システム認証 (代行承認を使用していない場合) により認証されます。ユーザを編集したり何らかの方法で変更したりするための Caché ツールは、Caché パスワード・ユーザに対して使用します。
-
代行ユーザ — ユーザ定義の認証メカニズムを通じて認証されます。Caché ツールは、このタイプのユーザのプロパティを表示するためにのみ使用できます。ユーザのプロパティは、ツール以外の外的な手段を使って編集する必要があります。
-
Kerberos ユーザ — このユーザは、代行承認を使用している場合に、Kerberos を使用して認証されます。代行承認では、このタイプのユーザのプロパティを表示する目的でのみ Caché ツールを使用できます。このユーザのプロパティは、Cach ツール以外の外部手段を使用して編集し、ZAUTHORIZE ルーチンで指定する必要があります (“代行承認” の章を参照)。代行承認を使用せずに Kerberos でユーザを承認する場合、ユーザのタイプは Caché パスワード・ユーザです。
-
LDAP ユーザ — LDAP を通じて認証されます。Caché ツールは、このタイプのユーザのプロパティを表示するためにのみ使用できます。ユーザのプロパティは、ツール以外の外的な手段を使って編集する必要があります。
-
OS ユーザ — このユーザは、代行承認を使用している場合に、オペレーティング・システム (OS) を使用して認証されます。代行承認では、このタイプのユーザのプロパティを表示する目的でのみ Caché ツールを使用できます。このユーザのプロパティは、Cach ツール以外の外部手段を使用して編集し、ZAUTHORIZE ルーチンで指定する必要があります (“代行承認” の章を参照)。代行承認を使用せずにオペレーティング・システムでユーザを承認する場合、ユーザのタイプは Caché パスワード・ユーザです。
1 人のユーザが持つタイプは 1 つのみです。あるタイプのユーザは、別のタイプに関連付けられている認証メカニズムを使用してログインすることはできません。
ユーザ・タイプ、認証、およびロール割り当ての相互関係に関する詳細は、“認証” の章の “Authentication-Authorization Matrix” を参照してください。
ユーザの作成および編集
ユーザの作成または編集のために、管理ポータルには [ユーザ編集] ページが用意されています。これは、作成または編集される各ユーザの [ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) とは異なります。ユーザを作成する場合と編集する場合とでは、このページに以下の違いがあります。
-
新規ユーザを作成するときは、[名前] フィールドに値を入力できます。
-
既存のユーザを編集するときは、[名前] フィールドには書き込めません。
新規ユーザの作成
新規ユーザを作成するには、以下の手順に従います。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) に移動します。
-
[ユーザ] ページで、[新規ユーザ作成] を選択します。[ユーザ編集] ページの [一般] タブが表示され、ここでユーザを作成および構成します。
-
[ユーザ編集] ページで、"ユーザのプロパティ" で説明した以下のユーザ・プロパティの値を設定します。
-
[名前] (必須) — 一意のユーザ識別子。
-
[コピー元] (オプション) — 別のユーザの名前。このユーザの設定が新しいユーザの基礎となります。詳細は次の手順を参照してください。
-
[フルネーム] (オプション) — このアカウントの表示可能な名前。
-
[コメント] (オプション) — 任意のテキスト。
-
[パスワード] (必須) — 新しいパスワードの値。
-
[パスワード確認] (必須) — 新しいパスワードの値の確認。
-
[次回のログインでパスワード変更] (オプション) — 次回ログインしたときに、パスワードの変更を求めるかどうか。
-
[パスワードを無期限にする] (オプション) — システム規模のパスワードの有効期限を超えてもユーザのパスワードを有効にするかどうか。パスワードの有効期限の詳細は、"システム規模のセキュリティ・パラメータ" のページを参照してください。
-
[ユーザ有効] (必須) — このアカウントが使用できるかどうか。
-
[有効期限] (オプション) — このアカウントを使用できる最後の日付。
-
[アカウントを無期限にする] (オプション) — システム規模の不活動上限を超えてもユーザのアカウントをアクティブのままにするかどうか。不活動上限の詳細は、"システム規模のセキュリティ・パラメータ" のページを参照してください。
-
[実行開始ネームスペース] (オプション) — ターミナル・タイプのサービスからログインした後、実行を開始する場所となるネームスペース。
-
[Tag^Routine の起動] (オプション) — ターミナル・タイプのサービスからログインした後、自動的に実行されるルーチン。
-
[携帯電話サービスプロバイダ] — 2 要素認証用のユーザの携帯電話サービス・プロバイダ。ユーザの携帯電話サービス・プロバイダがこのリストに表示されていない場合は、[新規プロバイダ] をクリックして新規プロバイダを追加できます。この操作を行うと、新規携帯電話サービス・プロバイダを追加するためのフィールドが表示され、追加したプロバイダが表示されるようになります。
-
[携帯電話番号] — 2 要素認証用の携帯電話番号。2 つ目の認証トークン (要素) を含むテキスト・メッセージをユーザが受信する携帯電話番号です。
-
-
類似の特性を持つ複数のユーザを簡単に作成するには、[ユーザ編集] 画面にある [コピー元] フィールドを使用して新規ユーザの作成を開始します。このフィールドのドロップダウン・メニューから既存のユーザを選択すると、そのユーザが持つ以下のプロパティ値が、作成するユーザのプロパティに入力されます。
-
[フルネーム]
-
[有効期限]
-
[デフォルト・ネームスペース]
-
[デフォルト Tag^Routine]
-
-
[保存] ボタンをクリックすると、この新規ユーザが作成されます。
ユーザ・アカウントを作成した後、その特性を編集できます。
既存のユーザの編集
ユーザ・アカウントを作成すると、[ユーザ編集] ページの [一般] タブでその基本的なプロパティを変更できます。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) に移動します。
-
[ユーザ] ページには、ユーザのテーブルがあります。既存のユーザを編集するには、テーブルからユーザの名前を選択します。[ユーザ編集] ページの [一般] タブが表示され、ここでユーザを作成および構成します。
-
[ユーザ編集] ページで、"ユーザのプロパティ" で説明した以下のユーザ・プロパティの値を変更できます。
-
[フルネーム]
-
[コメント]
-
[パスワード] — このページを使用して新規のパスワードを設定する場合、そのパスワードは、[システムセキュリティ設定] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) の [パスワードパターン] フィールドで指定されているパターン (文字のタイプおよび長さ) に適合している必要があります。
-
[次回ログイン時にパスワード変更]
-
[パスワードを無期限にする]
-
[ユーザ有効]
-
[有効期限]
-
[アカウントを無期限にする]
-
[開始ネームスペース] — ターミナルのネームスペースのプロパティを指します。
-
[開始 Tag^Routine] — ターミナルのルーチンのプロパティを指します。
-
[携帯電話サービスプロバイダ]
-
[携帯電話番号]
-
-
[保存] ボタンをクリックすると、このユーザの新規の値が保存されます。
このページにある他のタブでは、ユーザ・アカウントの以下の特性を変更することもできます。
-
ロール — そのユーザが現在保持しているロールが一覧表示されます。このページでは、ユーザに新しいロールを与えることもできます。また、ユーザからロールを削除することもできます。
-
SQL プロパティ — 以下のプロパティがあります。
-
[SQL権限] — ユーザが現在保持しているすべての SQL 特権をネームスペース単位で一覧表示します。このページで SQL 特権を割り当て、または削除することもできます。
-
[SQLテーブル] — ユーザに与えられた特権 (%ALTER、DELETE、INSERT、REFERENCES、SELECT、および UPDATE) の対象となっているテーブルがネームスペースごとに一覧表示されます。このページで SQL テーブルの特権を割り当て、または削除することもできます。
-
[SQLビュー] — ユーザに与えられた特権 (%ALTER、DELETE、INSERT、REFERENCES、SELECT、および UPDATE) の対象となっているビューがネームスペースごとに一覧表示されます。このページで SQL ビューの特権を割り当て、または削除することもできます。
-
[SQLプロシージャ] — ユーザが実行できるストアド・プロシージャがネームスペースごとに一覧表示されます。このページで、プロシージャを実行する権限を割り当て、または削除できます。
-
ユーザ・アカウントに対する変更は、ユーザがログアウトし、改めてログインした後で初めて有効になります。
ユーザのロールの変更
[ユーザの編集] ページの [ロール] タブでは、以下の手順でユーザをロールに割り当てたり、ユーザをロールから削除したりできます。
-
ユーザをロールに割り当てるには、まずそのロールを [使用可能] リストから [選択済み] リストに移動します (ロールをダブルクリックするか、ロールを選択して一重の右矢印をクリックします)。次に [割り当てる] ボタンをクリックすると、そのユーザがロールに割り当てられます。
-
すべてのロールにユーザを割り当てるには、[使用可能] リストから [選択済み] リストを指している二重矢印をクリックします。次に [割り当てる] ボタンをクリックすると、このユーザがすべてのロールに割り当てられます。
Note:すべてのロールにユーザを割り当てると、事前定義の %SecureBreak ロールも含まれます。これはユーザの能力を限定します (拡張しません)。ユーザを %SecureBreak ロールに割り当てると、Caché の保護されたデバッグ・シェルが有効になります。これは、ユーザが発行できるコマンドを制限します。これは他の領域でも予期しない結果をもたらす場合があります。
-
ロールからユーザを削除するには、ロール名の右側にある ボタンをクリックします。
-
すべてのロールからユーザを削除するには、現在割り当てられているロールが表示されたテーブルの下にある [すべて削除] をクリックします(このボタンは、ユーザが複数のロールに割り当てられている場合のみ表示されます)。
ユーザの SQL 関連オプションの変更
どのユーザに対しても、以下の SQL 関連の特性を付与または削除できます。
一般的な SQL 特権
[ユーザ編集] ページの [SQL 権限] タブで、ユーザの SQL 特権を追加または削除できます。
-
ユーザに特権を追加するには、まずその特権を [使用可能] リストから [選択済み] リストに移動します (特権をダブルクリックするか、特権を選択して一重の右矢印をクリックします)。次に [割り当てる] ボタンをクリックすると、その特権がユーザに与えられます。追加した特権を他のユーザに付与できる特権も追加するには、[使用可能] リストの下にある該当のボタンをクリックします。
-
ユーザにすべての特権を追加するには、[使用可能] リストから [選択済み] リストを指している二重矢印をクリックします。次に [割り当てる] ボタンをクリックすると、これらの特権がユーザに与えられます。追加した特権を他のユーザに付与できる特権も追加するには、[使用可能] リストの下にある該当のボタンをクリックします。
-
ユーザから特権を削除するには、特権の名前の右にある [削除] リンクをクリックします。
-
すべての特権をユーザから削除するには、現在割り当てられている特権が表示されたテーブルの下にある [すべて削除] ボタンをクリックします。
利用できる特権は、以下のとおりです。
-
%ALTER _TABLE — 指定されたネームスペースについて、ユーザは ALTER TABLE コマンドを実行できます。
-
%ALTER _VIEW — 指定されたネームスペースについて、ユーザは ALTER VIEW コマンドを実行できます。
-
%CREATE_FUNCTION — 指定されたネームスペースについて、ユーザは CREATE FUNCTION コマンドを実行できます。
-
%CREATE_METHOD — 指定されたネームスペースについて、ユーザは CREATE METHOD コマンドを実行できます。
-
%CREATE_PROCEDURE — 指定されたネームスペースについて、ユーザは CREATE PROCEDURE コマンドを実行できます。
-
%CREATE_QUERY — 指定されたネームスペースについて、ユーザは CREATE QUERY コマンドを実行できます。
-
%CREATE_TABLE — 指定されたネームスペースについて、ユーザは CREATE TABLE コマンドを実行できます。
-
%CREATE_TRIGGER — 指定されたネームスペースについて、ユーザは CREATE TRIGGER コマンドを実行できます。
-
%CREATE_VIEW — 指定されたネームスペースについて、ユーザは CREATE VIEW コマンドを実行できます。
-
%DROP_FUNCTION — 指定されたネームスペースについて、ユーザは DROP FUNCTION コマンドを実行できます。
-
%DROP_METHOD — 指定されたネームスペースについて、ユーザは DROP METHOD コマンドを実行できます。
-
%DROP_PROCEDURE — 指定されたネームスペースについて、ユーザは DROP PROCEDURE コマンドを実行できます。
-
%DROP_QUERY — 指定されたネームスペースについて、ユーザは DROP QUERY コマンドを実行できます。
-
%DROP_TABLE — 指定されたネームスペースについて、ユーザは DROP TABLE コマンドを実行できます。
-
%DROP_TRIGGER — 指定されたネームスペースについて、ユーザは DROP TRIGGER コマンドを実行できます。
-
%DROP_VIEW — 指定されたネームスペースについて、ユーザは DROP VIEW コマンドを実行できます。
テーブルの特権
[ユーザ編集] ページの [SQL テーブル] タブで、ユーザに対してテーブル関連 SQL 特権を追加または削除できます。
ビューに対する特権
[ユーザ編集] ページの [SQL ビュー] タブで、ユーザに対してビュー関連 SQL 特権を追加または削除できます。
ビューの特権を追加する手順は、以下のとおりです。
ストアド・プロシージャの特権
[ユーザ編集] ページの [SQL プロシージャ] タブで、ストアド・プロシージャに関連する、ユーザの SQL 特権を追加または削除できます。
ストアド・プロシージャの特権を追加する手順は、以下のとおりです。
-
ページ上部近くにあるドロップダウンから、該当のネームスペースを選択します。そのネームスペースのストアド・プロシージャのリストが表示されます。
-
このウィンドウの下にある [追加] ボタンをクリックすると、[プロシージャ権限を...に付与] ダイアログが表示されます。
-
このダイアログの上部にあるドロップダウンから、追加するプロシージャを含むスキーマを選択します。ページの左側部分にある [使用可能] ウィンドウに、このスキーマのプロシージャのリストが表示されます。
-
1 つ以上のプロシージャを、[選択済み] ウィンドウに移動します。[EXECUTE] チェック・ボックスにチェックが付いていることを確認します。これによって、ストアド・プロシージャを実行する特権を、このユーザが保持できるようになります。
-
必要に応じ、この特権を他のユーザに与える機能をこのユーザに与えることができます。この処理を実行するには、このページの下部近くにある [このユーザに Grant 権限を付与する場合はここをチェックします。] ボックスにチェックを付けます。
-
[適用] ボタンをクリックすると、目的の特権がユーザに与えられます。
ユーザのストアド・プロシージャの特権を削除する手順は、以下のとおりです。
-
ページ上部近くにあるドロップダウンから、該当のネームスペースを選択します。そのネームスペースのストアド・プロシージャのリストが表示されます。
-
ストアド・プロシージャの特権を変更するには、そのテーブルの行にある [編集] ボタンをクリックします。特権を変更するためのページが表示されます。
-
表示されたページで、[EXECUTE] チェック・ボックスのチェックを外し、[このユーザに Grant 権限を付与する場合はここをチェックします。] チェック・ボックスを目的に応じて設定します。
-
[適用] ボタンをクリックすると、ユーザの目的の特権が変更されます。
既存のユーザの確認および管理
現在の既存ユーザのリストを確認するには、ポータルで [ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) を調べます。このページでは、"ユーザのプロパティ" で詳しく説明している以下のフィールドに情報が表示されます。
-
[ユーザ] — このユーザに対する一意の識別子
-
[フルネーム] — このユーザの表示可能な名前
-
[有効] — このユーザが現在有効化されているかどうか
-
[ネームスペース] (既定のネームスペース) — ターミナル・タイプの接続で使用される最初のネームスペース
-
[ルーチン] (既定のルーチン) — ターミナル・タイプの接続で実行される最初のルーチン
-
[タイプ] — ユーザの種類。これは使用している認証メカニズムとロール割り当てメカニズムによって決まります。
それぞれのユーザについて以下の操作が可能です。
ユーザの削除
ユーザを削除する方法は、以下のとおりです。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) に移動します。
-
[ユーザ] ページで、削除するユーザの行にある [削除] ボタンを選択します。
-
操作を確認するダイアログが表示されます。ユーザを削除する場合は [OK] をクリックし、それ以外の場合は [キャンセル] をクリックします。
ユーザ・プロファイルの表示
ユーザ・プロファイルには、ユーザが割り当てられているロールや最後にログインした日時など、ユーザ・アカウントに関するセキュリティ情報が含まれます。ユーザのプロファイルを表示する手順は以下のとおりです。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理] > [セキュリティ] > [ユーザ]) に移動します。
-
[ユーザ] ページで、そのユーザに対応する行の [プロファイル] をクリックします。ユーザのプロファイルが表示されます。
また、ユーザの [ユーザ編集] ページが表示されている場合は、ページの左上にある [プロファイル] をクリックします。
ユーザ・プロファイルの一部として、以下のプロパティが表示されます。
プロパティ名 | プロパティの説明 |
---|---|
名前 | 一意のユーザ識別子。@ を除くあらゆる文字を使用できます。@ はドメインを識別するために使用します。これは [ユーザ編集] ページで編集できます。 |
フルネーム | このユーザの表示可能な名前。これは [ユーザ編集] ページで編集できます。 |
ロール | ユーザに割り当てられているロールのコンマ区切りリスト。これらは [ユーザ編集] ページの [ロール] タブで編集できます。 |
最終パスワード変更 | ユーザが最後にパスワードを変更した日付と時刻。 |
最終ログイン | 前回正常にログインした日時。まだ正常にログインしていない場合は 0 です。読み取り専用。 |
最終ログイン・デバイス | ユーザが前回ログインしたログイン元のホストの IP アドレス。 |
不正ログイン試行 | 前回の正常なログイン以降に発生した、不正なログインの試行回数。読み取り専用。 |
最終不正ログイン | 前回行われた不正なログイン試行の日時。読み取り専用。 |
最終不正ログイン・デバイス | ユーザが前回のログインの試行に失敗したときのログイン元ホストの IP アドレス。 |
前回のログイン失敗の理由 | 前回行われた無効なログイン試行で発生したエラー。読み取り専用。 |
アカウント作成日時 | ユーザ・アカウントが作成された日時。読み取り専用。 |
アカウント作成者のユーザ名 | アカウントを作成したユーザに関連付けられたアカウント名。読み取り専用。 |
アカウントの最終変更日時 | 前回行われたアカウント変更の日時。読み取り専用。 |
最終アカウント変更ユーザ名 | 前回アカウントを変更したユーザに関連付けられたアカウント名。読み取り専用。 |
アカウントの最終変更情報 | アカウントに関して前回変更したプロパティのリスト。読み取り専用。 |
事前定義のユーザ・アカウント
Caché の各インスタンスには、自動的に以下のアカウントが作成されます。
ユーザ名 | 割り当てられたロール | 目的 |
---|---|---|
Admin | %Manager | 既定の管理者アカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、インスタンスの管理をサポートします。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更することをお勧めします。 |
CSPSystem | (なし) | 通常のインスタンスおよびロック・ダウン・インスタンスのために Caché ログインを通じて Caché に接続するときの CSP ゲートウェイを表す既定のアカウント。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更することをお勧めします。 |
SuperUser | %All | 利用できるすべての特権を持つ既定のアカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、製品のすべての側面に完全にアクセスすることが可能になります。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更することをお勧めします。 |
UnknownUser | %All (最小のセキュリティ)、またはなし (通常のセキュリティ、またはロック・ダウン・セキュリティ) | 非ログイン・ユーザの既定のアカウント |
_PUBLIC | (なし) | すべてのユーザ (ログイン・アカウント以外) に与えられる特権のセット |
_SYSTEM | %All | 既定の SQL アカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、SQL アクセスを提供します。プロダクション・システムではこのアカウントを無効にすることをお勧めします。 |
_Ensemble | %All | 内部 Ensemble ユーザ (ログイン・アカウント以外)。Ensemble インスタンスのみ。 |
“特権ユーザ・アカウント” というアカウントもあり、これは通常のインストールまたはロック・ダウン・インストールで作成されます。このアカウントに、ユーザ名とパスワードを指定します。
以下のアカウントは削除できません。
-
_Ensemble
-
_PUBLIC
-
_SYSTEM
-
UnknownUser
その他の事前定義済みのユーザ・アカウントは、%All ロールを持つユーザーが 1 人以上存在しているという要件が満たされていれば削除できます。
配置したシステムに、パスワードを既定の “SYS” のままとした _SYSTEM アカウントが存在していると、セキュリティ面で脆弱になります。この問題を解決するには、そのアカウントを無効にするか、パスワードを変更します。普通はアカウントを無効にすることをお勧めします。
既定の事前定義アカウントの動作
事前定義アカウントが既定で備える動作内容は、インストールが最小のセキュリティ、通常のセキュリティ、またはロック・ダウン・セキュリティのいずれの条件で実行されたかによって異なります。
最小のセキュリティでの既定の動作
最小のセキュリティによるインストールでは、作成されたすべてのアカウントのうち、_PUBLIC を除くアカウントで、最初の既定のパスワードが “SYS” に設定されます。Caché インスタンスに対する承認されないアクセスを防止するために、UnknownUser を除くすべてのアカウントで、インストール完了後にアカウントのパスワードを変更する必要があります。
_PUBLIC アカウントには既定のパスワードはありません。このアカウントが有効になることはないので、パスワードを指定しないでください。
通常のセキュリティでの既定の動作
通常のセキュリティによるインストールでは、作成されたすべてのアカウントのうち、_PUBLIC を除くアカウントで、特権ユーザ・アカウント用に選択されたものと同じパスワードを受け取ります。インストール完了後にこれらのパスワードを変更し、アカウントごとに独自のパスワードとすることをお勧めします。
_PUBLIC アカウントには既定のパスワードはありません。このアカウントが有効になることはないので、パスワードを指定しないでください。
ロック・ダウン・セキュリティでの既定の動作
ロック・ダウン・セキュリティによるインストールでは、作成されたすべてのアカウントのうち、_PUBLIC を除くアカウントで、特権ユーザ・アカウント用に選択されたものと同じパスワードを受け取ります。インストール完了後にこれらのパスワードを変更し、アカウントごとに独自のパスワードとすることをお勧めします。
_PUBLIC アカウントには既定のパスワードはありません。このアカウントが有効になることはないので、パスワードを指定しないでください。ロック・ダウン・インストールでは、_SYSTEM アカウントも無効になっています。
さまざまなアカウントに関するメモ
UnknownUser アカウント
特定のアプリケーションやアプリケーションの特定の部分では、承認されないユーザに対しても、Caché へのアクセスを許可する妥当な理由が存在することがあります。例えば、小売システムでユーザが購入手続きを開始する前に、商品の在庫を確認する場合です。このような状況を考慮して、Caché には UnknownUser アカウントが用意されています。認証されていないユーザが接続すると、特別な名前である UnknownUser が $USERNAME に割り当てられ、このユーザに定義されているロールが $ROLES に割り当てられます。
認証されていないアクセスは、認証に失敗したときに使用されるものではありません。 例えば、ターミナル経由で Caché に接続しようとしているユーザがユーザ名とパスワードを入力したが、認証に失敗したとします。この場合は、認証されていないアクセスが許可されていても、このユーザは Caché に接続されません。一方、認証されていないアクセスが許可されているときに、同じユーザがユーザ名を指定せずに (例えば、ユーザ名のプロンプトで Enter キーを押します) Caché に接続すると、このユーザは認証されていないユーザ UnknownUser として接続されます。同様に、ODBC クライアントがユーザ名とパスワードに NULL 文字列を使用して接続しようとすると、認証されていない接続が該当のサービスに対して許可されていれば、この接続は受け入れられます。同じ ODBC クライアントが、空文字列ではないユーザ名とパスワードを指定すると認証に失敗し、その結果、認証されていないアクセスが許可されていても、このクライアントは接続されません。
_PUBLIC アカウント
事前定義のユーザ _PUBLIC は、ログインでは使用できない特殊なアカウントです。このアカウントはロールのセットを保持するものです。これらのロールは、システムに接続するすべてのユーザに対して既定のロールとして指定されています。これにより、どのようなユーザにも最低限のロールのセットを与えることができます。例えば、%Operator ロールを _PUBLIC ユーザに関連付けると、$Roles の値には必ず %Operator が含まれます。
ユーザ・アカウントの検証
アプリケーション・コードでユーザ・アカウントを検証する必要がある場合は、$SYSTEM.Security.Login メソッドの引数を 1 つ使用する形式を使って、このユーザのログインを試行するシンプルなルーチンを作成して実行します。ログインに成功したら、このユーザは正当なユーザです。ログインに失敗した場合は不正です。ログインが成功するかどうかには関係なく、このルーチンが存在する場合、現在のユーザがこのルーチンを呼び出したユーザになります。
以下はこのタスクを実行するサンプル・ルーチン ValidateUser です。
ValidateUser(TestUser) {
Write "Validating ",TestUser,"...",!
New $Roles
Set sc = $SYSTEM.Security.Login(TestUser)
If sc = 1 {
Write $Username," is a valid user.",!
Write $Username," belongs to the following login roles: ",$Roles,!
} Else {
Write TestUser," is not a valid user.",!
}
Quit sc
}
このルーチンは、検証の対象となるユーザの名前を表す文字列を唯一の引数として取ります。その後、以下のアクションを実行します。
-
New $Roles を呼び出し、$Roles 変数と $Username 変数の両方をスタックします。$Roles に関する詳細は、リファレンスの $Roles を参照してください。
-
その後、引数を 1 つ取る形式の $SYSTEM.Security.Login メソッドを呼び出します。このメソッドはユーザのログインを試行します。ユーザのパスワードは必要ありません。ログインに成功すると、このメソッドは 1 を返します。これにより、ルーチンが表示する情報とルーチンの返り値が決まります。
-
このルーチンが存在する場合は、ログインに成功することで、ユーザが暗黙的にログアウトされます。
このルーチンは、引数を 1 つ取る形式の $SYSTEM.Security.Login メソッドを使用します。引数を 1 つ取る形式の $SYSTEM.Security.Login を正常に呼び出すには、ユーザに CACHESYS:Write 特権と %Service_Login:Use 特権が必要です。$SYSTEM.Security.Login に関する詳細は、リファレンスの %SYSTEM.SecurityOpens in a new tab クラスを参照してください。
以下は、ValidateUser の呼び出し方法を示すサンプル・ルーチン VUTest です。これは、ValidUser と NonexistentUser という 2 人のユーザをテストするようにハード・コード化されています。
VUTest() {
Write $Username," is the current user.",!,!
Set sc = $$^ValidateUser("ValidUser")
Write !
Write "Exited validation code. ",$Username," is the current user.",!,!
Set sc = $$^ValidateUser("NonexistentUser")
Write !
Write "Testing complete.",!
Write $Username," is the current user."
Quit 1
}
VUTest ルーチンは Caché インスタンスの User ネームスペースで作成され、PrivilegedUser アカウントは %All ロールのメンバであり、ValidUser のみが存在するとします。ターミナル・プロンプトで VUTest を呼び出した結果は以下のとおりです。
Username: PrivilegedUser Password: *********** USER>d ^VUTest PrivilegedUser is the current user. Validating ValidUser... ValidUser is a valid user. ValidUser belongs to the following login roles: %Manager Exited validation code. PrivilegedUser is the current user. Validating NonexistentUser... NonexistentUser is not a valid user. Testing complete. PrivilegedUser is the current user. USER>