(57)【特許請求の範囲】
【請求項１】
コンピュータによって、複数のテーブルを有するデータベースの第１テーブル内の第１レコードのセキュリティラベルのコンポーネントを判定するステップであって、
外部キー関係に従って前記第１レコードに関係した第２レコードを識別するステップ、
前記第２レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
を有するステップと、
前記コンピュータによって、前記判定されたセキュリティラベルを前記第１レコード内において記憶するステップと、
を含む方法。
【請求項２】
個々の外部キー関係に従って前記第１レコードにそれぞれ関係した複数の第２レコードを識別するステップと、
前記第２レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を含む請求項１に記載の方法。
【請求項３】
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項２に記載の方法。
【請求項４】
前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項２に記載の方法。
【請求項５】
第３レコードの属性に基づいて前記データベースの第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、前記第３レコードの属性は、前記第３レコード内に記憶されている値である請求項１に記載の方法。
【請求項６】
前記データベースの第３テーブルと関連した値に基づいて前記第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む請求項１に記載の方法。
【請求項７】
前記第２レコードは、前記第１テーブル以外のテーブル内に存在している請求項１に記載の方法。
【請求項８】
前記コンポーネントは、前記第１レコードの前記セキュリティラベルの第１コンポーネントであり、前記方法は、前記セキュリティラベルの第２コンポーネントを判定するステップを含む請求項１に記載の方法。
【請求項９】
トリガイベントに応答して特定の第１レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを含む請求項１に記載の方法。
【請求項１０】
前記トリガイベントは、前記外部キー関係の変化を含む請求項９に記載の方法。
【請求項１１】
前記トリガイベントは、前記特定の第１レコードに関係した前記第２レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項９に記載の方法。
【請求項１２】
前記トリガイベントを検出するステップを含む請求項９に記載の方法。
【請求項１３】
前記トリガイベントの通知を受信するステップを含む請求項９に記載の方法。
【請求項１４】
ユーザから特定の第１レコードに対するアクセス要求を受信するステップを含み、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項１に記載の方法。
【請求項１５】
前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第１レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第１レコードに対する前記ユーザによるアクセスを制限するステップを含む請求項１４に記載の方法。
【請求項１６】
前記アクセスの要求を受信する前に前記第１レコードの前記セキュリティラベルを判定するステップを含む請求項１５に記載の方法。
【請求項１７】
前記第１レコードが前記データベース内における記憶のために受信された際に、特定の第１レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを含む請求項１に記載の方法。
【請求項１８】
命令を記憶した一時的でないコンピュータ可読媒体であって、
前記命令は、演算システムが、
複数のテーブルを有するデータベースの第１テーブル内の第１レコードのセキュリティラベルのコンポーネントを自動的に判定することであって、
外部キー関係に従って前記第１レコードと関係した第２レコードを識別するステップと、
前記第２レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
を含んで判定し、
前記判定されたセキュリティラベルを前記第１レコード内において記憶する、
ようにする、媒体。
【請求項１９】
演算システムであって、
メモリに結合されたプロセッサを具備し、
前記プロセッサ及びメモリは、
複数のテーブルを有するデータベースの第１テーブル内の第１レコードのセキュリティラベルのコンポーネントを自動的に判定することであって、
外部キー関係に従って前記第１レコードと関係した第２レコードを識別するステップと、
前記第２レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
を含んで判定し、
前記判定されたセキュリティラベルを前記第１レコード内において記憶する、
ように構成されている、システム。
【請求項２０】
演算システムであって、
複数のテーブルを有するデータベースの第１テーブル内の第１レコードのセキュリティラベルのコンポーネントを自動的に判定する手段であって、
外部キー関係に従って前記第１レコードと関係した第２レコードを識別するステップ、
前記第２レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
を含む、手段と、
前記判定されたセキュリティラベルを前記第１レコード内において記憶する手段と、
を具備するシステム。
【請求項２１】
コンピュータによって、複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定するステップと、
前記コンピュータによって、前記第１レコードの第１セキュリティラベルを自動的に更新するステップと、
前記コンピュータによって、前記更新されたセキュリティラベルを前記第１レコード内において記憶するステップと、
前記コンピュータによって、前記データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを更新するステップと、
を含み、前記第２レコードは、外部キー関係に従って前記第１レコードに関係付けられている方法。
【請求項２２】
前記第１レコードに対する前記更新が前記第１レコードの前記第１セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む請求項２１に記載の方法。
【請求項２３】
前記第１レコードに対する前記更新の影響を受ける前記第１セキュリティラベルの複数のコンポーネントのうちの１つ又は複数のコンポーネントを判定するステップと、
前記第１セキュリティラベルの前記影響を受けた１つ又は複数のコンポーネントを自動的に更新するステップと、
を含む請求項２１に記載の方法。
【請求項２４】
前記第２テーブルは、前記第１テーブルの子である請求項２１に記載の方法。
【請求項２５】
前記第１レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを含む請求項２１に記載の方法。
【請求項２６】
前記第１レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの１つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第１レコードに関係したそれぞれの第２レコードの前記第２セキュリティラベルを自動的に更新するステップと、
を含む請求項２１に記載の方法。
【請求項２７】
命令を記憶した一時的でないコンピュータ可読媒体であって、
前記命令は、演算システムに、
複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたことを判定させ、
前記第１レコードの第１セキュリティラベルを自動的に更新させ、
前記更新されたセキュリティラベルを前記第１レコード内において記憶させ、
前記データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新させており、前記第２レコードは、外部キー関係に従って前記第１レコードに関係付けられている、媒体。
【請求項２８】
演算システムであって、
メモリに結合されたプロセッサを具備し、
前記プロセッサ及びメモリは、
複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定し、
前記第１レコードの第１セキュリティラベルを自動的に更新し、
前記更新されたセキュリティラベルを前記第１レコード内において記憶し、
前記データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新し、前記第２レコードは、外部キー関係に従って前記第１レコードに関係付けられている、
ように構成されている、システム。
【請求項２９】
演算システムであって、
複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定する手段と、
前記第１レコードの第１セキュリティラベルを自動的に更新する手段と、
前記更新されたセキュリティラベルを前記第１レコード内において記憶する手段と、
前記データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新する手段であって、前記第２レコードは、外部キー関係に従って前記第１レコードに関係付けられている、手段と、
を具備するシステム。
【請求項３０】
前記演算システムに、
個々の外部キー関係に従って前記第１レコードにそれぞれ関係した複数の第２レコードを識別するステップと、
前記第２レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を実行させる、命令を記憶する請求項１８に記載のコンピュータ可読媒体。
【請求項３１】
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項３０に記載のコンピュータ可読媒体。
【請求項３３】
前記演算システムに、
第３レコードの属性に基づいて前記データベースの第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶し、
前記第３レコードの属性は、前記第３レコード内に記憶されている値である請求項１８に記載のコンピュータ可読媒体。
【請求項３４】
前記演算システムに、
前記データベースの第３テーブルと関連した値に基づいて前記第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項１８に記載のコンピュータ可読媒体。
【請求項３５】
前記第２レコードは、前記第１テーブル以外のテーブル内に存在している請求項１８に記載のコンピュータ可読媒体。
【請求項３６】
前記コンポーネントは、前記第１レコードの前記セキュリティラベルの第１コンポーネントであり、
前記演算システムに、
前記セキュリティラベルの第２コンポーネントを判定するステップを実行させる、命令を記憶する請求項１８に記載のコンピュータ可読媒体。
【請求項３７】
前記演算システムに、
トリガイベントに応答して特定の第１レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行させる、命令を記憶する請求項１８に記載のコンピュータ可読媒体。
【請求項３８】
前記トリガイベントは、前記外部キー関係の変化を含む請求項３７に記載のコンピュータ可読媒体。
【請求項３９】
前記トリガイベントは、前記特定の第１レコードに関係した前記第２レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項３７に記載のコンピュータ可読媒体。
【請求項４０】
前記演算システムに、
前記トリガイベントを検出するステップを実行させる、命令を記憶する請求項３７に記載のコンピュータ可読媒体。
【請求項４１】
前記演算システムに、
前記トリガイベントの通知を受信するステップを実行させる、命令を記憶する請求項３７に記載のコンピュータ可読媒体。
【請求項４２】
前記演算システムに、
ユーザから特定の第１レコードに対するアクセス要求を受信するステップを実行させる、命令を記憶し、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項１８に記載のコンピュータ可読媒体。
【請求項４３】
前記演算システムに、
前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第１レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第１レコードに対する前記ユーザによるアクセスを制限するステップを実行させる、命令を記憶する請求項４２に記載のコンピュータ可読媒体。
【請求項４４】
前記演算システムに、
前記アクセスの要求を受信する前に前記第１レコードの前記セキュリティラベルを判定するステップを実行させる、命令を記憶する請求項４３に記載のコンピュータ可読媒体。
【請求項４５】
前記演算システムに、
前記第１レコードが前記データベース内における記憶のために受信された際に、特定の第１レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項１８に記載のコンピュータ可読媒体。
【請求項４６】
前記プロセッサ及びメモリは、
個々の外部キー関係に従って前記第１レコードにそれぞれ関係した複数の第２レコードを識別するステップと、
前記第２レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を実行するように構成されている請求項１９に記載の演算システム。
【請求項４７】
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項４６に記載の演算システム。
【請求項４８】
前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第２レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第１レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項４６に記載の演算システム。
【請求項４９】
前記プロセッサ及びメモリは、
第３レコードの属性に基づいて前記データベースの第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されており、前記第３レコードの属性は、前記第３レコード内に記憶されている値である請求項１９に記載の演算システム。
【請求項５０】
前記プロセッサ及びメモリは、
前記データベースの第３テーブルと関連した値に基づいて前記第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されている請求項１９に記載の演算システム。
【請求項５１】
前記第２レコードは、前記第１テーブル以外のテーブル内に存在している請求項１９に記載の演算システム。
【請求項５２】
前記コンポーネントは、前記第１レコードの前記セキュリティラベルの第１コンポーネントであり、
前記プロセッサ及びメモリは、
前記セキュリティラベルの第２コンポーネントを判定するステップを実行するように構成されている請求項１９に記載の演算システム。
【請求項５３】
前記プロセッサ及びメモリは、
トリガイベントに応答して特定の第１レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行するように構成されている請求項１９に記載の演算システム。
【請求項５４】
前記トリガイベントは、前記外部キー関係の変化を含む請求項５３に記載の演算システム。
【請求項５５】
前記トリガイベントは、前記特定の第１レコードに関係した前記第２レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項５３に記載の演算システム。
【請求項５６】
前記プロセッサ及びメモリは、
前記トリガイベントを検出するステップを実行するように構成されている請求項５３に記載の演算システム。
【請求項５７】
前記プロセッサ及びメモリは、
前記トリガイベントの通知を受信するステップを実行するように構成されている請求項５３に記載の演算システム。
【請求項５８】
前記プロセッサ及びメモリは、
ユーザから特定の第１レコードに対するアクセス要求を受信するステップを実行するように構成されており、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項１９に記載の演算システム。
【請求項５９】
前記プロセッサ及びメモリは、
前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第１レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第１レコードに対する前記ユーザによるアクセスを制限するステップを実行するように構成されている請求項５８に記載の演算システム。
【請求項６０】
前記プロセッサ及びメモリは、
前記アクセスの要求を受信する前に前記第１レコードの前記セキュリティラベルを判定するステップを実行するように構成されている請求項５９に記載の演算システム。
【請求項６１】
前記プロセッサ及びメモリは、
前記第１レコードが前記データベース内における記憶のために受信された際に、特定の第１レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行するように構成されている請求項１９に記載の演算システム。
【請求項６２】
前記演算システムに、
前記第１レコードに対する前記更新が前記第１レコードの前記第１セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項２７に記載のコンピュータ可読媒体。
【請求項６３】
前記演算システムに、
前記第１レコードに対する前記更新の影響を受ける前記第１セキュリティラベルの複数のコンポーネントのうちの１つ又は複数のコンポーネントを判定するステップと、
前記第１セキュリティラベルの前記影響を受けた１つ又は複数のコンポーネントを自動的に更新するステップと、
を実行させる命令を記憶する請求項２７に記載のコンピュータ可読媒体。
【請求項６４】
前記第２テーブルは、前記第１テーブルの子である請求項２７に記載のコンピュータ可読媒体。
【請求項６５】
前記演算システムに、
前記第１レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項２７に記載のコンピュータ可読媒体。
【請求項６６】
前記演算システムに、
前記第１レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの１つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第１レコードに関係したそれぞれの第２レコードの前記第２セキュリティラベルを自動的に更新するステップと、
を実行させる命令を記憶する請求項２７に記載のコンピュータ可読媒体。
【請求項６７】
前記プロセッサ及びメモリは、
前記第１レコードに対する前記更新が前記第１レコードの前記第１セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項２８に記載の演算システム。
【請求項６８】
前記プロセッサ及びメモリは、
前記第１レコードに対する前記更新の影響を受ける前記第１セキュリティラベルの複数のコンポーネントのうちの１つ又は複数のコンポーネントを判定するステップと、
前記第１セキュリティラベルの前記影響を受けた１つ又は複数のコンポーネントを自動的に更新するステップと、
を実行するように構成されている請求項２８に記載の演算システム。
【請求項６９】
前記第２テーブルは、前記第１テーブルの子である請求項２８に記載の演算システム。
【請求項７０】
前記プロセッサ及びメモリは、
前記第１レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項２８に記載の演算システム。
【請求項７１】
前記プロセッサ及びメモリは、
前記第１レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの１つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第１レコードに関係したそれぞれの第２レコードの前記第２セキュリティラベルを自動的に更新するステップと、
を実行するように構成されている請求項２８に記載の演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、２０１４年１１月５日付けで出願された米国仮特許出願第６２／０７５，５９３号に対する優先権を主張するものであり、この内容は、引用により、そのすべてが本明細書に包含される。
【背景技術】
【０００２】
背景
本明細書は、データベースセキュリティに関する。データベースは、複数のテーブルを含むことが可能であり、これらのテーブルのそれぞれは、複数の行を含むことができる。データベース内において記憶されているデータレコードに対するアクセスは、テーブルのそれぞれに対するアクセスを制御することにより、或いは、テーブル内のそれぞれの行に対するアクセスを制御することにより、制御することができる。それぞれの行などのそれぞれのオブジェクトと関連したセキュリティラベルの使用を通じて、行レベルのセキュリティを提供することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
一態様において、方法は、複数のテーブルを有するデータベースの第１テーブル内のそれぞれの第１レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、これには、外部キー関係に従って第１レコードに関係した第２レコードを識別するステップと、第２レコードのセキュリティラベルのコンポーネントを識別するステップと、第２レコードのセキュリティラベルの識別されたコンポーネントに基づいて第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれる。方法は、判定されたセキュリティラベルをレコード内において記憶するステップを含む。
【０００４】
実施形態は、以下の特徴のうちの１つ又は複数を含むことができる。
【０００５】
方法は、個々の外部キー関係に従ってそれぞれが第１レコードに関係した複数の第２レコードを識別するステップと、第２レコードのそれぞれごとにセキュリティラベルのコンポーネントを識別するステップと、第２レコードのセキュリティラベルの識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、を含む。
【０００６】
第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップは、第２レコードのセキュリティラベルの識別されたコンポーネントの複数の別個の値を連結するステップを含む。
【０００７】
セキュリティラベルのコンポーネントの値を割り当てるステップは、第２レコードのセキュリティラベルの識別されたコンポーネントの値の中から最高優先順位値を識別するステップと、最高優先順位値を第１レコードのセキュリティラベルのコンポーネントの値として割り当てるステップと、を含む。
【０００８】
方法は、レコードの属性に基づいてデータベースの第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、レコードの属性は、レコード内において記憶されている値である。
【０００９】
方法は、第３テーブルと関連した値に基づいてデータベースの第３テーブル内のそれぞれの第３レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む。
【００１０】
第２レコードは、第１テーブル以外のテーブル内に存在している。
【００１１】
コンポーネントは、レコードのセキュリティラベルの第１コンポーネントであり、方法は、セキュリティラベルの第２コンポーネントを判定するステップを含む。
【００１２】
方法は、トリガイベントに応答して特定の第１レコードのセキュリティラベルのコンポーネントを更新するステップを含む。
【００１３】
トリガイベントは、外部キー関係の変化を含む。
【００１４】
トリガイベントは、特定の第１レコードに関係した第２レコードのセキュリティラベルのコンポーネントの変化を含む。
【００１５】
方法は、トリガイベントを検出するステップを含む。
【００１６】
方法は、トリガイベントの通知を受信するステップを含む。
【００１７】
方法は、ユーザから特定の第１レコードに対するアクセス要求を受信するステップを含み、ユーザは、ユーザセキュリティコードと関連付けられている。
【００１８】
方法は、ユーザと関連したユーザセキュリティコードのコンポーネントと特定の第１レコードのセキュリティラベルのコンポーネントの間の比較に基づいて、ユーザによる特定の第１レコードに対するアクセスを制限するステップを含む。
【００１９】
方法は、アクセス要求を受信する前に、レコードのセキュリティラベルを判定するステップを含む。
【００２０】
方法は、第１レコードが、データベース内における記憶のために受信された際に、特定の第１レコードのセキュリティラベルのコンポーネントを自動的に判定するステップを含む。
【００２１】
一態様において、一時的でないコンピュータ可読媒体は、命令を記憶しており、命令は、演算システムが、複数のテーブルを有するデータベースの第１テーブル内のそれぞれの第１レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、これには、外部キー関係に従って第１レコードに関係した第２レコードを識別するステップと、第２レコードのセキュリティラベルのコンポーネントを識別するステップと、第２レコードのセキュリティラベルの識別されたコンポーネントに基づいて第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ようにする。
【００２２】
一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第１テーブル内のそれぞれの第１レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、外部キー関係に従って第１レコードに関係した第２レコードを識別するステップと、第２レコードのセキュリティラベルのコンポーネントを識別するステップと、第２レコードのセキュリティラベルの識別されたコンポーネントに基づいて第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ように構成されている。
【００２３】
一態様において、演算システムは、複数のテーブルを有するデータベースの第１テーブル内のそれぞれの第１レコードごとにセキュリティラベルのコンポーネントを自動的に判定する手段であって、外部キー関係に従って第１レコードに関係した第２レコードを識別するステップ、第２レコードのセキュリティラベルのコンポーネントを識別するステップ、及び第２レコードのセキュリティラベルの識別されたコンポーネントに基づいて第１レコードのセキュリティラベルのコンポーネントの値を割り当てるステップ、を含む手段と、判定されたセキュリティラベルをレコード内において記憶する手段と、を含む。
【００２４】
一態様において、方法は、複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定するステップと、第１レコードの第１セキュリティラベルを自動的に更新するステップと、更新されたセキュリティラベルをレコード内において記憶するステップと、データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新するステップと、を含み、第２レコードは、外部キー関係に従って第１レコードに関係付けられている。
【００２５】
実施形態は、以下の特徴のうちの１つ又は複数を含むことができる。
【００２６】
方法は、第１レコードに対する更新が第１レコードの第１セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む。
【００２７】
方法は、第１レコードに対する更新の影響を受ける第１セキュリティラベルの複数のコンポーネントのうちの１つ又は複数のコンポーネントを判定するステップと、影響を受けた第１セキュリティラベルの１つ又は複数のコンポーネントを自動的に更新するステップと、を含む。
【００２８】
第２テーブルは、第１テーブルの子である。
【００２９】
方法は、第１レコードに対する更新が外部キー関係に影響を及ぼすかどうかを判定するステップを含む。
【００３０】
方法は、第１レコードに対する更新の影響を受ける複数の外部キー関係のうちの１つ又は複数の外部キー関係を判定するステップと、影響を受けた外部キー関係に従って第１レコードに関係したそれぞれの第２レコードごとに第２セキュリティラベルを自動的に更新するステップと、を含む。
【００３１】
一態様において、一時的でないコンピュータ可読記憶媒体は、演算システムに、複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたことを判定させ、第１レコードの第１セキュリティラベルを自動的に更新させ、更新されたセキュリティラベルをレコード内において記憶させ、データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新するようにする命令を記憶させており、第２レコードは、外部キー関係に従って第１レコードに関係付けられている。
【００３２】
一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定し、第１レコードの第１セキュリティラベルを自動的に更新し、更新されたセキュリティラベルをレコード内において記憶し、データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新するように構成されており、第２レコードは、外部キー関係に従って第１レコードに関係付けられている。
【００３３】
一態様において、演算システムは、複数のテーブルを有するデータベースの第１テーブル内において記憶されている第１レコードが更新されたと判定する手段と、第１レコードの第１セキュリティラベルを自動的に更新する手段と、更新されたセキュリティラベルをレコード内において記憶する手段と、データベースの第２テーブル内において記憶されている第２レコードの第２セキュリティラベルを自動的に更新する手段と、を具備し、第２レコードは、外部キー関係に従って第１レコードに関係付けられている。
【００３４】
その他の特徴及び利点については、以下の説明から、並びに、添付の請求項から、明らかとなる。
【図面の簡単な説明】
【００３５】
【図１】図１はブロックダイアグラムである。
【図２Ａ】図２Ａはデータベースシステムの一例である。
【図２Ｂ】図２Ｂはユーザアクセス制限の一例である。
【図３】図３はブロックダイアグラムである。
【図４】図４はブロックダイアグラムである。
【図５】図５はフローチャートである。
【図６】図６はフローチャートである。
【図７】図７はフローチャートである。
【図８】図８はフローチャートである。
【図９】図９はブロックダイアグラムである。
【発明を実施するための形態】
【００３６】
詳細な説明
本発明者らは、本明細書において、データベースのテーブル内の行に対して行レベルのセキュリティを提供する方式について記述している。テーブル内のそれぞれの行は、データレコードを表している。セキュリティラベルが、それぞれの行内において記憶されており、セキュリティラベルは、例えば、行によって表されたデータレコードに対するアクセスの許可を有するユーザ又は行によって表されたデータレコードに対するアクセスが制限されたユーザを通知するなどのように、行に対するアクセスを制御するべく使用することができる。テーブル内の行のセキュリティラベルは、行の外部の情報、行の内部の情報、及びテーブルに固有の情報のうちの１つ又は複数に基づいて判定することができる。しばしば継承とも呼称されるセキュリティラベルの伝播は、１つ又は複数の関係した行のセキュリティラベルに少なくとも部分的に基づいて行のセキュリティラベルを判定するメカニズムである。例えば、データベースのテーブル内の行は、外部キー関係を介して行に関係付けられた同一テーブル内の又は別のテーブル内の別の行から、そのセキュリティラベルのコンポーネントを継承することができる。セキュリティラベルの継承は、例えば、ユーザによる所与のデータレコードに対するアクセスが制限されている場合に、所与のデータレコードに依存したすべてのその他のデータレコードに対するユーザによるアクセスの制限の保証を支援することができる。
【００３７】
行のセキュリティラベルは、複数のコンポーネントを有することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの１つ又は複数は、同一テーブルの関係した行内の情報又は別のテーブルの関係した行内の情報などの行の外部の情報に基づいて判定することができる。行のセキュリティラベルのコンポーネントのうちの１つ又は複数は、行の属性などの行の内部の情報に基づいて判定することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの１つ又は複数は、テーブルと関連した一定の値などのテーブルに固有の情報に基づいて判定することができる。
【００３８】
データレコード（本発明者らは、しばしば、行とデータレコードという用語を相互交換可能な方式で使用する）のセキュリティラベルは、データレコードがデータベースに入力される際に判定することができる。データレコードのセキュリティラベルは、データレコードの変化、関係したデータレコードの変化、又はテーブルに固有の情報の変化などのトリガイベントに応答して更新することができる。行に対する任意のアクセス要求が受信される前に、セキュリティラベルが、既に、演算されており、利用可能な状態となるように、セキュリティラベルは、データレコード内において記憶されている。本発明者らは、しばしば、行に対する任意のアクセス要求を受信する前の段階の、この受信とは独立した、セキュリティラベルの演算をセキュリティラベルの事前演算と呼称する。セキュリティラベルの事前演算は、利点を有することができる。例えば、行のセキュリティラベルが事前演算されている場合には、ユーザによる行に対するアクセスが制限されているかどうかの判定は、アクセス要求に応答してセキュリティラベルをリアルタイムで算出するという演算集約的なプロセスの実行を必要とすることなしに、迅速に実施することができる。
【００３９】
本明細書において記述されている行レベルのセキュリティ用の方式によれば、複数の相互に関係付けられたテーブルを有するデータベース内においてデータを保護することができる。このようなデータベース内においては、１つのテーブル内の行のセキュリティラベルを、別の関係したテーブル内の行のセキュリティラベルに少なくとも部分的に基づいて判定することができる。例えば、ユーザによるプロジェクトサマリを表すデータレコードの参照が制限されている場合には、プロジェクトサマリ及びプロジェクトファイナンスを表すデータレコードの間の関係に起因して、そのユーザによるプロジェクトファイナンスを表すデータレコードの参照も、同様に、自動的に防止することができる。保護を要する多数の行がデータベース内に存在しているが、セキュリティの大部分をその他の関係した行から推定できる場合には、これらの関係に基づいたセキュリティラベルの判定は、セキュリティの改善及び維持費用の低減を支援することができる。
【００４０】
セキュリティラベルの事前演算及びデータレコード内におけるセキュリティラベルの記憶により、データレコードのセキュリティを容易に理解可能なものにすることが可能であり、効率的にアクセス可能なものとすることができる。このセキュリティ情報に対する容易なアクセスは、データベースシステムの監査の促進を支援することが可能であり、トラブルシューティングにおいてセキュリティ及び情報技術専門家を支援することが可能であり、データベース内の個々のデータレコードと関連した許可又は制限の理解を伴うその他の活動を促進することができる。例えば、データレコードのセキュリティラベルをデータレコード自体の内部において記憶することにより、監査人又はセキュリティ専門家は、複雑な計算の実行を必要とすることなしに、別個のセキュリティファイル又はテーブルの参照を必要とすることなしに、レコードを検査することにより、データレコードに対するアクセスが許容された又はこれが制限されたユーザを判定することができる。
【００４１】
図１を参照すれば、サーバー１０１上においてホスティングされたデータベース１００は、１つ又は複数のテーブル５０、５２、５４、５６を含むことが可能であり、これらのテーブルのそれぞれは、１つ又は複数のデータレコードを含む。テーブルは、例えば、階層的な関係又は別のタイプの関係において、データベース１００内のその他のテーブルの１つ又は複数と関係付けることができる。２つのテーブルの間の関係は、例えば、子テーブルが１つ又は複数の親テーブルに依存している親−子関係であってもよい。例えば、図１の例においては、部署テーブル５２は、矢印６２によって示されているように、部門テーブル５４の子である。プロジェクトテーブル５０は、例えば、矢印６４及び６６によって示されているように、部門テーブル５４及び領域テーブル５６の両方の子である。本発明者らは、しばしば、親テーブルを上流テーブルと呼称し、子テーブルを下流テーブルと呼称する。また、テーブルの間のその他のタイプの関係も可能である。
【００４２】
セキュリティモジュール５２０は、ユーザによるデータベース１００内のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザ１０により、本発明者らは、データベース１００内のデータレコードに対するアクセスを試みる任意の人物又はエンティティを意味している。図１は、３人の特定のユーザ１０ａ、１０ｂ、１０ｃを示している。例えば、ユーザの役割（例えば、プロジェクトマネージャ、部署マネージャ、役員、又は別の役割）、ユーザの場所（例えば、北東部部門、西部部門、又は別の場所）、ユーザのセキュリティクリアランス（例えば、トップシークレット、シークレット、パブリック、又は別のクリアランス）、ユーザの部署（例えば、人事、技術、マーケティング、又は別の部署）、或いは、別の特性に基づいて、ユーザセキュリティコード１８をそれぞれのユーザ１０と関連付けることができる。ユーザ１０が、データベース１００内の特定のデータレコードに対するアクセスを要求した際に、セキュリティモジュール５２０は、ユーザのユーザセキュリティコード１８とその特定のデータレコードのセキュリティラベルの間の比較に基づいて、ユーザ１０による特定のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザのアクセス要求を受信する前に、特定のデータレコードのセキュリティラベルが既に算出されていることから、セキュリティモジュール５２０は、行のセキュリティラベルの判定という潜在的に演算集約的なプロセスの実行を必要とすることなしに、ユーザによるデータレコードに対するアクセスを制限する必要があるかどうかを迅速に判定することができる。
【００４３】
データベース１００に対するアクセスは、行ごとに制限することができる。例えば、テーブル内のそれぞれの行は、同一テーブル内のそれぞれのその他の行のセキュリティラベルとは独立した、データベース１００内のその他のテーブル内のそれぞれの行のセキュリティラベルとは独立した、その独自の個別化されたセキュリティラベルを有することができる。行のセキュリティラベルは、１つ又は複数のコンポーネントを有する集約されたセキュリティラベルであってもよく、これらのコンポーネントのそれぞれは、行の内部の情報、行の外部の情報、テーブルに固有の情報、又はこれらのうちの任意の２つ以上のものの組合せに基づいて独立的に判定される。それぞれの行のセキュリティラベルは、行自体の内部のフィールド内において記憶することができる。データレコードのセキュリティラベルのそれぞれのコンポーネントは、データレコードに対するユーザアクセスの制限又はデータレコードに対するユーザアクセスの許可を表すことができる。セキュリティモジュール５２０は、特定のデータレコード内において記憶されているセキュリティラベルの１つ又は複数のコンポーネントが、特定のユーザセキュリティコード１８を有するユーザによるその特定のデータレコードに対するアクセスを制限しているかどうかを判定することができる。
【００４４】
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、データレコードの１つ又は複数の属性などのデータレコードの内部の情報に基づいて判定されている。データレコードの属性は、データレコードのフィールド内において記憶されている数値、ストリング、又は別のタイプの値などの値である。属性は、役割（後述する）、ユーザ、ユーザのグループ、ビジネスラベル、機能に対する入力、或いは、その他の情報などの情報を表すことができる。一例においては、データレコードの属性は、データレコードによって表されている企業部門の識別子であってもよく、データレコードのセキュリティラベルのコンポーネントは、企業部門の識別子に基づいて判定することができる。一例においては、データレコードの属性は、クリアランス値であってもよく、クリアランス値は、データレコードが、トップシークレット（ＴＳ）であるのか、シークレット（Ｓ）であるのか、或いは、パブリック（Ｐ）であるのか、を通知しており、データレコードのセキュリティラベルのコンポーネントは、クリアランス値に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの単一のコンポーネントは、データレコードによって表されている企業部門の識別子とデータレコードのクリアランス値の両方に基づいたものなどのように、複数の属性に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの複数のコンポーネントは、それぞれ、対応した属性に基づいて判定することができる。
【００４５】
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、同一のテーブル又は異なるテーブル内の関係したデータレコードのセキュリティラベルのコンポーネントなどのように、データレコードの外部の情報に基づいて判定されている。１つのテーブル内のデータレコードは、外部キー関係を通じて、同一のテーブル又は異なるテーブル内の行と関係付けることができる。外部キーとは、第２データレコードを一意に識別し、その結果、これにより、第１データレコードと第２データレコードの間のリンクを確立する第１データレコード内において記憶されている値である。第１及び第２データレコードは、同一のテーブル又は異なるテーブル内に存在していてもよい。本発明者らは、しばしば、例えば、外部キー関係又はその他のタイプの関係を通じて関係付けられている行を関係した行と呼称し、異なるテーブル内の関係した行内の情報に基づいたセキュリティラベルのコンポーネントの判定をセキュリティラベルのコンポーネントの継承と呼称している。一例において、子テーブル内のそれぞれのデータレコードは、プロジェクトを表しており、外部キー関係を介して、企業部門を表す親テーブル内のデータレコードに関係付けられている。プロジェクトテーブル内のそれぞれのデータレコードは、企業部門テーブル内の関係付けられているデータレコードのセキュリティラベルの対応したコンポーネントから、そのセキュリティラベルのコンポーネントを継承している。セキュリティラベルの継承により、高度なアクセス制限を相対的に低いレベルのテーブルに伝播させることができる。例えば、セキュリティラベルの継承によれば、ユーザによる企業部門テーブル内の技術部門を表すデータレコードに対するアクセスが制限されている場合には、技術部門に関係したプロジェクトテーブル内のプロジェクトデータレコードを表す任意のデータレコードに対するユーザによるアクセスも、制限されることになる。
【００４６】
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、所与のテーブルに属するすべてのデータレコードについて一定である。例えば、所与のテーブル内のすべてのデータレコードが、セキュリティラベルのコンポーネントとして、一定の値を有することが可能であり、この一定の値は、そのテーブルの属性である。一例においては、従業員の給料を表すデータレコードを含むテーブル内において、すべてのデータレコードが、セキュリティラベルの「コンフィデンシャル」コンポーネントを有することができる。
【００４７】
行のセキュリティラベルのコンポーネントは、複数のその他の行から継承された値に基づいたものであってもよい。いくつかの例においては、行のセキュリティラベルのコンポーネントを形成するべく、その他の行から取得された複数の値が連結されている。複数の値は、アルファベット順により、番号順により、行とそれぞれのその他の行の間の関係に基づいた順序により、或いは、別の順序により、連結することができる。いくつかの例においては、複数の値は、順序付けされた又は階層的なリストの一部分であってもよく、複数の値の中の単一の最高優先順位値のみが、行のセキュリティラベルのコンポーネントとして使用されている。例えば、１つの関係した行が、高優先順位値（例えば、「ＴＳ」）を有するコンポーネントを有し、別の関係した行が、相対的に小さな優先順位値（例えば、「Ｓ」）を有する場合には、これらの２つの行に基づいた継承されたコンポーネントは、高優先順位値（「ＴＳ」）を引き継ぐことになる。
【００４８】
行のセキュリティラベルのコンポーネントは、複数の要素に基づいたものであってもよい。一例において、行のセキュリティラベルのコンポーネントは、行の属性及び関係した行から継承された値の両方に基づいたものであってもよい。セキュリティラベルのコンポーネントは、属性と継承された値の連結であってもよく、属性と継承された値の中の相対的に高優先順位の値を引き継ぐことも可能であり、或いは、別の方法で組み合わせることもできる。
【００４９】
行のセキュリティラベルは、複数のコンポーネントを有することが可能であり（しばしば、集約されたセキュリティラベルと呼称される）、この場合に、それぞれのコンポーネントは、互いのコンポーネントとは独立的に判定されている。行のセキュリティラベルは、行の属性、継承によって判定された１つ又は複数のコンポーネント、テーブルに固有の情報に基づいて判定された１つ又は複数のコンポーネント、或いは、これらのものの任意の２つ以上の組合せに基づいて判定された１つ又は複数のコンポーネントを含むことができる。
【００５０】
いくつかの外部キー関係は、ヌル可能であってもよく、これは、エラーを生成することなしに外部キーがデータレコードについて欠落しうることを意味している。セキュリティラベルのコンポーネントが、ヌル可能な外部キーを介して継承によって判定される際には、そのコンポーネントの既定の選択肢を規定することができる。既定の選択肢は、既定値をセキュリティラベルのコンポーネントに割り当てるというものであってもよく、外部キー関係を無視することにより、セキュリティラベルのコンポーネントをブランク状態において残すというものであってもよく、或いは、その他の要因に基づいてコンポーネントの値を判定するというものであってよい。いくつかの外部キー関係は、ヌル可能でなくてもよく、これは、外部キーの値が存在しない場合にエラーが結果的に生成されることを意味している。セキュリティラベルのコンポーネントが、ヌル可能ではない外部キーを介して継承によって判定される際には、既定値は、規定されない。
【００５１】
１つ又は複数のテーブルに固有の規則は、セキュリティラベルのそれぞれのコンポーネントがテーブル内のそれぞれのレコードごとに判定される方式を規定している。テーブルに固有の規則は、テーブル内のそれぞれのデータレコードのセキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定の際に使用される属性、外部キー、及び定数のうちの１つ又は複数を規定することができる。テーブルに固有の規則は、複数の値を連結するのか、階層的な又は順序付けられたリストとして取り扱うのか、或いは、その他の方法で処理するのかを規定することができる。テーブルに固有の規則は、外部キー関係がヌルである場合の既定値を規定することができる。また、その他の規則を規定することもできる。
【００５２】
いくつかの例においては、セキュリティラベルのコンポーネントを単純化するべく、ルックアップテーブルなどの変換テーブルを使用することができる。変換テーブルは、値の組又は値の組合せのそれぞれを値の別の組の対応した値にマッピングしている。変換テーブルは、例えば、セキュリティラベルの単一のコンポーネントが、多数の連結された値を含みうる場合などに、有用でありうる。このようなコンポーネントは、複雑且つ不恰好なものになる可能性がある。変換テーブルは、連結された値のそれぞれの可能な組合せを単一の値などの相対的に単純な表現にマッピングすることが可能であり、この単一の値は、セキュリティラベル内において代替値として使用することができる。
【００５３】
いくつかの例においては、データレコードのセキュリティラベルは、データレコードがデータベース１００に入力される際に判定されている。いくつかの例においては、データレコードのセキュリティラベルの１つ又は複数のコンポーネントは、データレコードのセキュリティラベルのコンポーネントの変化を生成しうる変更がデータレコードに対して又は関係したデータレコードに対して実施された際に、更新されている。例えば、データレコードの属性が変更された際に、属性に基づいて判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーが変更された際には、その外部キーを介して継承によって判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーを介して下流のデータレコードに関係付けられた上流のデータレコードに対して変更が実施された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。下流のデータレコードに外部キーを介して関係付けられた上流のデータレコードが削除された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。また、その他の状況も、データレコードのセキュリティラベルの更新をトリガすることができる。
【００５４】
行のセキュリティラベルを使用することにより、行に対するアクセスを制限することができる。データベースシステムのそれぞれのユーザは、ユーザセキュリティコードを有しており、ユーザセキュリティコードは、データベース内のデータレコードのセキュリティラベルと同一のコンポーネントを含むことができる。ユーザが行に対するアクセスを試みた際に、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、行のセキュリティラベルの対応したコンポーネントと比較される。コンポーネントのいずれかがユーザによる行に対するアクセスを禁止している場合には、ユーザによる行に対するアクセスが制限される。
【００５５】
いくつかの例において、行のセキュリティラベルのコンポーネントは、１つ又は複数の値を連結することによって形成されている。そのセキュリティラベルが、ユーザのユーザセキュリティコードには含まれていない１つ又は複数の値を含んでいる行に対するユーザによるアクセスは、制限される。例えば、特定の行は、連結された値「Ａ，Ｂ，Ｃ」を含むコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「Ａ，Ｂ」を含んでいるユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、対応したコンポーネントの値「Ａ，Ｂ，Ｃ，Ｄ」を含んでいるユーザによるこの行に対するアクセスは、許容されてもよい。
【００５６】
いくつかの例においては、行のセキュリティラベルのコンポーネントを形成しうる値は、順序付けされた又は階層的なリストの一部分である。ユーザのユーザセキュリティコードの対応したコンポーネントの所与の値を有するユーザによるユーザの値よりも大きな優先順位値を有するすべての行に対するアクセスは、制限される。例えば、セキュリティラベルのコンポーネント値は、順序付けされたリスト「ＴＳ」、「Ｓ」、「Ｐ」から選択されてもよく、この場合に、「ＴＳ」は、最高優先順位値であり、「Ｐ」は、最低優先順位値である。特定の行は、値「Ｓ」を有するコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「Ｐ」を有しているユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、値「ＴＳ」又は「Ｓ」を有しているユーザによるこの行に対するアクセスは、許容されてもよい。
【００５７】
いくつかの例においては、ユーザ１０のユーザセキュリティコード１８のコンポーネントのうちの１つ又は複数は、ユーザの役割に基づいたものであってもよい。役割により、本発明者らは、職位、責任の組、その他の者との関係における地位、又は別のタイプの地位などのユーザによって保持されている地位を意味している。例示用の役割は、役員の役割、管理的な役割、専門スタッフの役割、サポートの役割、又はその他の役割を含むことができる。例えば、図１の例におけるように、部門役員１０ａ、生産労働者１０ｂ、及び部署マネージャ１０ｃは、それぞれ、ユーザセキュリティコード１８の１つ又は複数のコンポーネントのそれぞれごとに会社内のそれぞれのユーザの役割に基づいた異なる値を有する。
【００５８】
いくつかの例においては、第１役割は、１つ又は複数のその他の役割を意味することが可能であり、これは、ユーザに第１役割が割り当てられる場合に、そのユーザには、１つ又は複数のその他の役割も、自動的に割り当てられることを意味している。また、その結果、ユーザは、それらの１つ又は複数のその他の役割について、任意のユーザセキュリティコードと関連付けられることになる。例えば、部門役員の役割は、部署マネージャの役割を意味することができる。この結果、部門役員の役割を有する任意のユーザ（例えば、ユーザ１０ａ）には、部署マネージャの役割を自動的に割り当てることが可能であり、従って、部署マネージャの役割用の任意のユーザセキュリティコードと関連付けることができる。
【００５９】
図２Ａを参照すれば、例示用のデータベースシステム９５０内のエントリは、２つの別個のコンポーネントを有するセキュリティラベルを有する。データベースシステム９５０は、Very Special Deliveries, Inc.によって管理されているそれぞれの配送の配送元、配送先、及び輸送の手段を表すデータを記憶している。データベースシステム９５０は、外部キーによって階層的な関係において関係付けられた複数のテーブルを含む。配送テーブル９１０内のデータレコードは、それぞれの配送の配送元、配送先、輸送の手段、及びスポンサーを表すデータを記憶している。配送テーブル９１０内のそれぞれのレコード内の配送元及び配送先フィールドは、それぞれ、外部キー関係によってサイトテーブル９２０内のレコードに関係付けられており、サイトテーブル内のレコードは、それぞれ、外部キー関係によって領域テーブル９３０内のレコードに関係付けられている。配送テーブル９１０内のそれぞれのレコード内の輸送フィールドは、外部キー関係によって輸送テーブル９４０に関係付けられている。配送テーブル９１０内のそれぞれのレコード内のスポンサーフィールドは、外部キー関係によってスポンサーテーブル９６０に関係付けられている。この例においては、セキュリティに関与するフィールドのみが示されている。データレコードは、セキュリティラベルの判定に関与しないと共に図２Ａには示されていない更なる属性、外部キー、又はこれらの両方を有することができる。
【００６０】
データベースシステム９５０内における許可は、（分類：場所という形態において表現される）分類コンポーネントと場所コンポーネントという２つの別個の独立的なコンポーネントを有する集約されたセキュリティラベルによって制約されている。この例においては、分類コンポーネントは、低優先順位値（Ｕ）及び高優先順位値（Ｓ）を有する順序付けされたリストから選択された単一の値を引き継いでいる。場所コンポーネントは、１つ又は複数の値（ＮＡ又はＥＵ）を引き継ぐことが可能であり、場所コンポーネントが複数の値を含んでいる場合には、値は、アルファベット順のリスト内において連結される。
【００６１】
輸送テーブル９４０内においては、それぞれのレコードのセキュリティラベルの分類コンポーネントが、レコードの「分類」属性に基づいて判定されている。「分類」属性が「Ｕ」である場合には、セキュリティラベルの分類コンポーネントは、値「Ｕ」を引き継ぎ、「分類」属性が「Ｓ」である場合には、セキュリティラベルの分類コンポーネントは、値「Ｓ」を引き継ぐことになる。輸送テーブル９４０内のレコードは、セキュリティラベルの場所コンポーネントの値を有してはいない。輸送テーブル９４０のセキュリティラベルの判定は、例えば、「分類」フィールド内の値が、輸送テーブル９４０内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６２】
領域テーブル９３０内においては、それぞれのレコードのセキュリティラベルの場所コンポーネントが、レコードの「領域＿コード」属性に基づいて判定されている。「領域＿コード」属性が「ＮＡ」である場合には、セキュリティラベルの場所コンポーネントは、値「ＮＡ」を引き継ぎ、「領域＿コード」属性が「ＥＵ」である場合には、セキュリティラベルの場所コンポーネントは、値「ＥＵ」を引き継ぐことになる。領域テーブル９３０内のレコードは、セキュリティラベルの分類コンポーネントの値を有してはいない。領域テーブル９３０のセキュリティラベルの判定は、例えば、「領域＿コード」フィールド内の値が、領域テーブル９３０内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６３】
スポンサーテーブル９６０内のすべてのレコードのセキュリティラベルの分類コンポーネントは、値「Ｓ」を引き継いでいる。値「Ｓ」は、レコードの属性又はレコードの外部キー関係とは無関係に、スポンサーテーブル９６０内のすべてのレコードに適用されるテーブルに固有の定数である。スポンサーテーブル９６０のセキュリティラベルの判定は、例えば、値「Ｓ」が、スポンサーテーブル９６０内のデータレコードのセキュリティラベルの分類コンポーネントに常に含まれる必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６４】
サイトテーブル９２０内のレコードは、セキュリティラベルの分類コンポーネント及び場所コンポーネントの両方を有する。それぞれのレコードのセキュリティラベルの分類コンポーネントは、レコードの「分類」属性に基づいて判定されている。サイトテーブル９２０内のそれぞれのデータレコードの分類コンポーネントの判定は、例えば、「分類」フィールド内の値が、サイトテーブル９２０内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６５】
サイトテーブル９２０内のそれぞれのレコードのセキュリティラベルの場所コンポーネントは、継承によって判定されている。サイトテーブル９２０内のそれぞれのレコードは、「領域」フィールド内の値を通じて、外部キー関係を介して、領域テーブル９３０内のレコードと関係付けられている。それぞれのサイトレコードは、関係した領域レコードのセキュリティラベルの場所コンポーネントから、そのセキュリティラベルの場所コンポーネントを継承している。例えば、New York、Chicago、及びWhite Sandsというサイトレコードは、北米領域レコードから、「ＮＡ」という場所コンポーネントを継承しており、Londonサイトレコードは、欧州領域レコードから「ＥＵ」という場所コンポーネントを継承している。サイトテーブル９２０内のそれぞれのデータレコードの場所コンポーネントの判定は、例えば、領域テーブル９３０に対する外部キーが尊重される必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６６】
領域テーブル９３０に対する外部キー関係は、ヌル可能であり、これは、「領域」フィールドが、エラーを生成することなしに、ブランクでありうることを意味している。この例においては、外部キー関係が、所与のデータレコードについてヌルである場合には（例えば、そのデータレコードの「領域」フィールド内に値が存在していない場合）、セキュリティラベルは、既定で、分類コンポーネント内においては、「Ｓ」となり、場所コンポーネント内においては、値なしとなるように、判定される。「Ｓ」は、分類コンポーネントの高優先順位値であることから、この既定値は、分類コンポーネントが、データレコードの分類属性の値とは無関係に、値「Ｓ」を引き継ぐことになることを保証している。ヌル可能な外部キーの既定の動作は、例えば、領域テーブル９３０に対する外部キー関係がヌルである場合にセキュリティラベルが「Ｓ：−」となる必要があることを通知するコードなどの、セキュリティモジュール５２０によって実行されるコードにより、実装することができる。
【００６７】
配送テーブル９１０内のデータレコードのセキュリティラベルの分類コンポーネント及び場所コンポーネントは、いずれも、継承により、判定されている。配送テーブル９１０内のそれぞれのレコードは、外部キー関係を介して、その他のテーブル内の１つ又は複数のその他のレコードに関係付けられており、これには、サイトテーブル９２０（外部キーとしての「配送元」及び「配送先」フィールドを介したもの）、輸送テーブル９４０（外部キーとしての「輸送」フィールドを介したもの）、及びスポンサーテーブル９６０（外部キーとしての「スポンサー」フィールドを介したもの）が含まれる。
【００６８】
分類コンポーネントは、「Ｕ」が低優先順位値であると共に「Ｓ」が高優先順位値である順序付けされたリストに基づいて、単一の値を引き継いでいる。所与のデータレコードの分類コンポーネントには、関係したデータレコードのそれぞれ内の分類コンポーネントの最高優先順位値である値が割り当てられる。従って、所与のデータレコードにおいて、関係したデータレコードのいずれかが、「Ｓ」の値を有する分類コンポーネントを有する場合には、所与のデータレコードには、分類コンポーネントについて「Ｓ」の値が割り当てられる。
【００６９】
場所コンポーネントは、関係したデータレコードの場所コンポーネントの値のすべてをアルファベット順に連結された状態において引き継いでいる。従って、所与のデータレコードにおいて、関係したデータレコードの１つが、「ＮＡ」の値を有する場所コンポーネントを有し、関係したデータレコードの別のものが、「ＥＵ」の値を有する場所コンポーネントを有している場合には、所与のデータレコードには、場所コンポーネントについて「ＥＵ，ＮＡ」の値が割り当てられる。
【００７０】
この例においては、輸送テーブル９４０及びスポンサーテーブル９６０に対する外部キーは、ヌル可能である。それぞれのヌル可能な外部キーごとに、既定値が提供される。輸送テーブル９４０に対する外部キーが、所与のデータレコードについてヌルである場合には（例えば、そのデータレコードの「輸送」フィールドにおいて値が存在していない場合）、セキュリティラベルは、既定で、分類コンポーネントにおいては、「Ｓ」となり、場所コンポーネントにおいては、値なしとなるように、判定される。サイトテーブル９２０に対する外部キーは、ヌル可能ではない。サイトテーブル９２０に対する外部キーが、所与のデータレコードについてヌルである場合には（例えば、そのデータレコードの「配送元」又は「配送先」フィールドにおいて値が存在していない場合）、エラーが発生する。
【００７１】
配送テーブル９１０内のそれぞれのデータレコードのセキュリティラベルの判定は、以下のように、尊重されるべきそれぞれの外部キー関係を識別すると共にヌルの取扱いを規定するセキュリティモジュール５２０によって実行されるコードにより、実装することができる。
配送元サイトに対するＦＫを尊重する（ヌル可能ではない）
配送先サイトに対するＦＫを尊重する（ヌル可能ではない）
輸送に対するＦＫを尊重する（ヌルである場合には、「Ｓ：−」を使用する）
スポンサーに対するＦＫを尊重する（ヌルである場合には、無視する）
【００７２】
具体的には、Ｄ１配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York（「Ｕ」）、Chicago（「Ｕ」）、及び飛行機（「Ｕ」）の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル９６０に対する外部キー関係は、無視される。従って、Ｄ１レコードの分類コンポーネントには、値「Ｕ」が割り当てられる。Ｄ１配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びChicago（「ＮＡ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。場所コンポーネントの値は、すべての関係したレコードについて同一であることから、連結は、不要であり、Ｄ１配送レコードの場所コンポーネントには、値「ＮＡ」が割り当てられる。Ｄ１配送レコードの集約されたセキュリティラベルは、「Ｕ：ＮＡ」である。
【００７３】
Ｄ２配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York（「Ｕ」）、White Sands（「Ｓ」）、及び飛行機（「Ｕ」）の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル９６０に対する外部キー関係は、無視される。「Ｓ」は、「Ｕ」よりも高優先順位の値であり、従って、Ｄ２レコードの分類コンポーネントには、値「Ｓ」が割り当てられる。Ｄ２配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びWhite Sands（「ＮＡ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、Ｄ２配送レコードの集約されたラベルは、「Ｓ：ＮＡ」である。
【００７４】
Ｄ３配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York（「Ｕ」）、London（「Ｕ」）、及び飛行機（「Ｕ」）の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル９６０に対する外部キー関係は、無視される。従って、Ｄ３の分類コンポーネントには、値「Ｕ」が割り当てられる。Ｄ３配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びLondon（「ＥＵ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。２つの場所コンポーネント値がアルファベット順において連結されることにより、「ＥＵ，ＮＡ」というＤ３配送レコードの場所コンポーネント値が形成される。従って、Ｄ３配送レコードの集約されたラベルは、「Ｕ：ＥＵ，ＮＡ」である。また、同様に、Ｄ４配送レコードの集約されたラベルは、「Ｕ：ＥＵ，ＮＡ」である。
【００７５】
Ｄ５配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York（「Ｕ」）、London（「Ｕ」）、及び潜水艦（「Ｓ」）の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル９６０に対する外部キー関係は、無視される。「Ｓ」は、「Ｕ」よりも高優先順位の値であり、従って、Ｄ５レコードの分類コンポーネントには、値「Ｓ」が割り当てられる。Ｄ５配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びLondon（「ＥＵ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、Ｄ３配送レコードの集約されたラベルは、「Ｓ：ＥＵ，ＮＡ」である。
【００７６】
Ｄ６配送レコードは、輸送フィールドについて、ヌル外部キー関係を有しており、従って、Ｄ６レコードの分類コンポーネントは、関係したレコードの分類コンポーネントの値とは無関係に、既定で「Ｓ」である。Ｄ６配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びLondon（「ＥＵ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、Ｄ６配送レコードの集約されたラベルは、「Ｓ：ＥＵ，ＮＡ」である。
【００７７】
Ｄ７配送レコードの分類コンポーネントは、New York（「Ｕ」）、London（「Ｕ」）、飛行機（「Ｕ」）、及びスポンサー（「Ｓ」）という分類コンポーネントを有する関係したレコード内の最高優先順位分類コンポーネント値を選択することにより、判定される。従って、Ｄ７の分類コンポーネントには、値「Ｓ」が割り当てられる。Ｄ７配送レコードの場所コンポーネントは、New York（「ＮＡ」）及びLondon（「ＥＵ」）という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、Ｄ７配送レコードの集約されたラベルは、「Ｓ：ＥＵ，ＮＡ」である。
【００７８】
図２Ｂを参照すれば、図２Ａに示されているデータベースシステム９５０のそれぞれのユーザは、（分類：場所という形態において表現される）分類コンポーネントと場所コンポーネントという２つの別個の独立したコンポーネントを有するユーザセキュリティコードを有する。ユーザがデータベースシステム９５０内のデータレコードに対するアクセスを試みた際には、ユーザのユーザセキュリティコードの分類コンポーネントの値が、データレコードのセキュリティラベルの分類コンポーネントの値と比較され、ユーザのユーザセキュリティコードの場所コンポーネントの値が、データレコードのセキュリティラベルの場所コンポーネントの値と比較される。分類コンポーネント又は場所コンポーネントが、ユーザによる行に対するアクセスを禁止している場合には、ユーザによるその行に対するアクセスが制限される。
【００７９】
ユーザセキュリティコードの分類コンポーネント及び場所コンポーネントは、それぞれ、データレコードのセキュリティラベルの、それぞれ、分類コンポーネント及び場所コンポーネントにとって利用可能な同一の値を引き継いでいる。例えば、ユーザセキュリティコードの分類コンポーネントには、「Ｓ」という高優先順位値又は「Ｕ」という低優先順位値を割り当てることができる。ユーザセキュリティコードの場所コンポーネントには、「ＮＡ」、「ＥＵ」、又は「ＮＡ，ＥＵ」を割り当てることができる。
【００８０】
ユーザのユーザセキュリティコードの分類コンポーネントが値「Ｕ」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値とは無関係に、そのセキュリティラベルが、相対的に大きな分類コンポーネントの優先順位値（例えば、「Ｓ」）を有するすべてのデータレコードに対するユーザによるアクセスが制限される。ユーザのユーザセキュリティコードの分類コンポーネントが値「Ｓ」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値に応じて、そのセキュリティラベルの分類コンポーネントについて「Ｕ」又は「Ｓ」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。データレコードのセキュリティラベルの分類コンポーネントがブランクである場合には、分類コンポーネントによって課される制限は存在しておらず、データレコードに対するユーザアクセスは、場所コンポーネントによって制御される。
【００８１】
ユーザのユーザセキュリティコードの場所コンポーネントが、値「ＮＡ」を有する場合には、そのセキュリティラベルが「ＮＡ」以外の任意の値を有する場所コンポーネントを有するすべてのデータレコードに対するユーザによるアクセスが制限される。従って、例えば、そのセキュリティラベルが、値「ＥＵ」又は「ＥＵ，ＮＡ」を有する場所コンポーネントを有するデータレコードに対するそのユーザによるアクセスは、制限されることになろう。ユーザのユーザセキュリティコードの場所コンポーネントが、値「ＥＵ，ＮＡ」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの分類コンポーネントの値に応じて、そのセキュリティラベルの場所コンポーネントについて「ＮＡ」、「ＥＵ」、又は「ＥＵ，ＮＡ」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。セキュリティラベルの場所コンポーネントがブランクである場合には、場所コンポーネントによって課される制限は、存在しておらず、データレコードに対するユーザのアクセスは、分類コンポーネントによって制御される。
【００８２】
分類コンポーネント又は場所コンポーネントが、データレコードに対するユーザによるアクセスを制限している場合には、ユーザによるそのデータレコードに対するアクセスは、制限される。例えば、「Ｕ：ＮＡ」というユーザセキュリティコードを有するユーザ１による、そのセキュリティラベルが分類コンポーネントについて「Ｓ」を有するすべてのデータレコード並びにそのセキュリティラベルが場所コンポーネント内において「ＮＡ」以外の任意の値を含むすべてのデータレコードに対するアクセスは、制限される。「Ｕ：ＥＵ，ＮＡ」というユーザセキュリティコードを有するユーザ２による、そのセキュリティラベルが分類コンポーネントについて「Ｓ」を有するすべてのデータレコードに対するアクセスは、制限されるが、ユーザ２は、場所コンポーネントの値に関する制限を有してはいない。「Ｓ：ＮＡ」というユーザセキュリティコードを有するユーザ３は、分類コンポーネントの値に関する制限を有してはいないが、そのセキュリティラベルが、場所コンポーネント内において「ＮＡ」以外の任意の値を含むすべてのデータレコードに対するユーザ３によるアクセスは、制限される。「Ｓ：ＥＵ，ＮＡ」というユーザセキュリティコードを有するユーザ４は、データレコードに対するアクセスに対する制限を有してはいない。
【００８３】
この例においては、それぞれのエントリのセキュリティラベルは、１つの順序付けられたコンポーネント（分類コンポーネント）と、１つの順序付けられていないコンポーネント（場所コンポーネント）と、を有する。いくつかの例においては、セキュリティラベルは、複数の順序付けられた又は階層的なコンポーネントを有することも可能であり、複数の順序付けられていないコンポーネントを有することも可能であり、或いは、これらの両方を有することもできる。
【００８４】
この例においては、セキュリティラベルのコンポーネントの継承は、複数世代のテーブル階層構造を通じて伝播している。拡張により、配送テーブル９１０が、そのエントリが配送テーブル９１０のエントリに対する外部キー関係によって関係付けられている、ＤｅｌｉｖｅｒｙＩｔｅｍテーブルなどの、子テーブルを有する場合には、ラベルの継承は、上述のものに類似した方式により、ＤｅｌｉｖｅｒｙＩｔｅｍテーブル内に継続することになろう。
【００８５】
行のセキュリティラベルを行自体の内部において記憶することにより、その行のアクセス制限を迅速且つ容易に判定することが可能となる。例えば、ユーザが行に対するアクセスを試みた際に、（例えば、ユーザが行に対するアクセスを試みている最中の）リアルタイムにおける関係した行の識別又はセキュリティラベルの算出を必要とすることなしに、行のセキュリティラベルとユーザのユーザセキュリティコードの間における直接的な比較により、特定の行にアクセスするためのユーザの能力を判定することができる。従って、この方式は、データベース内におけるセキュリティが保護された行に対する相対的に迅速且つ信頼性の高いアクセスを提供することができる。また、行のセキュリティラベルを行自体の内部において記憶することにより、セキュリティ監査又はセキュリティ設定の維持も促進されることになり、その理由は、その他のテーブルの参照又は複雑な論理的判定を必要とすることなしに、セキュリティラベルが、可視状態にあり、容易に理解可能であるからである。
【００８６】
図３を参照すれば、システム５００は、例えば、コンピュータ５０６により、データベース９０に入力されるデータレコード５０４のセキュリティラベル５０２を判定することができる。データレコード５０４は、データベース９０に追加される新しいデータレコードであってもよく、或いは、データベース９０内に既に記憶されているデータレコードに対する更新であってもよい。
【００８７】
検出モジュール５１０は、データベース９０内の１つ又は複数のデータレコードのセキュリティラベル５０２のコンポーネントに影響を及ぼしうる属性及び外部キー関係に対する変化を検出する。検出モジュール５１０は、到来データレコード５０４を検出し、データレコード５０４のセキュリティラベル５０２を計算するべく、データレコード５０４をセキュリティモジュール５２０に送付するかどうかを判定する。例えば、データレコード５０４が、新しいデータレコードである場合には、検出モジュール５１０は、データレコード５０４をセキュリティモジュール５２０に自動的に送付する。データレコード５０４が、予め記憶されているデータレコードに対する更新である場合には、検出モジュール５１０は、データレコードに対する更新が、データレコード５０４のセキュリティラベルの１つ又は複数のコンポーネントに影響を及ぼしうるかどうかを判定する。セキュリティラベルの１つ又は複数のコンポーネントに影響を及ぼしうる更新は、例えば、セキュリティラベルのコンポーネントの判定において使用されているデータレコードの属性に対する更新、セキュリティラベルのコンポーネントが判定されている外部キー関係に対する更新、或いは、別の更新を含む。セキュリティラベルのいずれのコンポーネントにも影響を及ぼさない更新は、例えば、セキュリティラベルの判定において使用されていない属性又は外部キー関係に対する更新を含む。検出モジュール５１０が、更新がデータレコード５０４のセキュリティラベルに対して影響を及ぼしうると判定した場合には、検出モジュール５１０は、更新されたデータレコード５０４をセキュリティモジュール５２０に送付する。検出モジュール５１０が、更新がデータレコードのセキュリティラベルに影響を及ぼさないと判定した場合には、判定モジュール５１０は、例えば、セキュリティモジュール５２０をバイパスすることにより、データレコード５０４をカスケードモジュール５５０（後述する）に直接的に送付することができる。
【００８８】
いくつかの例においては、検出モジュール５１０は、規則データベース５３０又は規則ファイルに記憶された、或いは、別の方法で記憶された、１つ又は複数の規則５３２に従って、到来データレコード５０４をセキュリティモジュール５２０に送付するかどうかを判定することができる。例示用の規則５３２は、新しいデータレコード５０４がセキュリティモジュール５２０を通じて送付される必要があることを通知することができる。例示用の規則は、データレコードのセキュリティラベルのコンポーネントの判定において使用されるデータベース９０の特定のテーブル（例えば、データレコード５０４が記憶されるテーブル）内のデータレコードの属性を規定することが可能であり、規定された属性の１つ又は複数に対する変化を有する更新済みのデータレコード５０４が、セキュリティモジュール５２０を通じて送付される必要があることを通知することができる。例示用の規則は、更新されたデータレコード５０４をその他のデータレコードに関係付けている外部キー値を含むデータベース９０の特定のテーブル（例えば、データレコード５０４が記憶されるテーブル）内のデータレコードの１つ又は複数のフィールドを規定することが可能であり、規定された外部キーフィールドのうちの１つ又は複数に対する変化を有する更新済みのデータレコード５０４が、セキュリティモジュール５２０を通じて送付される必要があることを通知することができる。例えば、規則５３２は、データレコード５０４が、異なる上流のデータレコードに関係付けられることをもたらしうる外部キー値の変化が、セキュリティモジュール５２０を通じた送付をトリガする一方で、データレコード５０４が、異なる下流のデータレコードに関係付けられることをもたらしうる外部キー値の変化が、データレコード５０４がカスケードモジュール５５０に直接的に送付されることをもたらすことを通知することができる。
【００８９】
セキュリティモジュール５２０は、到来する又は更新されたデータレコード５０４のセキュリティラベル５０２を判定する。セキュリティモジュール５２０は、規則データベース５３０内において記憶されている規則５３２に基づいて、セキュリティラベル５０２を判定することができる。データベース９０内のそれぞれのテーブルは、１つ又は複数の規則５３２の個別の組を有することができる。所与のテーブルの規則は、セキュリティラベルのそれぞれのコンポーネントが、そのテーブル内のそれぞれのレコードについて判定される方式を規定している。規則は、セキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定において使用される必要がある属性、外部キー、及び定数のうちの１つ又は複数を識別することができる。規則は、所与のコンポーネントを判定する際に使用される複数の値が、階層的なリスト又は順序付けられたリストとして連結又は処理される必要があるかどうかを規定することができる。規則は、セキュリティラベルのコンポーネントの既定値の規定又はヌル外部キーを無視するための通知などのように、ヌル可能な外部キー関係がヌルである場合の既定値を規定することができる。セキュリティラベル５０２が、規則５３２に従って、到来した又は更新されたデータレコード５０４について判定されたら、セキュリティラベル５０２は、データレコード５０４に追加され、セキュリティラベル５０２を含むデータレコード５０４は、データベース９０内において記憶される。
【００９０】
また、データレコード５０４は、カスケードモジュール５５０にも送付される。カスケードモジュール５５０は、データレコード５０４に対する更新の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール５５０は、例えば、外部キー関係を通じて、データレコード５０４に関係付けられた下流レコード５１４を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流のレコード５１４をセキュリティモジュール５２０に送付する。いくつかの例においては、カスケードモジュール５５０は、データレコード５０４をその他の下流のデータレコードに関係付けている外部キーを識別する１つ又は複数の規則５３２に従って、下流の関係付けられているレコード５１４を識別することができる。
【００９１】
下流のデータレコード５１４がセキュリティモジュール５２０によって処理されたら、そのセキュリティラベルは、データベース９０内において更新され、下流のデータレコード５１４は、そのデータレコード５１４の下流のデータレコードのセキュリティラベルが再計算されうるように、カスケードモジュール５５０に送付される。このセキュリティラベルの再計算のカスケード状態は、例えば、利用可能な更なる下流のデータレコードが存在しなくなる時点まで、継続することができる。
【００９２】
システム５００は、データレコードがデータベース９０から削除された際に、セキュリティラベルの再計算を実行することができる。検出モジュール５１０は、データレコードがデータベース９０から削除される必要があることを検出し、データレコードをカスケードモジュール５５０に送付する。カスケードモジュール５５０は、データレコードの削除の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール５５０は、例えば、外部キー関係を通じて、データレコードに関係付けられた下流のレコード５１４を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流レコード５１４をセキュリティモジュール５２０に送付する。
【００９３】
いくつかの例においては、セキュリティモジュール５２０は、セキュリティラベルの計算のログ５１８を維持することができる。例えば、ログ５１８は、そのセキュリティラベルが計算又は再計算されたデータレコードの識別子、変化の日付、変化の時刻、セキュリティラベルの以前の値、変化の理由（例えば、再計算をトリガした上流の関係したレコードの識別情報、或いは、データレコードが新しいものである又は更新されたものであるという通知）、又はその他の情報、或いは、これらのうちのいずれか２つ以上の組合せを含むことができる。
【００９４】
図４を参照すれば、システム５００は、データベース９０内において記憶されているデータレコード６０２に対するユーザ６００からのアクセス要求に対して応答することができる。ユーザは、ユーザセキュリティコード６０４を有する。ユーザ６００がデータレコード６０２に対するアクセスを要求した際に、セキュリティモジュール５２０は、データベース９０からデータレコード６０２のセキュリティラベル６０６を取得する。次いで、セキュリティモジュール５２０は、規則５３２に従って、データレコード６０２のセキュリティラベル６０６のコンポーネントのそれぞれをユーザのユーザセキュリティコード６０４の対応したコンポーネントと比較することができる。ユーザのユーザセキュリティコード６０４のコンポーネントのそれぞれが、セキュリティラベル６０６の対応したコンポーネントを充足している場合には、ユーザ６００によるデータレコード６０２に対するアクセスが可能となる。ユーザのユーザセキュリティコード６０４のコンポーネントのうちの１つ又は複数が、セキュリティラベル６０６の対応したコンポーネントを充足していない場合には、ユーザによるレコードに対するアクセスは、制限される。ユーザのアクセスが許容されている１つ又は複数のデータレコード６０２に対してユーザ６００がアクセスできるようにする画面６１０をユーザ６００に対して提示することができる。
【００９５】
図５を参照すれば、到来データレコードのセキュリティラベルを判定する一般的な方式において、データベースのテーブル内における記憶のために、データレコードが受信されている（８００）。セキュリティラベルがデータレコードについて判定される方式を通知する１つ又は複数の規則が取得されている（８０２）。セキュリティラベルのそれぞれのコンポーネントが、規則に従って判定されている（８０４）。セキュリティラベルのコンポーネントの判定は、データレコードの属性に基づいてセキュリティラベルのコンポーネントを判定するステップを含むことができる（８０６）。セキュリティラベルのコンポーネントの判定は、外部キー関係を介して関係付けられた別のデータレコードからの値の継承に基づいてセキュリティラベルのコンポーネントを判定するステップ（８０８）を含むことができる。セキュリティラベルのコンポーネントの判定は、テーブルと関連した一定の値に基づいてセキュリティラベルのコンポーネントを判定するステップ（８１０）を含むことができる。セキュリティラベルが、データレコード内のフィールド内において記憶されている（８１２）。
【００９６】
図６を参照すれば、更新済みのデータレコードのセキュリティラベルを更新する一般的な方式においては、データベース内において記憶されているデータレコードに対する更新が受信されている（６００）。データレコードについてセキュリティラベルが判定される方式を示す１つ又は複数の規則が取得されている（６０２）。更新が、データレコードのセキュリティラベルのコンポーネントの判定において使用されている属性に対して影響を及ぼす場合には、或いは、更新が、更新済みのデータレコードと上流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、或いは、これらの両方の場合には（６０４）、影響を受けたデータレコードのセキュリティラベルのコンポーネントが、例えば、上述のように、再計算されている（６０６）。更新が、セキュリティラベルの判定（６０４）において使用されているデータレコードのいずれの要素にも影響を及ぼさない場合には、データレコードのセキュリティラベルは、再計算されない（６０８）。下流の関係したデータレコードが識別されている（６１０）。データレコードのセキュリティラベルが再計算された場合には、或いは、更新が、更新済みのデータレコードと下流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、セキュリティ計算プロセスが、下流の関係したレコードのそれぞれごとに、実行される（６１２）。更なる下流レコードが存在していない際に、プロセスは終了する（６１４）。
【００９７】
図７を参照すれば、データベースからデータレコードを削除する一般的な方式において、データレコードが削除されている（９００）。下流の関係したデータレコードが識別されている（９０２）。セキュリティラベルのコンポーネントが、例えば、上述のように、下流の関係したレコードのそれぞれごとに、再計算されている（９０４）。更なる下流のレコードが存在していない際に、プロセスが終了している（９０６）。
【００９８】
いくつかのケースにおいては、行のセキュリティラベルは、行の読取りが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、行のセキュリティラベルは、行に対する書き込みが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、それぞれの行は、行を読み取ることができるユーザを制御するラベルと、行に書き込むことができるユーザを制御するラベルと、という２つのセキュリティラベルを有することができる。
【００９９】
先程付与したものなどのいくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、別のテーブル内の１つ又は複数の関係した行のそれぞれ内の情報に基づいて判定されている。いくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、同一のテーブル内の１つ又は複数の関係した行のそれぞれ内の情報に基づいて判定することができる。同一のテーブル内の関係した行内の情報に基づいた行のセキュリティラベルのコンポーネントの判定は、行の間の関係が階層的である際などのように、テーブル内の行の間の関係が循環的ではない際に、実行することができる。
【０１００】
いくつかの例においては、テーブル内の特定の行のセキュリティラベルのコンポーネントは、複数の参照のチェーンを通じて特定の行に関係付けられている行内の情報に基づいて、但し、参照のチェーン内の１つ又は中間の行内の情報に基づくことなしに、判定することができる。例えば、テーブルＡ内のそれぞれの行をテーブルＢ内の行と関連付けることが可能であり、テーブルＢ内のそれぞれの行をテーブルＣ内の行と関係付けることができる。テーブルＡ内のそれぞれの行のセキュリティラベルのコンポーネントは、テーブルＣ内の関係した行内の情報に基づいて、但し、テーブルＢ内の関係した行内の情報には基づくことなしに、判定することができる。
【０１０１】
いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、同一のテーブル又は別のテーブル内の任意の関係した行内の情報に基づいて判定することができる。いくつかのケースにおいては、ユーザは、行のセキュリティラベルが、任意の外部キー関係に準拠しないように、或いは、１つ又は複数の特定の外部キー関係に準拠しないように、既定値をオーバーライドすることができる。いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、いずれの外部キー関係にも準拠することができない。いくつかのケースにおいては、ユーザは、テーブル内のそれぞれの行のセキュリティラベルが、１つ又は複数の特定の外部キー関係に準拠するように、或いは、すべての外部キー関係に準拠するように、既定値をオーバーライドすることができる。
【０１０２】
いくつかの例においては、外部キー関係に対する既定の方式は、外部キーの特性に依存したものであってよい。例えば、特定の外部キーがヌル可能である場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠しないというものであってもよいが、特定の外部キーがヌル可能でない場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠するというものであってよい。特定の外部キーが、ヌル可能ではないが、それにも拘らず、ヌルである場合には、最も制限的なセキュリティラベル、最も頻繁に使用されるセキュリティラベル、ユーザによって規定されたセキュリティラベル、或いは、別のセキュリティラベルなどの代替セキュリティラベルを規定することができる。
【０１０３】
いくつかの例においては、例えば、テーブルの外部の情報に基づいた行レベルのセキュリティなどの行レベルのセキュリティがデータベース内のすべてのテーブルに対して適用されている。いくつかの例においては、行レベルのセキュリティは、データベース内のテーブルのいくつかに対してのみ、適用されている。
【０１０４】
いくつかの例においては、行レベルのセキュリティとの関係において上述したものと類似した方式により、列レベルのセキュリティを提供することができる。例えば、列レベルのセキュリティラベルを含むように、更なる行をテーブル内において提供することができる。列レベルのセキュリティの行内のフィールドの値は、テーブルの外部の情報、テーブルの内部の情報、又はこれらの両方に基づいたものであってもよい。
【０１０５】
いくつかの例においては、行レベルのセキュリティは、データベース内の階層的オブジェクトクラスなどの様々なオブジェクトクラスを通じて、伝播することができる。例えば、行レベルのセキュリティは、データベースレベルにおいて、スキーマレベルにおいて、又はテーブルレベルにおいて、或いは、別のレベルにおいて、適用することができる。
【０１０６】
図８を参照すれば、ユーザによるレコードに対するアクセスを制限するかどうかを判定する一般的な方式において、データレコードに対するアクセス要求が、ユーザから、或いは、ユーザのために、受信されている（８５０）。ユーザのユーザセキュリティコードが取得されており（８５２）、これは、１つ又は複数のコンポーネントを含むことができる。要求されたデータレコードのセキュリティラベルが取得されている（８５４）。ユーザアクセス制限を制御する１つ又は複数の規則が取得されており（８５６）、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、データレコードのセキュリティラベルの対応したコンポーネントと比較されている（８５８）。ユーザのユーザセキュリティコードのいずれかのコードが、データレコードに対するユーザによるアクセスを禁止している場合には（８６０）、データレコードに対するアクセスは、拒絶される（８６２）。ユーザのユーザセキュリティコードのコンポーネントが、データレコードに対するユーザによるアクセスを禁止していない場合には（８６０）、ユーザによるデータレコードに対するアクセスが可能とされる（８６４）。
【０１０７】
図９を参照すれば、いくつかの例においては、上述の技法は、データ供給源１０２と、実行環境１０４と、を含むデータ処理システム１５０内において実装することができる。データ供給源１０２は、ストレージ装置又はオンラインデータストリームに対する接続などのデータの１つ又は複数の供給源を含んでいてもよく、これらのそれぞれは、様々なフォーマット（例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット）のいずれかにおいてデータを記憶又は提供してもよい。実行環境１０４は、事前処理モジュール１０６と、実行モジュール１１２と、を含む。実行環境１０４は、例えば、ＵＮＩＸオペレーティングシステムの１つのバージョンなどの、適切なオペレーティングシステムの制御下において、１つ又は複数の汎用コンピュータ上においてホスティングされていてもよい。例えば、実行環境１０４は、ローカル型（例えば、対称型マルチプロセッシング（ＳＭＰ：Symmetric Multi-Processing）コンピュータなどのマルチプロセッサシステム）、ローカル分散型（例えば、クラスタ又は超並列処理（ＭＰＰ：Massively Parallel Processing）システムとして結合された複数のプロセッサ）、リモート型、リモート分散型（例えば、ローカルエリアネットワーク（ＬＡＮ：Local Area Network）及び／又はワイドエリアネットワーク（ＷＡＮ：Wide-Area Network）を介して結合された複数のプロセッサ）、或いは、これらの任意の組合せである、複数の中央処理装置（ＣＰＵ：Central Processing Unit）又はプロセッサコアを使用したコンピュータシステムの構成を含むマルチノードパラレル演算環境を含むことができる。
【０１０８】
事前処理モジュール１０６は、データ供給源１０２からデータを読み取り、データの任意の適切な処理を実行し、処理されたデータを記憶する。データ供給源１０２を提供しているストレージ装置は、実行環境１０４にローカル接続されたものであってもよく、例えば、データは、実行環境１０４をホスティングしているコンピュータに接続されたストレージ媒体（例えば、ハードドライブ１０８）上において記憶されていてもよい。また、ストレージ装置は、実行環境１０４にリモート接続されたものであってもよく、例えば、リモート接続（例えば、クラウド演算インフラストラクチャによって提供されるもの）上において実行環境１０４をホスティングしているコンピュータとの通信状態にあるリモートシステム（例えば、メインフレーム１１０）上においてホスティングされていてもよい。
【０１０９】
実行モジュール１１２は、規定されているプロセスを実行するべく、事前処理モジュール１０６によって生成された処理済みのデータを使用する。処理モジュール１０６は、データ１１４を出力してもよく、データ１１４は、データ供給源１０２内において、或いは、実行環境１０４からアクセス可能なデータストレージシステム１１６内において、再度記憶されてもよく、或いは、その他の方法で使用されてもよい。また、データストレージシステム１１６は、開発者１２０がデータ処理アプリケーションを開発しうる開発環境１１８からも、アクセス可能である。開発環境１１８は、いくつかの実装形態においては、頂点の間において方向付けられたリンク（ワーク要素のフローを表している、即ち、データを表している）によって接続された頂点（データ処理コンポーネント又はデータセットを表している）を含む演算グラフ又はデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、このような環境については、「Managing Parameters for Graph-Based Applications」という名称の米国特許出願公開第２００７／００１１６６８号に更に詳細に記述されている。このようなグラフに基づいた演算を実行するシステムは、「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の米国特許第５，９６６，０７２号に記述されている。このシステムに従って生成されるデータフローグラフは、情報をグラフコンポーネントによって表された個々のプロセスとの間においてやり取りし、プロセスの間において情報を移動させ、プロセスの稼働順序を定義する方法を提供している。このシステムは、任意の利用可能な方法の中からプロセス間通信方法を選択するアルゴリズムを含む（例えば、グラフのリンクによる通信経路は、データをプロセス間において伝達するべく、ＴＣＰ／ＩＰ又はＵＮＩＸドメインソケットを使用することも可能であり、或いは、共有メモリを使用することもできる）。
【０１１０】
開発環境１１８を使用して開発されたデータフローグラフは、例えば、データストレージ１１６内において記憶することが可能であり、実行環境１０４によってアクセスすることもできる。実行環境１０４は、データフローグラフのコンポーネントと関連したプロセスを実行してデータ供給源１０２から受信されたデータを処理するべく、データフローグラフを実行してもよい。
【０１１１】
上述の接続を生成する方式は、適切なソフトウェアを実行する演算システムを使用して実装することができる。例えば、データ処理システム１００は、命令を実行する１つ又は複数のデータプロセッサを有する演算システムを使用して実装することができる。例えば、ソフトウェアは、少なくとも１つのプロセッサ、（揮発性及び／又は不揮発性メモリ及び／又はストレージ要素を含む）少なくとも１つのデータストレージシステム、（少なくとも１つの入力装置又はポートを使用して入力を受信し、少なくとも１つの出力装置又はポートを使用して出力を提供するための）少なくとも１つのユーザインターフェイスをそれぞれが含む（分散型、クライアント／サーバー、又はグリッドなどの様々なアーキテクチャを有しうる）１つ又は複数のプログラムされた又はプログラム可能な演算システム上において稼働する１つ又は複数のコンピュータプログラム内の手順を含んでいてもよい。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関係したサービスを提供する相対的に大きなプログラムの１つ又は複数のモジュールを含んでいてもよい。プログラムのモジュール（例えば、データフローグラフの要素）は、データリポジトリ内において記憶されているデータモデルに準拠したデータ構造又はその他の組織化されたデータとして実装することができる。
【０１１２】
ソフトウェアは、ＣＤ−ＲＯＭ又はその他のコンピュータ可読媒体（例えば、汎用又は特殊目的演算システム又は装置によって読み取り可能である）などの有体の一時的でない媒体上において提供されてもよく、或いは、実行される場合に、ネットワークの通信媒体上において、（例えば、伝播信号内においてエンコードされた状態において）演算システムの有体の一時的でない媒体に供給されてもよい。処理のうちのいくつか又はすべては、特殊目的コンピュータ上において、或いは、コプロセッサ、又はフィールドプログラム可能なゲートアレイ（ＦＰＧＡ：Field-Programmable Gate Array）、或いは、専用の用途固有の集積回路（ＡＳＩＣ：Application-Specific Integrated Circuit）などの特殊目的ハードウェアを使用して、実行されてもよい。処理は、ソフトウェアによって規定された演算の異なる部分が、異なる演算要素によって実行される分散方式によって実装されてもよい。それぞれのこのようなプログラムは、好ましくは、ストレージ装置媒体が、本明細書において記述されている処理を実行するべく、コンピュータによって読み取られた際に、コンピュータを構成すると共に動作させるべく、汎用又は特殊目的プログラム可能コンピュータによってアクセス可能なストレージ装置のコンピュータ可読ストレージ媒体（例えば、半導体メモリ又は媒体、或いは、磁気又は光学媒体）上において記憶されるか又はこれにダウンロードされる。また、本発明のシステムは、コンピュータプログラムによって構成された有体の一時的でない媒体として実装されるものと見なされてもよく、この場合に、このように構成された媒体は、コンピュータが、本明細書において記述されている処理ステップのうちの１つ又は複数を実行するべく、特定の且つ予め定義された方式で動作するようにする。
【０１１３】
以上、いくつかの実施形態について説明した。但し、以上の説明は、添付の請求項の範囲によって定義されている本発明の範囲の限定ではなく、これを例示するべく意図されていることを理解されたい。従って、添付の請求項の範囲には、その他の実施形態も含まれる。例えば、本発明の範囲を逸脱することなしに、様々な変更が実施されてもよい。これに加えて、上述のステップのいくつかは、順序から独立したものであってもよく、従って、記述されているものとは異なる順序において実行することができる。
【図１】
0006755864.tif 000002
【図２Ａ】
0006755864.tif 000003
【図２Ｂ】
0006755864.tif 000004
【図３】
0006755864.tif 000005
【図４】
0006755864.tif 000006
【図５】
0006755864.tif 000007
【図６】
0006755864.tif 000008
【図７】
0006755864.tif 000009
【図８】
0006755864.tif 000010
【図９】
0006755864.tif 000011