ユーザ・アカウント
ユーザ・アカウントは、InterSystems IRIS® データ・プラットフォームの実際のユーザを表します。ユーザ・アカウントがメンバになっているロールにより、そのユーザがアクセスできるリソースが決まります。ユーザ・アカウントに特定の SQL 特権を付与することもできます。
ユーザ・アカウントのプロパティ
InterSystems IRIS の各ユーザ・アカウントには、多数のプロパティがあります。アカウントのプロパティを確認するには、管理ポータルの [ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動して、確認するユーザ・アカウントを選択します。
ユーザ・アカウントの [一般] タブには、以下のプロパティが含まれます。その他のタブの詳細は、"ユーザのロールの変更" および "ユーザの SQL 関連オプションの変更" を参照してください。
プロパティ名 | プロパティの説明 |
---|---|
名前 | 128 文字以内の一意のユーザ識別子。ユーザ・アカウントを作成した後に、名前を変更することはできません。
この識別子には、“@” と “*” を除くすべての文字を使用できます。名前は大文字と小文字が区別されません。すべてのユーザ名に Unicode 文字を使用することができます。ユーザ名に既存のロールと同じ文字列を指定することはできません。 |
フルネーム | このユーザ・アカウントの表示可能な名前。 |
コメント | 任意のテキスト。 |
パスワード | 新しいパスワードの値。このページを閲覧するユーザの特権に関係なく、この値を見ることはできません。%Admin_Secure:Use 特権を持つユーザ、または %All ロールに割り当てられているユーザであれば、他のユーザのパスワードを変更できます。この機能は、ユーザがパスワードを忘れた場合や、パスワードを紛失した場合などに使用します。
パスワードでは、大文字と小文字が区別され、Unicode 文字を使用できます。また、[システムセキュリティ設定] ページ ([システム管理]→[セキュリティ]→[システム・セキュリティ]→[システムワイドセキュリティパラメータ]) の [パスワードパターン] フィールドで指定されているパターン (文字のタイプおよび長さ) に適合している必要があります。 |
パスワード確認 | 新しいパスワードの値の確認。 |
次回ログイン時にパスワード変更 | 次回ユーザがログインしたときに、パスワードの変更を求めるかどうかを指定するチェック・ボックス。 |
パスワードを有効期限切れにしない | システム規模のパスワードの有効期限をこのユーザに適用するかどうかを指定するチェック・ボックス。チェックを付けると、システムの制限より長い期間パスワードを変更しなくてもユーザのパスワードは期限切れになりません。パスワードの有効期限を設定するには、"システム規模のセキュリティ・パラメータ" のページを参照してください。 |
ユーザ有効 | このアカウントが現在有効であるかどうかを指定するチェック・ボックス。 |
アカウントを有効期限切れにしない | システム規模のアカウント不活動上限をこのユーザに適用するかどうかを指定するチェック・ボックス。チェックを付けると、システムの制限より長い期間アカウントが不活動でもユーザのアカウントは期限切れになりません。不活動上限を設定するには、"システム規模のセキュリティ・パラメータ" のページを参照してください。 |
アカウントの有効期限 | このアカウントを使用できる最後の日付。 |
開始ネームスペース | ターミナル・タイプのサービスまたはポータルからログインした後、実行を開始する場所となるネームスペース。このプロパティは、InterSystems IRIS を呼び出すコマンドで指定されたネームスペースの値より優先して適用されます。 |
Tag^Routine の起動 | ターミナル・タイプのサービスからログインした後、自動的に実行されるルーチン。このプロパティは、InterSystems IRIS を呼び出すコマンドで指定されたルーチンの値より優先して適用されます。 |
メールアドレス | このアカウントに関連付けられているメール・アドレス。 |
携帯電話サービスプロバイダ | 2 要素認証用のユーザの携帯電話サービス・プロバイダ。
ユーザの携帯電話サービス・プロバイダがこのリストに表示されていない場合は、[新規プロバイダ作成] をクリックして新規プロバイダを追加できます。この操作を行うと、新規携帯電話サービス・プロバイダを追加するためのフィールドが表示され、追加したプロバイダが表示されるようになります。 |
携帯電話番号 | 2 要素認証用の携帯電話番号。2 つ目の認証トークン (要素) を含むテキスト・メッセージをユーザが受信する携帯電話番号です。 |
タイプ ([ユーザ] ページにのみ表示されます) | ユーザの種類。これは使用している認証メカニズムとロール割り当てメカニズムによって決まります。値は、パスワード・ユーザ、代行ユーザ、Kerberos ユーザ、LDAP ユーザ、または OS ユーザのいずれかです。ユーザ・タイプの詳細は、次の "ユーザ・タイプについて" を参照してください。 |
ユーザ・タイプについて
ユーザ・アカウントの Type は、以下のいずれかにできます。
-
パスワード・ユーザ — このユーザは、インスタンス認証、Kerberos 認証 (代行承認を使用していない場合)、またはオペレーティング・システム認証 (代行承認を使用していない場合) により認証されます。ユーザを編集したり何らかの方法で変更したりするための InterSystems IRIS ツールは、パスワード・ユーザに対して使用します。
-
代行ユーザ — ユーザ定義の認証メカニズムを通じて認証されます。InterSystems IRIS ツールは、このタイプのユーザのプロパティを表示するためにのみ使用できます。ユーザのプロパティは、ツール以外の外的な手段を使って編集する必要があります。
-
Kerberos ユーザ — このユーザは、代行承認を使用している場合に、Kerberos を使用して認証されます。代行承認では、このタイプのユーザのプロパティを表示する目的でのみ InterSystems IRIS ツールを使用できます。このユーザのプロパティは、InterSystems IRIS ツール以外の外部手段を使用して編集し、ZAUTHORIZE ルーチンで指定する必要があります ("代行承認" を参照)。代行承認を使用せずに Kerberos でユーザを認証する場合、ユーザのタイプはパスワード・ユーザです。
-
LDAP ユーザ — LDAP を通じて認証されます。InterSystems IRIS ツールは、このタイプのユーザのプロパティを表示するためにのみ使用できます。ユーザのプロパティは、ツール以外の外的な手段を使って編集する必要があります。
-
OS ユーザ — このユーザは、代行承認を使用している場合に、オペレーティング・システム (OS) を使用して認証されます。代行承認では、このタイプのユーザのプロパティを表示する目的でのみ InterSystems IRIS ツールを使用できます。このユーザのプロパティは、InterSystems IRIS ツール以外の外部手段を使用して編集し、ZAUTHORIZE ルーチンで指定する必要があります ("代行承認" を参照)。代行承認を使用せずにオペレーティング・システムでユーザを認証する場合、ユーザのタイプはパスワード・ユーザです。
1 人のユーザが持つタイプは 1 つのみです。あるタイプのユーザは、別のタイプに関連付けられている認証メカニズムを使用してログインすることはできません。
ユーザ・アカウントの管理
既存のユーザ・アカウントのリストを確認するには、ポータルで [ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) を表示します。このページでは、"ユーザ・アカウントのプロパティ" で詳しく説明している以下のフィールドに情報が表示されます。
-
[ユーザ] — このユーザ・アカウントの一意の識別子。
-
[フルネーム] — このアカウントの表示可能な名前。
-
[有効] — このユーザ・アカウントが現在有効化されているかどうか。
-
[ネームスペース] (既定のネームスペース) — ターミナル・タイプの接続で使用される最初のネームスペース。
-
[ルーチン] (既定のルーチン) — ターミナル・タイプの接続で実行される最初のルーチン。
-
[タイプ] — ユーザ・アカウントの種類。これは使用している認証メカニズムとロール割り当てメカニズムによって決まります。
[ユーザ] ページでは次のアクションを実行できます。
ユーザ・アカウントの新規作成
ユーザ・アカウントを新規作成するには、以下の手順に従います。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動します。
-
[ユーザ] ページで、[新規ユーザ作成] を選択します。[ユーザ編集] ページの [一般] タブが表示され、ここでユーザ・アカウントを作成および構成します。
-
[ユーザ編集] ページで、"ユーザ・アカウントのプロパティ" で説明したユーザ・プロパティの値を設定します。
Note:類似の特性を持つ複数のアカウントを簡単に作成するには、[コピー元] フィールドを使用してプロセスを開始します。[コピー元] ドロップダウン・メニューから既存のユーザ・アカウントを選択して、以下のフィールドに、選択したアカウントの値を入力します。
-
[フルネーム]
-
[有効期限]
-
[デフォルト・ネームスペース]
-
[デフォルト 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 ロールに割り当てると、InterSystems IRIS の保護されたデバッグ・シェルが有効になります。これは、ユーザが発行できるコマンドを制限します。これは他の領域でも予期しない結果をもたらす場合があります。
-
ロールからユーザ・アカウントを削除するには、ロール名の右側にある [削除] ボタンをクリックします。
-
すべてのロールからユーザ・アカウントを削除するには、現在割り当てられているロールが表示されたテーブルの下にある [すべて削除] をクリックします(このボタンは、ユーザ・アカウントが複数のロールに割り当てられている場合のみ表示されます)。
ユーザの 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 権限を付与する場合はここをチェックします。] チェック・ボックスを目的に応じて設定します。
-
[適用] ボタンをクリックすると、ユーザ・アカウントの目的の特権が変更されます。
ユーザ・プロファイルの表示
ユーザ・プロファイルには、ユーザ・アカウントが割り当てられているロールやユーザが最後にログインした日時など、ユーザ・アカウントに関するセキュリティ情報が含まれます。ユーザ・プロファイルを表示する手順は以下のとおりです。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動します。
-
[ユーザ] ページで、そのユーザに対応する行の [プロファイル] をクリックします。ユーザ・プロファイルが表示されます。
また、ユーザ・アカウントの [ユーザ編集] ページが表示されている場合は、ページの左上にある [プロファイル] をクリックします。
ユーザ・プロファイルの一部として、以下のプロパティが表示されます。
プロパティ名 | プロパティの説明 |
---|---|
名前 | 一意のユーザ識別子。@ を除くあらゆる文字を使用できます。@ はドメインを識別するために使用します。これは [ユーザ編集] ページで編集できます。 |
フルネーム | このユーザ・アカウントの表示可能な名前。これは [ユーザ編集] ページで編集できます。 |
ロール | ユーザ・アカウントに割り当てられているロールのコンマ区切りリスト。これらは [ユーザ編集] ページの [ロール] タブで編集できます。 |
最終パスワード変更 | ユーザ・アカウントが最後にパスワードを変更した日付と時刻。 |
最終ログイン | 前回正常にログインした日時。まだ正常にログインしていない場合は 0 です。読み取り専用。 |
最終ログイン・デバイス | ユーザが前回ログインしたログイン元のホストの IP アドレス。 |
不正ログイン試行 | 前回の正常なログイン以降に発生した、不正なログインの試行回数。読み取り専用。 |
最終不正ログイン | 前回行われた不正なログイン試行の日時。読み取り専用。 |
最終不正ログイン・デバイス | ユーザが前回のログインの試行に失敗したときのログイン元ホストの IP アドレス。 |
前回のログイン失敗の理由 | 前回行われた無効なログイン試行で発生したエラー。読み取り専用。 |
アカウント作成日時 | ユーザ・アカウントが作成された日時。読み取り専用。 |
アカウント作成者のユーザ名 | アカウントを作成したユーザに関連付けられたアカウント名。読み取り専用。 |
アカウントの最終変更日時 | 前回行われたアカウント変更の日時。読み取り専用。 |
最終アカウント変更ユーザ名 | 前回アカウントを変更したユーザに関連付けられたアカウント名。読み取り専用。 |
アカウントの最終変更情報 | アカウントに関して前回変更したプロパティのリスト。読み取り専用。 |
ユーザ・アカウントの無効化/有効化
ユーザ・アカウントを無効化/有効化できます。例えば、アカウントを無効化して一時的に利用不可にすることができます。こうすると、後でそのアカウントを有効にする際にプロパティやロールなどを再構築する必要がありません。
ユーザ・アカウントを無効化または有効化するには、以下の手順を実行します。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動します。
-
[ユーザ] ページで、無効化/有効化するユーザ・アカウントの名前をクリックします。そのユーザの [ユーザ編集] ページの [一般] タブが表示されます。
-
[ユーザ編集] ページで、[ユーザ有効] フィールドをクリアします。
-
[保存] をクリックすると、新しい状態でユーザ・アカウントが保存されます。
ユーザ・アカウントの削除
ユーザ・アカウントを削除する方法は、以下のとおりです。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動します。
-
[ユーザ] ページで、削除するユーザ・アカウントの行にある [削除] ボタンを選択します。
-
操作を確認するダイアログが表示されます。ユーザ・アカウントを削除する場合は [OK] をクリックし、それ以外の場合は [キャンセル] をクリックします。
事前定義のユーザ・アカウント
InterSystems IRIS の各インスタンスには、自動的に以下のアカウントが作成されます。
ユーザ名 | 割り当てられたロール | 目的 |
---|---|---|
Admin | %Manager | 既定の管理者アカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、インスタンスの管理をサポートします。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更してこのアカウントを無効にすることをお勧めします。 |
CSPSystem | (なし) | 通常のインスタンスおよびロック・ダウン・インスタンスのためにインスタンス認証を通じて InterSystems IRIS に接続するときの Web ゲートウェイを表す既定のアカウント。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更することをお勧めします。このユーザ・アカウントは HealthShare で内部的に使用されるため、無効にしないでください。 |
IAM | IAM_API | InterSystems API Manager (IAM) のライセンスを InterSystems IRIS から取得するために必要な既定のアカウント。IAM ユーザを使用するには、IAM ユーザを有効化してパスワードを変更する必要があります。IAM ユーザの設定は、一般的に IAM の設定Opens in a new tabの一部です。 |
SuperUser | %All | 利用できるすべての特権を持つ既定のアカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、製品のすべての側面に完全にアクセスすることが可能になります。プロダクションに移行する前にこのアカウントのパスワードを初期値から変更してこのアカウントを無効にすることをお勧めします。 |
UnknownUser | %All (最小のセキュリティ)、またはなし (通常のセキュリティ、またはロック・ダウン・セキュリティ) | 非ログイン・ユーザの既定のアカウント |
_PUBLIC | (なし) | すべてのユーザ (ログイン・アカウント以外) に与えられる特権のセット |
_SYSTEM | %All | 既定の SQL アカウント。このアカウントは、すべてのインターシステムズ製品のすべてのインスタンスに対して存在し、SQL アクセスを提供します。プロダクション・システムではこのアカウントを無効にすることをお勧めします。 |
_Ensemble | %All | 相互運用性マネージャ (ログイン・アカウントではない)。InterSystems IRIS インスタンスのみ。このアカウントは HealthShare で内部的に使用されるため、無効にしないでください。 |
HS_Services | %HS_ServiceRole |
このアカウントは医療製品で内部用に使用されます。既定でこのアカウントは、InterSystems IRIS for Health™ および HealthShare® Health Connect に対して無効になっているため、これらの製品で FHIR® ベースの IHE プロファイルを使用する前に有効にする必要があります。その他の HealthShare ソリューションに対しては、このアカウントは既定で有効になっており、無効にしないでください。 |
“特権ユーザ・アカウント” というアカウントもあり、これは通常のインストールまたはロック・ダウン・インストールで作成されます。このアカウントに、ユーザ名とパスワードを指定します。
以下のアカウントは削除できません。
-
_Ensemble
-
_PUBLIC
-
_SYSTEM
-
UnknownUser
"ユーザ・アカウントの初期パスワード" で説明しているように、InterSystems IRIS の新規インストレーションではすべての事前定義アカウントに対して同一のパスワードが使用されます。特に最小のセキュリティによるインストールでは、既定のパスワードはセキュリティ面で脆弱です。この問題を解決するには、そのアカウントを無効にするか、パスワードを変更します。InterSystems IRIS には、%All ロールを持つ有効なアカウントが 1 つ以上必要なため、%All ロールを持つ一意のアカウントを作成したら、これらのアカウントを無効にすることをお勧めします。
これは特に、コンテナ化されたインスタンスでは重要な問題です。問題を解決する方法を含む詳細は、"認証とパスワードOpens in a new tab" を参照してください。
また、%System というユーザ・アカウントがあります。このユーザ・アカウントは、表示されず、InterSystems IRIS で内部的に使用されます。このアカウントに対してログイン、編集、または削除を行うことはできません。このアカウントは %All ロールを持って実行されます。%ZSTART や %ZSTOP など特定のルーチンは、このユーザ・アカウントとして実行されます。このようなルーチンを別のユーザとして実行するには、$SYSTEM.Security.Login() を呼び出します。
推奨されていませんが、事前定義のユーザ・アカウントを削除することはできます。ただし、%System の他に、%All ロールを持つアカウントが少なくとも 1 つ必要です。
さまざまなアカウントに関するメモ
UnknownUser アカウント
特定のアプリケーションやアプリケーションの特定の部分では、承認されないユーザに対しても、InterSystems IRIS を使用する妥当な理由が存在することがあります。例えば、小売システムでユーザが購入手続きを開始する前に、商品の在庫を確認する場合です。このような状況を考慮して、InterSystems IRIS では UnknownUser アカウントがサポートされています。認証されていないユーザが接続すると、特別な名前である UnknownUser が $USERNAME に割り当てられ、このユーザに定義されているロールが $ROLES に割り当てられます。
認証されていないアクセスは、認証に失敗したときに使用されるものではありません。 例えば、ターミナル経由で InterSystems IRIS に接続しようとしているユーザがユーザ名とパスワードを入力したが、認証に失敗したとします。この場合は、認証されていないアクセスが許可されていても、このユーザは InterSystems IRIS に接続されません。一方、認証されていないアクセスが許可されているときに、同じユーザがユーザ名を指定せずに (例えば、ユーザ名のプロンプトで Enter キーを押します) InterSystems IRIS に接続すると、このユーザは認証されていないユーザ 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 を正常に呼び出すには、ユーザ・アカウントに IRISSYS: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 ルーチンは InterSystems IRIS インスタンスの 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>