行レベルの細分化指定の複数レベルのセキュリティーを持つトリガーと表の間の相互作用

BEFORE トリガーは、セキュリティー・ラベル列に関連した遷移変数の値に影響します。

サブジェクト表にセキュリティー・ラベル列がある場合、 サブジェクト表のセキュリティー・ラベル列に対応する遷移表または遷移変数の列は、 セキュリティー・ラベル属性を継承しません。 つまり、行レベルの細分化指定の複数レベル・セキュリティー検査は、 遷移表または遷移変数には適用されないことを意味します。 ALTER TABLE ステートメントを使用してセキュリティー・ラベル列をサブジェクト表に追加する場合、 その規則は、サブジェクト表に任意の列を追加する場合と同じです。その理由は、 セキュリティー・ラベル列に対応する遷移表または遷移変数の列は、 セキュリティー・ラベル属性を継承しないからです。

使用する ID に write-down privilege (ライトダウン権限) がない場合に、挿入または更新の操作を実行すると、ご使用の ID のセキュリティー・ラベル値が、挿入または更新する行のセキュリティー・ラベル列に割り当てられます。

以下のいずれかの条件が該当する場合、BEFORE トリガーがアクティブであれば、 セキュリティー・ラベル列に対応する遷移変数の値が、その ID の セキュリティー・ラベルになります。

  • ユーザーに write-down privilege (ライトダウン権限) がない
  • セキュリティー・ラベル列の値が指定されていない

ユーザーに write-down privilege (ライトダウン権限) がなく、 かつトリガーがセキュリティー・ラベル列に対応する遷移変数を変更すると、 セキュリティー・ラベル列の値は変更されて、 その行がページに書き込まれる前のユーザーのセキュリティー・ラベル値に戻されます。