複数のユーザがデータベースを使用する場合は、データベースへのアクセスを制御したり、またはそれぞれのユーザに異なる機能やインタフェースを提供したいことがあります。マルチユーザ環境やWebで使用するアプリケーションを設計する場合、機密性の高いデータを保護することが重要になります。このためユーザにパスワードを割り当てたり、データベースデータやデータベース操作へのアクセスレベルが異なるアクセスグループを作成し、これらのデータを保護することができます。
4Dのセキュリティ機能の概要については、4D Security guide をご覧ください。
4Dのパスワードアクセスシステムは、ユーザーとグループに基づいています。 ユーザーを作成してパスワードを割り当てたり、ユーザーをグループに入れて、各グループに対しデータベースの適切な部分へのアクセス権を割り当てます。 グループにはアクセス可能なメソッドや、テーブル定義へのアクセス権が割り当てられます。
次の図は、あるプロジェクトメソッドにオーナーアクセス権を割り当てている様子を表わしています。グループにはアクセス権 (利用権限) やオーナー (更新権限) を割り当てることができます。
![](../../picture/443951/pict443951.ja.png)
このポイントについてはパスワードアクセスシステムの保守で説明しています。
データベースを開くには、ユーザー名を選択するか入力し、パスワードを入力します。するとそのユーザーが属すグループと、そのグループに割り当てられたデータベースパーツに応じて、ユーザーはアクセスシステムで指定されたデータベースのパーツを操作できるようになります。
データベース設定のセキュリティページを使用してアクセス権を設定できます (セキュリティページ参照)。
- デフォルトで以下のようなパスワード入力ダイアログボックスが表示されます:
![](../../picture/443953/pict443953.ja.png)
このダイアログボックスにおいて、ユーザーはユーザーリストから自分の名前を選択し、パスワード入力エリアに自分のパスワードを入力します。
- データベース設定ダイアログボックスでパスワードダイアログにユーザーリストを表示するが選択解除されている場合、以下のようなパスワード入力ダイアログが表示されます:
![](../../picture/443955/pict443955.ja.png)
このダイアログボックスでは、ユーザーは自分の名前とパスワードの双方を入力しなければなりません。これにより、アプリケーションのセキュリティが強化されます。
- データベース設定ダイアログボックスでデフォルトユーザーを定義し、パスワードを割り当てた場合、次のダイアログボックスが表示されます:
![](../../picture/443957/pict443957.ja.png)
ユーザーはパスワードを入力するだけです。 - デフォルトユーザーにパスワードを割り当てない場合、このダイアログボックスは表示されません。この場合各ユーザーにはデフォルトユーザーに定義されたものと同じ権限と制限事項が与えられます。
データベース設定でユーザーは自分のパスワードを変更可能オプションが選択されている場合、パスワード入力ダイアログに変更ボタンが表示されます。このボタンをクリックして、リスト中で選択されているユーザーのパスワードを変更できます。
4D Server に関する注記: データベースへの接続識別情報を.4DLinkアクセスファイルに保存することができます。詳細は4D Serverリファレンスの4D Serverデータベースへの接続を参照してください。
ユーザーはデータベースを通常の方法で操作することができます。属しているグループが使用を許可されていないフォームやメニューコマンド、メソッド、テーブルをユーザーが使おうとすると、4Dは“お使いのパスワードではこのフォームを使用することができません”という旨のエラーメッセージを表示します。
注: ON ERR CALLメソッドが設定されている場合、メソッドに関するエラーメッセージは表示されません。
データベース接続ダイアログに表示されるアイコンをカスタマイズできます。デフォルトでは4Dロゴが表示されます。
![](../../picture/444113/pict444113.ja.png)
このアイコンを変更するには、データベースのResourcesフォルダー (データベースストラクチャーと同階層に配置、 4Dファイルの説明参照) にLoginImage.pngという名前で画像を保存します。形式はPNGでサイズは80x80ピクセルでなければなりません。
--> ![](../../picture/444115/pict444115.en.png)
ユーザーが パスワードを記憶する オプションを選択した場合、4Dはダイアログボックスが閉じられたときにパスワードを保存し、次回以降の接続時にそれを再利用します。パスワードは暗号化され、データベースに対応する.4DLinkの中に保存されます。
このため、すべての4Dアプリケーションでこの機能が使用できるわけではありません。以下の表を参照してください:
| 4Dローカルモード | 4Dリモートモード |
エンジン組み込みでないデータベース | Yes | Yes |
エンジン組み込みデータベース | No | Yes |
ユーザーを定義したら、様々な外部アクセスから4Dデータベースへのアクセス制御に使用できます。特定のコンテキストではアクセス権の階層構造を利用することができます。
4Dのユーザー&グループシステムを使用できるのは:
データベースのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。ユーザーは適切なグループに割り振られ、各グループはネストされてアクセス権の階層構造を形成します。この節では、このような構造の取り扱い方について少し説明します。
この例題では、ユーザーはそれぞれの担当にしたがい3 つのグループの1 つに割り振られます。会計グループに割り当てられたユーザーはデータ入力を担当します。財務グループに割り当てられたユーザーは、レコード更新や無効なデータの削除などのデータ管理を担当します。全般管理グループに割り当てられたユーザーは、検索の実行や分析レポートの印刷などのデータ分析を担当します。
グループが指定された時点で各権限が正しく配分されるように、各グループがネストされます。
- General Managementグループには管理者ユーザーだけが含まれます。
![](../../picture/444010/pict444010.en.png)
- Financesグループには、管理者ユーザーとGeneral Managementグループのユーザーが含まれます。したがって、General ManagementグループのユーザーはFinancesグループの権限も保持します。
![](../../picture/444012/pict444012.en.png)
- Accounting グループには、データ入力を行うユーザーとFinances グループのユーザーが含まれます。したがって、Finances グループに属すユーザーとGeneral ManagementグループのユーザーはAccounting グループの権限も利用できます。
![](../../picture/444014/pict444014.en.png)
それぞれの責務に基づいて、アクセス権を割り当てるグループを決定します。
例えばAccounting グループに入力フォームを割り当てると、すべての人がこの入力フォームを使用できるということになります。また、Financesグループに特定のフォームを割り当てた場合は、FinancesグループとGeneral Managementグループのメンバーだけがこのフォームを使用することができます。General Managementグループを割り当てると、このグループのメンバーしかそのフォームを使用することはできません。
このような階層システムを使用すると、新規ユーザーに割り当てるべきグループがわかりやすくなります。各ユーザーを1 つのグループに割り当てるだけで、グループの階層を使用してアクセス権を決定できます。
アクセススキームでは可能な限り低レベルでアクセスを制限すべきです。