機能フィールドの ACL 制御
機能フィールドへのアクセスを評価する場合、機能フィールド自体へのアクセスがチェックされるだけでなく、機能の貢献フィールドへのアクセスもチェックされます。貢献フィールドは、指定された機能の定義の引数として使用されるフィールドです。
機能フィールドの詳細については、「機能フィールド」を参照してください。
Rome 以前では、(他のフィールドと同様に) 機能フィールド自体へのアクセスをチェックします。そのフィールドの ACL でアクセスが許可されている場合、ユーザーが貢献フィールドへのアクセス権を持っているかどうかにかかわらず、ユーザーは結果の値を受け取ります。
Washington DC 以降では、機能フィールドへのアクセスを許可するには、すべての貢献フィールドへのアクセスも必要です。1 つ以上の貢献フィールド ACL でアクセスが拒否される場合、機能フィールドでもアクセスが拒否されます。
新しい要件の影響を受ける操作は、読み取りと report_view のみです。report_view には独自の追加要件があります。
| 操作 | 説明 |
|---|---|
| 読み取り操作 | ユーザーは、次の両方の条件に当てはまる場合にのみ、機能フィールドの読み取りアクセス権があります。
|
| report_view 操作 | ユーザーは、次のすべての条件に当てはまる場合にのみ、機能フィールドの report_view アクセス権があります。
|
例
前提:
- テーブル:給与
- 列:基本、ボーナス、合計 (この例ではすべて整数)
- 機能フィールド:合計列は機能フィールドとしてマークされ、機能の定義は
glidefunction:add (基本、ボーナス)です。 - 貢献フィールド:機能の定義で使用されるため、基本とボーナス
- ロール:salary_admin、bonus_admin
| ACL | 結果 |
|---|---|
| 合計、基本、ボーナス:salary_admin ロールの場合、読み取りおよび report_view (条件またはスクリプトなし) | 必要なロールを持っているため、salary_admin ロールを持つユーザーには、合計の読み取りと report_view アクセス権が付与されます。 |
| ACL | 結果 |
|---|---|
|
salary_admin ロールではボーナスの読み取りアクセスが拒否されるため、salary_admin ロールを持つユーザーは、合計の読み取りと report_view アクセスは拒否されます。 |
| ACL | 結果 |
|---|---|
|
すべてのフィールドに対する必要なロールを持っているため、salary_admin ロールを持つユーザーには、合計の読み取りアクセス権が付与されます。 ただし、必要なロールを持っている場合でも、スクリプトのある ACL はデフォルトで読み取りアクセスを拒否するため、salary_admin ロールを持つ同じユーザーは report_view アクセスを拒否されます。 |