JP6755864B2 - データベースセキュリティ - Google Patents

データベースセキュリティ Download PDF

Info

Publication number
JP6755864B2
JP6755864B2 JP2017522954A JP2017522954A JP6755864B2 JP 6755864 B2 JP6755864 B2 JP 6755864B2 JP 2017522954 A JP2017522954 A JP 2017522954A JP 2017522954 A JP2017522954 A JP 2017522954A JP 6755864 B2 JP6755864 B2 JP 6755864B2
Authority
JP
Japan
Prior art keywords
record
security label
component
security
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017522954A
Other languages
English (en)
Other versions
JP2018503154A5 (ja
JP2018503154A (ja
Inventor
ジェイ. ウィンターズ,クリストファー
ジェイ. ウィンターズ,クリストファー
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2018503154A publication Critical patent/JP2018503154A/ja
Publication of JP2018503154A5 publication Critical patent/JP2018503154A5/ja
Application granted granted Critical
Publication of JP6755864B2 publication Critical patent/JP6755864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Description

優先権の主張
本出願は、2014年11月5日付けで出願された米国仮特許出願第62/075,593号に対する優先権を主張するものであり、この内容は、引用により、そのすべてが本明細書に包含される。
背景
本明細書は、データベースセキュリティに関する。データベースは、複数のテーブルを含むことが可能であり、これらのテーブルのそれぞれは、複数の行を含むことができる。データベース内において記憶されているデータレコードに対するアクセスは、テーブルのそれぞれに対するアクセスを制御することにより、或いは、テーブル内のそれぞれの行に対するアクセスを制御することにより、制御することができる。それぞれの行などのそれぞれのオブジェクトと関連したセキュリティラベルの使用を通じて、行レベルのセキュリティを提供することができる。
概要
一態様において、方法は、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、これには、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれる。方法は、判定されたセキュリティラベルをレコード内において記憶するステップを含む。
実施形態は、以下の特徴のうちの1つ又は複数を含むことができる。
方法は、個々の外部キー関係に従ってそれぞれが第1レコードに関係した複数の第2レコードを識別するステップと、第2レコードのそれぞれごとにセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、を含む。
第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップは、第2レコードのセキュリティラベルの識別されたコンポーネントの複数の別個の値を連結するステップを含む。
セキュリティラベルのコンポーネントの値を割り当てるステップは、第2レコードのセキュリティラベルの識別されたコンポーネントの値の中から最高優先順位値を識別するステップと、最高優先順位値を第1レコードのセキュリティラベルのコンポーネントの値として割り当てるステップと、を含む。
方法は、レコードの属性に基づいてデータベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、レコードの属性は、レコード内において記憶されている値である。
方法は、第3テーブルと関連した値に基づいてデータベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む。
第2レコードは、第1テーブル以外のテーブル内に存在している。
コンポーネントは、レコードのセキュリティラベルの第1コンポーネントであり、方法は、セキュリティラベルの第2コンポーネントを判定するステップを含む。
方法は、トリガイベントに応答して特定の第1レコードのセキュリティラベルのコンポーネントを更新するステップを含む。
トリガイベントは、外部キー関係の変化を含む。
トリガイベントは、特定の第1レコードに関係した第2レコードのセキュリティラベルのコンポーネントの変化を含む。
方法は、トリガイベントを検出するステップを含む。
方法は、トリガイベントの通知を受信するステップを含む。
方法は、ユーザから特定の第1レコードに対するアクセス要求を受信するステップを含み、ユーザは、ユーザセキュリティコードと関連付けられている。
方法は、ユーザと関連したユーザセキュリティコードのコンポーネントと特定の第1レコードのセキュリティラベルのコンポーネントの間の比較に基づいて、ユーザによる特定の第1レコードに対するアクセスを制限するステップを含む。
方法は、アクセス要求を受信する前に、レコードのセキュリティラベルを判定するステップを含む。
方法は、第1レコードが、データベース内における記憶のために受信された際に、特定の第1レコードのセキュリティラベルのコンポーネントを自動的に判定するステップを含む。
一態様において、一時的でないコンピュータ可読媒体は、命令を記憶しており、命令は、演算システムが、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、これには、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ようにする。
一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ように構成されている。
一態様において、演算システムは、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定する手段であって、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップ、第2レコードのセキュリティラベルのコンポーネントを識別するステップ、及び第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップ、を含む手段と、判定されたセキュリティラベルをレコード内において記憶する手段と、を含む。
一態様において、方法は、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定するステップと、第1レコードの第1セキュリティラベルを自動的に更新するステップと、更新されたセキュリティラベルをレコード内において記憶するステップと、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するステップと、を含み、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。
実施形態は、以下の特徴のうちの1つ又は複数を含むことができる。
方法は、第1レコードに対する更新が第1レコードの第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む。
方法は、第1レコードに対する更新の影響を受ける第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、影響を受けた第1セキュリティラベルの1つ又は複数のコンポーネントを自動的に更新するステップと、を含む。
第2テーブルは、第1テーブルの子である。
方法は、第1レコードに対する更新が外部キー関係に影響を及ぼすかどうかを判定するステップを含む。
方法は、第1レコードに対する更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、影響を受けた外部キー関係に従って第1レコードに関係したそれぞれの第2レコードごとに第2セキュリティラベルを自動的に更新するステップと、を含む。
一態様において、一時的でないコンピュータ可読記憶媒体は、演算システムに、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたことを判定させ、第1レコードの第1セキュリティラベルを自動的に更新させ、更新されたセキュリティラベルをレコード内において記憶させ、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するようにする命令を記憶させており、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。
一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定し、第1レコードの第1セキュリティラベルを自動的に更新し、更新されたセキュリティラベルをレコード内において記憶し、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するように構成されており、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。
一態様において、演算システムは、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定する手段と、第1レコードの第1セキュリティラベルを自動的に更新する手段と、更新されたセキュリティラベルをレコード内において記憶する手段と、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新する手段と、を具備し、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。
その他の特徴及び利点については、以下の説明から、並びに、添付の請求項から、明らかとなる。
図1はブロックダイアグラムである。 図2Aはデータベースシステムの一例である。 図2Bはユーザアクセス制限の一例である。 図3はブロックダイアグラムである。 図4はブロックダイアグラムである。 図5はフローチャートである。 図6はフローチャートである。 図7はフローチャートである。 図8はフローチャートである。 図9はブロックダイアグラムである。
詳細な説明
本発明者らは、本明細書において、データベースのテーブル内の行に対して行レベルのセキュリティを提供する方式について記述している。テーブル内のそれぞれの行は、データレコードを表している。セキュリティラベルが、それぞれの行内において記憶されており、セキュリティラベルは、例えば、行によって表されたデータレコードに対するアクセスの許可を有するユーザ又は行によって表されたデータレコードに対するアクセスが制限されたユーザを通知するなどのように、行に対するアクセスを制御するべく使用することができる。テーブル内の行のセキュリティラベルは、行の外部の情報、行の内部の情報、及びテーブルに固有の情報のうちの1つ又は複数に基づいて判定することができる。しばしば継承とも呼称されるセキュリティラベルの伝播は、1つ又は複数の関係した行のセキュリティラベルに少なくとも部分的に基づいて行のセキュリティラベルを判定するメカニズムである。例えば、データベースのテーブル内の行は、外部キー関係を介して行に関係付けられた同一テーブル内の又は別のテーブル内の別の行から、そのセキュリティラベルのコンポーネントを継承することができる。セキュリティラベルの継承は、例えば、ユーザによる所与のデータレコードに対するアクセスが制限されている場合に、所与のデータレコードに依存したすべてのその他のデータレコードに対するユーザによるアクセスの制限の保証を支援することができる。
行のセキュリティラベルは、複数のコンポーネントを有することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、同一テーブルの関係した行内の情報又は別のテーブルの関係した行内の情報などの行の外部の情報に基づいて判定することができる。行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、行の属性などの行の内部の情報に基づいて判定することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、テーブルと関連した一定の値などのテーブルに固有の情報に基づいて判定することができる。
データレコード(本発明者らは、しばしば、行とデータレコードという用語を相互交換可能な方式で使用する)のセキュリティラベルは、データレコードがデータベースに入力される際に判定することができる。データレコードのセキュリティラベルは、データレコードの変化、関係したデータレコードの変化、又はテーブルに固有の情報の変化などのトリガイベントに応答して更新することができる。行に対する任意のアクセス要求が受信される前に、セキュリティラベルが、既に、演算されており、利用可能な状態となるように、セキュリティラベルは、データレコード内において記憶されている。本発明者らは、しばしば、行に対する任意のアクセス要求を受信する前の段階の、この受信とは独立した、セキュリティラベルの演算をセキュリティラベルの事前演算と呼称する。セキュリティラベルの事前演算は、利点を有することができる。例えば、行のセキュリティラベルが事前演算されている場合には、ユーザによる行に対するアクセスが制限されているかどうかの判定は、アクセス要求に応答してセキュリティラベルをリアルタイムで算出するという演算集約的なプロセスの実行を必要とすることなしに、迅速に実施することができる。
本明細書において記述されている行レベルのセキュリティ用の方式によれば、複数の相互に関係付けられたテーブルを有するデータベース内においてデータを保護することができる。このようなデータベース内においては、1つのテーブル内の行のセキュリティラベルを、別の関係したテーブル内の行のセキュリティラベルに少なくとも部分的に基づいて判定することができる。例えば、ユーザによるプロジェクトサマリを表すデータレコードの参照が制限されている場合には、プロジェクトサマリ及びプロジェクトファイナンスを表すデータレコードの間の関係に起因して、そのユーザによるプロジェクトファイナンスを表すデータレコードの参照も、同様に、自動的に防止することができる。保護を要する多数の行がデータベース内に存在しているが、セキュリティの大部分をその他の関係した行から推定できる場合には、これらの関係に基づいたセキュリティラベルの判定は、セキュリティの改善及び維持費用の低減を支援することができる。
セキュリティラベルの事前演算及びデータレコード内におけるセキュリティラベルの記憶により、データレコードのセキュリティを容易に理解可能なものにすることが可能であり、効率的にアクセス可能なものとすることができる。このセキュリティ情報に対する容易なアクセスは、データベースシステムの監査の促進を支援することが可能であり、トラブルシューティングにおいてセキュリティ及び情報技術専門家を支援することが可能であり、データベース内の個々のデータレコードと関連した許可又は制限の理解を伴うその他の活動を促進することができる。例えば、データレコードのセキュリティラベルをデータレコード自体の内部において記憶することにより、監査人又はセキュリティ専門家は、複雑な計算の実行を必要とすることなしに、別個のセキュリティファイル又はテーブルの参照を必要とすることなしに、レコードを検査することにより、データレコードに対するアクセスが許容された又はこれが制限されたユーザを判定することができる。
図1を参照すれば、サーバー101上においてホスティングされたデータベース100は、1つ又は複数のテーブル50、52、54、56を含むことが可能であり、これらのテーブルのそれぞれは、1つ又は複数のデータレコードを含む。テーブルは、例えば、階層的な関係又は別のタイプの関係において、データベース100内のその他のテーブルの1つ又は複数と関係付けることができる。2つのテーブルの間の関係は、例えば、子テーブルが1つ又は複数の親テーブルに依存している親−子関係であってもよい。例えば、図1の例においては、部署テーブル52は、矢印62によって示されているように、部門テーブル54の子である。プロジェクトテーブル50は、例えば、矢印64及び66によって示されているように、部門テーブル54及び領域テーブル56の両方の子である。本発明者らは、しばしば、親テーブルを上流テーブルと呼称し、子テーブルを下流テーブルと呼称する。また、テーブルの間のその他のタイプの関係も可能である。
セキュリティモジュール520は、ユーザによるデータベース100内のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザ10により、本発明者らは、データベース100内のデータレコードに対するアクセスを試みる任意の人物又はエンティティを意味している。図1は、3人の特定のユーザ10a、10b、10cを示している。例えば、ユーザの役割(例えば、プロジェクトマネージャ、部署マネージャ、役員、又は別の役割)、ユーザの場所(例えば、北東部部門、西部部門、又は別の場所)、ユーザのセキュリティクリアランス(例えば、トップシークレット、シークレット、パブリック、又は別のクリアランス)、ユーザの部署(例えば、人事、技術、マーケティング、又は別の部署)、或いは、別の特性に基づいて、ユーザセキュリティコード18をそれぞれのユーザ10と関連付けることができる。ユーザ10が、データベース100内の特定のデータレコードに対するアクセスを要求した際に、セキュリティモジュール520は、ユーザのユーザセキュリティコード18とその特定のデータレコードのセキュリティラベルの間の比較に基づいて、ユーザ10による特定のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザのアクセス要求を受信する前に、特定のデータレコードのセキュリティラベルが既に算出されていることから、セキュリティモジュール520は、行のセキュリティラベルの判定という潜在的に演算集約的なプロセスの実行を必要とすることなしに、ユーザによるデータレコードに対するアクセスを制限する必要があるかどうかを迅速に判定することができる。
データベース100に対するアクセスは、行ごとに制限することができる。例えば、テーブル内のそれぞれの行は、同一テーブル内のそれぞれのその他の行のセキュリティラベルとは独立した、データベース100内のその他のテーブル内のそれぞれの行のセキュリティラベルとは独立した、その独自の個別化されたセキュリティラベルを有することができる。行のセキュリティラベルは、1つ又は複数のコンポーネントを有する集約されたセキュリティラベルであってもよく、これらのコンポーネントのそれぞれは、行の内部の情報、行の外部の情報、テーブルに固有の情報、又はこれらのうちの任意の2つ以上のものの組合せに基づいて独立的に判定される。それぞれの行のセキュリティラベルは、行自体の内部のフィールド内において記憶することができる。データレコードのセキュリティラベルのそれぞれのコンポーネントは、データレコードに対するユーザアクセスの制限又はデータレコードに対するユーザアクセスの許可を表すことができる。セキュリティモジュール520は、特定のデータレコード内において記憶されているセキュリティラベルの1つ又は複数のコンポーネントが、特定のユーザセキュリティコード18を有するユーザによるその特定のデータレコードに対するアクセスを制限しているかどうかを判定することができる。
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、データレコードの1つ又は複数の属性などのデータレコードの内部の情報に基づいて判定されている。データレコードの属性は、データレコードのフィールド内において記憶されている数値、ストリング、又は別のタイプの値などの値である。属性は、役割(後述する)、ユーザ、ユーザのグループ、ビジネスラベル、機能に対する入力、或いは、その他の情報などの情報を表すことができる。一例においては、データレコードの属性は、データレコードによって表されている企業部門の識別子であってもよく、データレコードのセキュリティラベルのコンポーネントは、企業部門の識別子に基づいて判定することができる。一例においては、データレコードの属性は、クリアランス値であってもよく、クリアランス値は、データレコードが、トップシークレット(TS)であるのか、シークレット(S)であるのか、或いは、パブリック(P)であるのか、を通知しており、データレコードのセキュリティラベルのコンポーネントは、クリアランス値に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの単一のコンポーネントは、データレコードによって表されている企業部門の識別子とデータレコードのクリアランス値の両方に基づいたものなどのように、複数の属性に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの複数のコンポーネントは、それぞれ、対応した属性に基づいて判定することができる。
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、同一のテーブル又は異なるテーブル内の関係したデータレコードのセキュリティラベルのコンポーネントなどのように、データレコードの外部の情報に基づいて判定されている。1つのテーブル内のデータレコードは、外部キー関係を通じて、同一のテーブル又は異なるテーブル内の行と関係付けることができる。外部キーとは、第2データレコードを一意に識別し、その結果、これにより、第1データレコードと第2データレコードの間のリンクを確立する第1データレコード内において記憶されている値である。第1及び第2データレコードは、同一のテーブル又は異なるテーブル内に存在していてもよい。本発明者らは、しばしば、例えば、外部キー関係又はその他のタイプの関係を通じて関係付けられている行を関係した行と呼称し、異なるテーブル内の関係した行内の情報に基づいたセキュリティラベルのコンポーネントの判定をセキュリティラベルのコンポーネントの継承と呼称している。一例において、子テーブル内のそれぞれのデータレコードは、プロジェクトを表しており、外部キー関係を介して、企業部門を表す親テーブル内のデータレコードに関係付けられている。プロジェクトテーブル内のそれぞれのデータレコードは、企業部門テーブル内の関係付けられているデータレコードのセキュリティラベルの対応したコンポーネントから、そのセキュリティラベルのコンポーネントを継承している。セキュリティラベルの継承により、高度なアクセス制限を相対的に低いレベルのテーブルに伝播させることができる。例えば、セキュリティラベルの継承によれば、ユーザによる企業部門テーブル内の技術部門を表すデータレコードに対するアクセスが制限されている場合には、技術部門に関係したプロジェクトテーブル内のプロジェクトデータレコードを表す任意のデータレコードに対するユーザによるアクセスも、制限されることになる。
いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、所与のテーブルに属するすべてのデータレコードについて一定である。例えば、所与のテーブル内のすべてのデータレコードが、セキュリティラベルのコンポーネントとして、一定の値を有することが可能であり、この一定の値は、そのテーブルの属性である。一例においては、従業員の給料を表すデータレコードを含むテーブル内において、すべてのデータレコードが、セキュリティラベルの「コンフィデンシャル」コンポーネントを有することができる。
行のセキュリティラベルのコンポーネントは、複数のその他の行から継承された値に基づいたものであってもよい。いくつかの例においては、行のセキュリティラベルのコンポーネントを形成するべく、その他の行から取得された複数の値が連結されている。複数の値は、アルファベット順により、番号順により、行とそれぞれのその他の行の間の関係に基づいた順序により、或いは、別の順序により、連結することができる。いくつかの例においては、複数の値は、順序付けされた又は階層的なリストの一部分であってもよく、複数の値の中の単一の最高優先順位値のみが、行のセキュリティラベルのコンポーネントとして使用されている。例えば、1つの関係した行が、高優先順位値(例えば、「TS」)を有するコンポーネントを有し、別の関係した行が、相対的に小さな優先順位値(例えば、「S」)を有する場合には、これらの2つの行に基づいた継承されたコンポーネントは、高優先順位値(「TS」)を引き継ぐことになる。
行のセキュリティラベルのコンポーネントは、複数の要素に基づいたものであってもよい。一例において、行のセキュリティラベルのコンポーネントは、行の属性及び関係した行から継承された値の両方に基づいたものであってもよい。セキュリティラベルのコンポーネントは、属性と継承された値の連結であってもよく、属性と継承された値の中の相対的に高優先順位の値を引き継ぐことも可能であり、或いは、別の方法で組み合わせることもできる。
行のセキュリティラベルは、複数のコンポーネントを有することが可能であり(しばしば、集約されたセキュリティラベルと呼称される)、この場合に、それぞれのコンポーネントは、互いのコンポーネントとは独立的に判定されている。行のセキュリティラベルは、行の属性、継承によって判定された1つ又は複数のコンポーネント、テーブルに固有の情報に基づいて判定された1つ又は複数のコンポーネント、或いは、これらのものの任意の2つ以上の組合せに基づいて判定された1つ又は複数のコンポーネントを含むことができる。
いくつかの外部キー関係は、ヌル可能であってもよく、これは、エラーを生成することなしに外部キーがデータレコードについて欠落しうることを意味している。セキュリティラベルのコンポーネントが、ヌル可能な外部キーを介して継承によって判定される際には、そのコンポーネントの既定の選択肢を規定することができる。既定の選択肢は、既定値をセキュリティラベルのコンポーネントに割り当てるというものであってもよく、外部キー関係を無視することにより、セキュリティラベルのコンポーネントをブランク状態において残すというものであってもよく、或いは、その他の要因に基づいてコンポーネントの値を判定するというものであってよい。いくつかの外部キー関係は、ヌル可能でなくてもよく、これは、外部キーの値が存在しない場合にエラーが結果的に生成されることを意味している。セキュリティラベルのコンポーネントが、ヌル可能ではない外部キーを介して継承によって判定される際には、既定値は、規定されない。
1つ又は複数のテーブルに固有の規則は、セキュリティラベルのそれぞれのコンポーネントがテーブル内のそれぞれのレコードごとに判定される方式を規定している。テーブルに固有の規則は、テーブル内のそれぞれのデータレコードのセキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定の際に使用される属性、外部キー、及び定数のうちの1つ又は複数を規定することができる。テーブルに固有の規則は、複数の値を連結するのか、階層的な又は順序付けられたリストとして取り扱うのか、或いは、その他の方法で処理するのかを規定することができる。テーブルに固有の規則は、外部キー関係がヌルである場合の既定値を規定することができる。また、その他の規則を規定することもできる。
いくつかの例においては、セキュリティラベルのコンポーネントを単純化するべく、ルックアップテーブルなどの変換テーブルを使用することができる。変換テーブルは、値の組又は値の組合せのそれぞれを値の別の組の対応した値にマッピングしている。変換テーブルは、例えば、セキュリティラベルの単一のコンポーネントが、多数の連結された値を含みうる場合などに、有用でありうる。このようなコンポーネントは、複雑且つ不恰好なものになる可能性がある。変換テーブルは、連結された値のそれぞれの可能な組合せを単一の値などの相対的に単純な表現にマッピングすることが可能であり、この単一の値は、セキュリティラベル内において代替値として使用することができる。
いくつかの例においては、データレコードのセキュリティラベルは、データレコードがデータベース100に入力される際に判定されている。いくつかの例においては、データレコードのセキュリティラベルの1つ又は複数のコンポーネントは、データレコードのセキュリティラベルのコンポーネントの変化を生成しうる変更がデータレコードに対して又は関係したデータレコードに対して実施された際に、更新されている。例えば、データレコードの属性が変更された際に、属性に基づいて判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーが変更された際には、その外部キーを介して継承によって判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーを介して下流のデータレコードに関係付けられた上流のデータレコードに対して変更が実施された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。下流のデータレコードに外部キーを介して関係付けられた上流のデータレコードが削除された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。また、その他の状況も、データレコードのセキュリティラベルの更新をトリガすることができる。
行のセキュリティラベルを使用することにより、行に対するアクセスを制限することができる。データベースシステムのそれぞれのユーザは、ユーザセキュリティコードを有しており、ユーザセキュリティコードは、データベース内のデータレコードのセキュリティラベルと同一のコンポーネントを含むことができる。ユーザが行に対するアクセスを試みた際に、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、行のセキュリティラベルの対応したコンポーネントと比較される。コンポーネントのいずれかがユーザによる行に対するアクセスを禁止している場合には、ユーザによる行に対するアクセスが制限される。
いくつかの例において、行のセキュリティラベルのコンポーネントは、1つ又は複数の値を連結することによって形成されている。そのセキュリティラベルが、ユーザのユーザセキュリティコードには含まれていない1つ又は複数の値を含んでいる行に対するユーザによるアクセスは、制限される。例えば、特定の行は、連結された値「A,B,C」を含むコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「A,B」を含んでいるユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、対応したコンポーネントの値「A,B,C,D」を含んでいるユーザによるこの行に対するアクセスは、許容されてもよい。
いくつかの例においては、行のセキュリティラベルのコンポーネントを形成しうる値は、順序付けされた又は階層的なリストの一部分である。ユーザのユーザセキュリティコードの対応したコンポーネントの所与の値を有するユーザによるユーザの値よりも大きな優先順位値を有するすべての行に対するアクセスは、制限される。例えば、セキュリティラベルのコンポーネント値は、順序付けされたリスト「TS」、「S」、「P」から選択されてもよく、この場合に、「TS」は、最高優先順位値であり、「P」は、最低優先順位値である。特定の行は、値「S」を有するコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「P」を有しているユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、値「TS」又は「S」を有しているユーザによるこの行に対するアクセスは、許容されてもよい。
いくつかの例においては、ユーザ10のユーザセキュリティコード18のコンポーネントのうちの1つ又は複数は、ユーザの役割に基づいたものであってもよい。役割により、本発明者らは、職位、責任の組、その他の者との関係における地位、又は別のタイプの地位などのユーザによって保持されている地位を意味している。例示用の役割は、役員の役割、管理的な役割、専門スタッフの役割、サポートの役割、又はその他の役割を含むことができる。例えば、図1の例におけるように、部門役員10a、生産労働者10b、及び部署マネージャ10cは、それぞれ、ユーザセキュリティコード18の1つ又は複数のコンポーネントのそれぞれごとに会社内のそれぞれのユーザの役割に基づいた異なる値を有する。
いくつかの例においては、第1役割は、1つ又は複数のその他の役割を意味することが可能であり、これは、ユーザに第1役割が割り当てられる場合に、そのユーザには、1つ又は複数のその他の役割も、自動的に割り当てられることを意味している。また、その結果、ユーザは、それらの1つ又は複数のその他の役割について、任意のユーザセキュリティコードと関連付けられることになる。例えば、部門役員の役割は、部署マネージャの役割を意味することができる。この結果、部門役員の役割を有する任意のユーザ(例えば、ユーザ10a)には、部署マネージャの役割を自動的に割り当てることが可能であり、従って、部署マネージャの役割用の任意のユーザセキュリティコードと関連付けることができる。
図2Aを参照すれば、例示用のデータベースシステム950内のエントリは、2つの別個のコンポーネントを有するセキュリティラベルを有する。データベースシステム950は、Very Special Deliveries, Inc.によって管理されているそれぞれの配送の配送元、配送先、及び輸送の手段を表すデータを記憶している。データベースシステム950は、外部キーによって階層的な関係において関係付けられた複数のテーブルを含む。配送テーブル910内のデータレコードは、それぞれの配送の配送元、配送先、輸送の手段、及びスポンサーを表すデータを記憶している。配送テーブル910内のそれぞれのレコード内の配送元及び配送先フィールドは、それぞれ、外部キー関係によってサイトテーブル920内のレコードに関係付けられており、サイトテーブル内のレコードは、それぞれ、外部キー関係によって領域テーブル930内のレコードに関係付けられている。配送テーブル910内のそれぞれのレコード内の輸送フィールドは、外部キー関係によって輸送テーブル940に関係付けられている。配送テーブル910内のそれぞれのレコード内のスポンサーフィールドは、外部キー関係によってスポンサーテーブル960に関係付けられている。この例においては、セキュリティに関与するフィールドのみが示されている。データレコードは、セキュリティラベルの判定に関与しないと共に図2Aには示されていない更なる属性、外部キー、又はこれらの両方を有することができる。
データベースシステム950内における許可は、(分類:場所という形態において表現される)分類コンポーネントと場所コンポーネントという2つの別個の独立的なコンポーネントを有する集約されたセキュリティラベルによって制約されている。この例においては、分類コンポーネントは、低優先順位値(U)及び高優先順位値(S)を有する順序付けされたリストから選択された単一の値を引き継いでいる。場所コンポーネントは、1つ又は複数の値(NA又はEU)を引き継ぐことが可能であり、場所コンポーネントが複数の値を含んでいる場合には、値は、アルファベット順のリスト内において連結される。
輸送テーブル940内においては、それぞれのレコードのセキュリティラベルの分類コンポーネントが、レコードの「分類」属性に基づいて判定されている。「分類」属性が「U」である場合には、セキュリティラベルの分類コンポーネントは、値「U」を引き継ぎ、「分類」属性が「S」である場合には、セキュリティラベルの分類コンポーネントは、値「S」を引き継ぐことになる。輸送テーブル940内のレコードは、セキュリティラベルの場所コンポーネントの値を有してはいない。輸送テーブル940のセキュリティラベルの判定は、例えば、「分類」フィールド内の値が、輸送テーブル940内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
領域テーブル930内においては、それぞれのレコードのセキュリティラベルの場所コンポーネントが、レコードの「領域_コード」属性に基づいて判定されている。「領域_コード」属性が「NA」である場合には、セキュリティラベルの場所コンポーネントは、値「NA」を引き継ぎ、「領域_コード」属性が「EU」である場合には、セキュリティラベルの場所コンポーネントは、値「EU」を引き継ぐことになる。領域テーブル930内のレコードは、セキュリティラベルの分類コンポーネントの値を有してはいない。領域テーブル930のセキュリティラベルの判定は、例えば、「領域_コード」フィールド内の値が、領域テーブル930内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
スポンサーテーブル960内のすべてのレコードのセキュリティラベルの分類コンポーネントは、値「S」を引き継いでいる。値「S」は、レコードの属性又はレコードの外部キー関係とは無関係に、スポンサーテーブル960内のすべてのレコードに適用されるテーブルに固有の定数である。スポンサーテーブル960のセキュリティラベルの判定は、例えば、値「S」が、スポンサーテーブル960内のデータレコードのセキュリティラベルの分類コンポーネントに常に含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
サイトテーブル920内のレコードは、セキュリティラベルの分類コンポーネント及び場所コンポーネントの両方を有する。それぞれのレコードのセキュリティラベルの分類コンポーネントは、レコードの「分類」属性に基づいて判定されている。サイトテーブル920内のそれぞれのデータレコードの分類コンポーネントの判定は、例えば、「分類」フィールド内の値が、サイトテーブル920内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
サイトテーブル920内のそれぞれのレコードのセキュリティラベルの場所コンポーネントは、継承によって判定されている。サイトテーブル920内のそれぞれのレコードは、「領域」フィールド内の値を通じて、外部キー関係を介して、領域テーブル930内のレコードと関係付けられている。それぞれのサイトレコードは、関係した領域レコードのセキュリティラベルの場所コンポーネントから、そのセキュリティラベルの場所コンポーネントを継承している。例えば、New York、Chicago、及びWhite Sandsというサイトレコードは、北米領域レコードから、「NA」という場所コンポーネントを継承しており、Londonサイトレコードは、欧州領域レコードから「EU」という場所コンポーネントを継承している。サイトテーブル920内のそれぞれのデータレコードの場所コンポーネントの判定は、例えば、領域テーブル930に対する外部キーが尊重される必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
領域テーブル930に対する外部キー関係は、ヌル可能であり、これは、「領域」フィールドが、エラーを生成することなしに、ブランクでありうることを意味している。この例においては、外部キー関係が、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「領域」フィールド内に値が存在していない場合)、セキュリティラベルは、既定で、分類コンポーネント内においては、「S」となり、場所コンポーネント内においては、値なしとなるように、判定される。「S」は、分類コンポーネントの高優先順位値であることから、この既定値は、分類コンポーネントが、データレコードの分類属性の値とは無関係に、値「S」を引き継ぐことになることを保証している。ヌル可能な外部キーの既定の動作は、例えば、領域テーブル930に対する外部キー関係がヌルである場合にセキュリティラベルが「S:−」となる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。
配送テーブル910内のデータレコードのセキュリティラベルの分類コンポーネント及び場所コンポーネントは、いずれも、継承により、判定されている。配送テーブル910内のそれぞれのレコードは、外部キー関係を介して、その他のテーブル内の1つ又は複数のその他のレコードに関係付けられており、これには、サイトテーブル920(外部キーとしての「配送元」及び「配送先」フィールドを介したもの)、輸送テーブル940(外部キーとしての「輸送」フィールドを介したもの)、及びスポンサーテーブル960(外部キーとしての「スポンサー」フィールドを介したもの)が含まれる。
分類コンポーネントは、「U」が低優先順位値であると共に「S」が高優先順位値である順序付けされたリストに基づいて、単一の値を引き継いでいる。所与のデータレコードの分類コンポーネントには、関係したデータレコードのそれぞれ内の分類コンポーネントの最高優先順位値である値が割り当てられる。従って、所与のデータレコードにおいて、関係したデータレコードのいずれかが、「S」の値を有する分類コンポーネントを有する場合には、所与のデータレコードには、分類コンポーネントについて「S」の値が割り当てられる。
場所コンポーネントは、関係したデータレコードの場所コンポーネントの値のすべてをアルファベット順に連結された状態において引き継いでいる。従って、所与のデータレコードにおいて、関係したデータレコードの1つが、「NA」の値を有する場所コンポーネントを有し、関係したデータレコードの別のものが、「EU」の値を有する場所コンポーネントを有している場合には、所与のデータレコードには、場所コンポーネントについて「EU,NA」の値が割り当てられる。
この例においては、輸送テーブル940及びスポンサーテーブル960に対する外部キーは、ヌル可能である。それぞれのヌル可能な外部キーごとに、既定値が提供される。輸送テーブル940に対する外部キーが、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「輸送」フィールドにおいて値が存在していない場合)、セキュリティラベルは、既定で、分類コンポーネントにおいては、「S」となり、場所コンポーネントにおいては、値なしとなるように、判定される。サイトテーブル920に対する外部キーは、ヌル可能ではない。サイトテーブル920に対する外部キーが、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「配送元」又は「配送先」フィールドにおいて値が存在していない場合)、エラーが発生する。
配送テーブル910内のそれぞれのデータレコードのセキュリティラベルの判定は、以下のように、尊重されるべきそれぞれの外部キー関係を識別すると共にヌルの取扱いを規定するセキュリティモジュール520によって実行されるコードにより、実装することができる。
配送元サイトに対するFKを尊重する(ヌル可能ではない)
配送先サイトに対するFKを尊重する(ヌル可能ではない)
輸送に対するFKを尊重する(ヌルである場合には、「S:−」を使用する)
スポンサーに対するFKを尊重する(ヌルである場合には、無視する)
具体的には、D1配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York(「U」)、Chicago(「U」)、及び飛行機(「U」)の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル960に対する外部キー関係は、無視される。従って、D1レコードの分類コンポーネントには、値「U」が割り当てられる。D1配送レコードの場所コンポーネントは、New York(「NA」)及びChicago(「NA」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。場所コンポーネントの値は、すべての関係したレコードについて同一であることから、連結は、不要であり、D1配送レコードの場所コンポーネントには、値「NA」が割り当てられる。D1配送レコードの集約されたセキュリティラベルは、「U:NA」である。
D2配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York(「U」)、White Sands(「S」)、及び飛行機(「U」)の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル960に対する外部キー関係は、無視される。「S」は、「U」よりも高優先順位の値であり、従って、D2レコードの分類コンポーネントには、値「S」が割り当てられる。D2配送レコードの場所コンポーネントは、New York(「NA」)及びWhite Sands(「NA」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D2配送レコードの集約されたラベルは、「S:NA」である。
D3配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York(「U」)、London(「U」)、及び飛行機(「U」)の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル960に対する外部キー関係は、無視される。従って、D3の分類コンポーネントには、値「U」が割り当てられる。D3配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。2つの場所コンポーネント値がアルファベット順において連結されることにより、「EU,NA」というD3配送レコードの場所コンポーネント値が形成される。従って、D3配送レコードの集約されたラベルは、「U:EU,NA」である。また、同様に、D4配送レコードの集約されたラベルは、「U:EU,NA」である。
D5配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York(「U」)、London(「U」)、及び潜水艦(「S」)の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル960に対する外部キー関係は、無視される。「S」は、「U」よりも高優先順位の値であり、従って、D5レコードの分類コンポーネントには、値「S」が割り当てられる。D5配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D3配送レコードの集約されたラベルは、「S:EU,NA」である。
D6配送レコードは、輸送フィールドについて、ヌル外部キー関係を有しており、従って、D6レコードの分類コンポーネントは、関係したレコードの分類コンポーネントの値とは無関係に、既定で「S」である。D6配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D6配送レコードの集約されたラベルは、「S:EU,NA」である。
D7配送レコードの分類コンポーネントは、New York(「U」)、London(「U」)、飛行機(「U」)、及びスポンサー(「S」)という分類コンポーネントを有する関係したレコード内の最高優先順位分類コンポーネント値を選択することにより、判定される。従って、D7の分類コンポーネントには、値「S」が割り当てられる。D7配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D7配送レコードの集約されたラベルは、「S:EU,NA」である。
図2Bを参照すれば、図2Aに示されているデータベースシステム950のそれぞれのユーザは、(分類:場所という形態において表現される)分類コンポーネントと場所コンポーネントという2つの別個の独立したコンポーネントを有するユーザセキュリティコードを有する。ユーザがデータベースシステム950内のデータレコードに対するアクセスを試みた際には、ユーザのユーザセキュリティコードの分類コンポーネントの値が、データレコードのセキュリティラベルの分類コンポーネントの値と比較され、ユーザのユーザセキュリティコードの場所コンポーネントの値が、データレコードのセキュリティラベルの場所コンポーネントの値と比較される。分類コンポーネント又は場所コンポーネントが、ユーザによる行に対するアクセスを禁止している場合には、ユーザによるその行に対するアクセスが制限される。
ユーザセキュリティコードの分類コンポーネント及び場所コンポーネントは、それぞれ、データレコードのセキュリティラベルの、それぞれ、分類コンポーネント及び場所コンポーネントにとって利用可能な同一の値を引き継いでいる。例えば、ユーザセキュリティコードの分類コンポーネントには、「S」という高優先順位値又は「U」という低優先順位値を割り当てることができる。ユーザセキュリティコードの場所コンポーネントには、「NA」、「EU」、又は「NA,EU」を割り当てることができる。
ユーザのユーザセキュリティコードの分類コンポーネントが値「U」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値とは無関係に、そのセキュリティラベルが、相対的に大きな分類コンポーネントの優先順位値(例えば、「S」)を有するすべてのデータレコードに対するユーザによるアクセスが制限される。ユーザのユーザセキュリティコードの分類コンポーネントが値「S」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値に応じて、そのセキュリティラベルの分類コンポーネントについて「U」又は「S」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。データレコードのセキュリティラベルの分類コンポーネントがブランクである場合には、分類コンポーネントによって課される制限は存在しておらず、データレコードに対するユーザアクセスは、場所コンポーネントによって制御される。
ユーザのユーザセキュリティコードの場所コンポーネントが、値「NA」を有する場合には、そのセキュリティラベルが「NA」以外の任意の値を有する場所コンポーネントを有するすべてのデータレコードに対するユーザによるアクセスが制限される。従って、例えば、そのセキュリティラベルが、値「EU」又は「EU,NA」を有する場所コンポーネントを有するデータレコードに対するそのユーザによるアクセスは、制限されることになろう。ユーザのユーザセキュリティコードの場所コンポーネントが、値「EU,NA」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの分類コンポーネントの値に応じて、そのセキュリティラベルの場所コンポーネントについて「NA」、「EU」、又は「EU,NA」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。セキュリティラベルの場所コンポーネントがブランクである場合には、場所コンポーネントによって課される制限は、存在しておらず、データレコードに対するユーザのアクセスは、分類コンポーネントによって制御される。
分類コンポーネント又は場所コンポーネントが、データレコードに対するユーザによるアクセスを制限している場合には、ユーザによるそのデータレコードに対するアクセスは、制限される。例えば、「U:NA」というユーザセキュリティコードを有するユーザ1による、そのセキュリティラベルが分類コンポーネントについて「S」を有するすべてのデータレコード並びにそのセキュリティラベルが場所コンポーネント内において「NA」以外の任意の値を含むすべてのデータレコードに対するアクセスは、制限される。「U:EU,NA」というユーザセキュリティコードを有するユーザ2による、そのセキュリティラベルが分類コンポーネントについて「S」を有するすべてのデータレコードに対するアクセスは、制限されるが、ユーザ2は、場所コンポーネントの値に関する制限を有してはいない。「S:NA」というユーザセキュリティコードを有するユーザ3は、分類コンポーネントの値に関する制限を有してはいないが、そのセキュリティラベルが、場所コンポーネント内において「NA」以外の任意の値を含むすべてのデータレコードに対するユーザ3によるアクセスは、制限される。「S:EU,NA」というユーザセキュリティコードを有するユーザ4は、データレコードに対するアクセスに対する制限を有してはいない。
この例においては、それぞれのエントリのセキュリティラベルは、1つの順序付けられたコンポーネント(分類コンポーネント)と、1つの順序付けられていないコンポーネント(場所コンポーネント)と、を有する。いくつかの例においては、セキュリティラベルは、複数の順序付けられた又は階層的なコンポーネントを有することも可能であり、複数の順序付けられていないコンポーネントを有することも可能であり、或いは、これらの両方を有することもできる。
この例においては、セキュリティラベルのコンポーネントの継承は、複数世代のテーブル階層構造を通じて伝播している。拡張により、配送テーブル910が、そのエントリが配送テーブル910のエントリに対する外部キー関係によって関係付けられている、DeliveryItemテーブルなどの、子テーブルを有する場合には、ラベルの継承は、上述のものに類似した方式により、DeliveryItemテーブル内に継続することになろう。
行のセキュリティラベルを行自体の内部において記憶することにより、その行のアクセス制限を迅速且つ容易に判定することが可能となる。例えば、ユーザが行に対するアクセスを試みた際に、(例えば、ユーザが行に対するアクセスを試みている最中の)リアルタイムにおける関係した行の識別又はセキュリティラベルの算出を必要とすることなしに、行のセキュリティラベルとユーザのユーザセキュリティコードの間における直接的な比較により、特定の行にアクセスするためのユーザの能力を判定することができる。従って、この方式は、データベース内におけるセキュリティが保護された行に対する相対的に迅速且つ信頼性の高いアクセスを提供することができる。また、行のセキュリティラベルを行自体の内部において記憶することにより、セキュリティ監査又はセキュリティ設定の維持も促進されることになり、その理由は、その他のテーブルの参照又は複雑な論理的判定を必要とすることなしに、セキュリティラベルが、可視状態にあり、容易に理解可能であるからである。
図3を参照すれば、システム500は、例えば、コンピュータ506により、データベース90に入力されるデータレコード504のセキュリティラベル502を判定することができる。データレコード504は、データベース90に追加される新しいデータレコードであってもよく、或いは、データベース90内に既に記憶されているデータレコードに対する更新であってもよい。
検出モジュール510は、データベース90内の1つ又は複数のデータレコードのセキュリティラベル502のコンポーネントに影響を及ぼしうる属性及び外部キー関係に対する変化を検出する。検出モジュール510は、到来データレコード504を検出し、データレコード504のセキュリティラベル502を計算するべく、データレコード504をセキュリティモジュール520に送付するかどうかを判定する。例えば、データレコード504が、新しいデータレコードである場合には、検出モジュール510は、データレコード504をセキュリティモジュール520に自動的に送付する。データレコード504が、予め記憶されているデータレコードに対する更新である場合には、検出モジュール510は、データレコードに対する更新が、データレコード504のセキュリティラベルの1つ又は複数のコンポーネントに影響を及ぼしうるかどうかを判定する。セキュリティラベルの1つ又は複数のコンポーネントに影響を及ぼしうる更新は、例えば、セキュリティラベルのコンポーネントの判定において使用されているデータレコードの属性に対する更新、セキュリティラベルのコンポーネントが判定されている外部キー関係に対する更新、或いは、別の更新を含む。セキュリティラベルのいずれのコンポーネントにも影響を及ぼさない更新は、例えば、セキュリティラベルの判定において使用されていない属性又は外部キー関係に対する更新を含む。検出モジュール510が、更新がデータレコード504のセキュリティラベルに対して影響を及ぼしうると判定した場合には、検出モジュール510は、更新されたデータレコード504をセキュリティモジュール520に送付する。検出モジュール510が、更新がデータレコードのセキュリティラベルに影響を及ぼさないと判定した場合には、判定モジュール510は、例えば、セキュリティモジュール520をバイパスすることにより、データレコード504をカスケードモジュール550(後述する)に直接的に送付することができる。
いくつかの例においては、検出モジュール510は、規則データベース530又は規則ファイルに記憶された、或いは、別の方法で記憶された、1つ又は複数の規則532に従って、到来データレコード504をセキュリティモジュール520に送付するかどうかを判定することができる。例示用の規則532は、新しいデータレコード504がセキュリティモジュール520を通じて送付される必要があることを通知することができる。例示用の規則は、データレコードのセキュリティラベルのコンポーネントの判定において使用されるデータベース90の特定のテーブル(例えば、データレコード504が記憶されるテーブル)内のデータレコードの属性を規定することが可能であり、規定された属性の1つ又は複数に対する変化を有する更新済みのデータレコード504が、セキュリティモジュール520を通じて送付される必要があることを通知することができる。例示用の規則は、更新されたデータレコード504をその他のデータレコードに関係付けている外部キー値を含むデータベース90の特定のテーブル(例えば、データレコード504が記憶されるテーブル)内のデータレコードの1つ又は複数のフィールドを規定することが可能であり、規定された外部キーフィールドのうちの1つ又は複数に対する変化を有する更新済みのデータレコード504が、セキュリティモジュール520を通じて送付される必要があることを通知することができる。例えば、規則532は、データレコード504が、異なる上流のデータレコードに関係付けられることをもたらしうる外部キー値の変化が、セキュリティモジュール520を通じた送付をトリガする一方で、データレコード504が、異なる下流のデータレコードに関係付けられることをもたらしうる外部キー値の変化が、データレコード504がカスケードモジュール550に直接的に送付されることをもたらすことを通知することができる。
セキュリティモジュール520は、到来する又は更新されたデータレコード504のセキュリティラベル502を判定する。セキュリティモジュール520は、規則データベース530内において記憶されている規則532に基づいて、セキュリティラベル502を判定することができる。データベース90内のそれぞれのテーブルは、1つ又は複数の規則532の個別の組を有することができる。所与のテーブルの規則は、セキュリティラベルのそれぞれのコンポーネントが、そのテーブル内のそれぞれのレコードについて判定される方式を規定している。規則は、セキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定において使用される必要がある属性、外部キー、及び定数のうちの1つ又は複数を識別することができる。規則は、所与のコンポーネントを判定する際に使用される複数の値が、階層的なリスト又は順序付けられたリストとして連結又は処理される必要があるかどうかを規定することができる。規則は、セキュリティラベルのコンポーネントの既定値の規定又はヌル外部キーを無視するための通知などのように、ヌル可能な外部キー関係がヌルである場合の既定値を規定することができる。セキュリティラベル502が、規則532に従って、到来した又は更新されたデータレコード504について判定されたら、セキュリティラベル502は、データレコード504に追加され、セキュリティラベル502を含むデータレコード504は、データベース90内において記憶される。
また、データレコード504は、カスケードモジュール550にも送付される。カスケードモジュール550は、データレコード504に対する更新の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール550は、例えば、外部キー関係を通じて、データレコード504に関係付けられた下流レコード514を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流のレコード514をセキュリティモジュール520に送付する。いくつかの例においては、カスケードモジュール550は、データレコード504をその他の下流のデータレコードに関係付けている外部キーを識別する1つ又は複数の規則532に従って、下流の関係付けられているレコード514を識別することができる。
下流のデータレコード514がセキュリティモジュール520によって処理されたら、そのセキュリティラベルは、データベース90内において更新され、下流のデータレコード514は、そのデータレコード514の下流のデータレコードのセキュリティラベルが再計算されうるように、カスケードモジュール550に送付される。このセキュリティラベルの再計算のカスケード状態は、例えば、利用可能な更なる下流のデータレコードが存在しなくなる時点まで、継続することができる。
システム500は、データレコードがデータベース90から削除された際に、セキュリティラベルの再計算を実行することができる。検出モジュール510は、データレコードがデータベース90から削除される必要があることを検出し、データレコードをカスケードモジュール550に送付する。カスケードモジュール550は、データレコードの削除の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール550は、例えば、外部キー関係を通じて、データレコードに関係付けられた下流のレコード514を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流レコード514をセキュリティモジュール520に送付する。
いくつかの例においては、セキュリティモジュール520は、セキュリティラベルの計算のログ518を維持することができる。例えば、ログ518は、そのセキュリティラベルが計算又は再計算されたデータレコードの識別子、変化の日付、変化の時刻、セキュリティラベルの以前の値、変化の理由(例えば、再計算をトリガした上流の関係したレコードの識別情報、或いは、データレコードが新しいものである又は更新されたものであるという通知)、又はその他の情報、或いは、これらのうちのいずれか2つ以上の組合せを含むことができる。
図4を参照すれば、システム500は、データベース90内において記憶されているデータレコード602に対するユーザ600からのアクセス要求に対して応答することができる。ユーザは、ユーザセキュリティコード604を有する。ユーザ600がデータレコード602に対するアクセスを要求した際に、セキュリティモジュール520は、データベース90からデータレコード602のセキュリティラベル606を取得する。次いで、セキュリティモジュール520は、規則532に従って、データレコード602のセキュリティラベル606のコンポーネントのそれぞれをユーザのユーザセキュリティコード604の対応したコンポーネントと比較することができる。ユーザのユーザセキュリティコード604のコンポーネントのそれぞれが、セキュリティラベル606の対応したコンポーネントを充足している場合には、ユーザ600によるデータレコード602に対するアクセスが可能となる。ユーザのユーザセキュリティコード604のコンポーネントのうちの1つ又は複数が、セキュリティラベル606の対応したコンポーネントを充足していない場合には、ユーザによるレコードに対するアクセスは、制限される。ユーザのアクセスが許容されている1つ又は複数のデータレコード602に対してユーザ600がアクセスできるようにする画面610をユーザ600に対して提示することができる。
図5を参照すれば、到来データレコードのセキュリティラベルを判定する一般的な方式において、データベースのテーブル内における記憶のために、データレコードが受信されている(800)。セキュリティラベルがデータレコードについて判定される方式を通知する1つ又は複数の規則が取得されている(802)。セキュリティラベルのそれぞれのコンポーネントが、規則に従って判定されている(804)。セキュリティラベルのコンポーネントの判定は、データレコードの属性に基づいてセキュリティラベルのコンポーネントを判定するステップを含むことができる(806)。セキュリティラベルのコンポーネントの判定は、外部キー関係を介して関係付けられた別のデータレコードからの値の継承に基づいてセキュリティラベルのコンポーネントを判定するステップ(808)を含むことができる。セキュリティラベルのコンポーネントの判定は、テーブルと関連した一定の値に基づいてセキュリティラベルのコンポーネントを判定するステップ(810)を含むことができる。セキュリティラベルが、データレコード内のフィールド内において記憶されている(812)。
図6を参照すれば、更新済みのデータレコードのセキュリティラベルを更新する一般的な方式においては、データベース内において記憶されているデータレコードに対する更新が受信されている(600)。データレコードについてセキュリティラベルが判定される方式を示す1つ又は複数の規則が取得されている(602)。更新が、データレコードのセキュリティラベルのコンポーネントの判定において使用されている属性に対して影響を及ぼす場合には、或いは、更新が、更新済みのデータレコードと上流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、或いは、これらの両方の場合には(604)、影響を受けたデータレコードのセキュリティラベルのコンポーネントが、例えば、上述のように、再計算されている(606)。更新が、セキュリティラベルの判定(604)において使用されているデータレコードのいずれの要素にも影響を及ぼさない場合には、データレコードのセキュリティラベルは、再計算されない(608)。下流の関係したデータレコードが識別されている(610)。データレコードのセキュリティラベルが再計算された場合には、或いは、更新が、更新済みのデータレコードと下流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、セキュリティ計算プロセスが、下流の関係したレコードのそれぞれごとに、実行される(612)。更なる下流レコードが存在していない際に、プロセスは終了する(614)。
図7を参照すれば、データベースからデータレコードを削除する一般的な方式において、データレコードが削除されている(900)。下流の関係したデータレコードが識別されている(902)。セキュリティラベルのコンポーネントが、例えば、上述のように、下流の関係したレコードのそれぞれごとに、再計算されている(904)。更なる下流のレコードが存在していない際に、プロセスが終了している(906)。
いくつかのケースにおいては、行のセキュリティラベルは、行の読取りが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、行のセキュリティラベルは、行に対する書き込みが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、それぞれの行は、行を読み取ることができるユーザを制御するラベルと、行に書き込むことができるユーザを制御するラベルと、という2つのセキュリティラベルを有することができる。
先程付与したものなどのいくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、別のテーブル内の1つ又は複数の関係した行のそれぞれ内の情報に基づいて判定されている。いくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、同一のテーブル内の1つ又は複数の関係した行のそれぞれ内の情報に基づいて判定することができる。同一のテーブル内の関係した行内の情報に基づいた行のセキュリティラベルのコンポーネントの判定は、行の間の関係が階層的である際などのように、テーブル内の行の間の関係が循環的ではない際に、実行することができる。
いくつかの例においては、テーブル内の特定の行のセキュリティラベルのコンポーネントは、複数の参照のチェーンを通じて特定の行に関係付けられている行内の情報に基づいて、但し、参照のチェーン内の1つ又は中間の行内の情報に基づくことなしに、判定することができる。例えば、テーブルA内のそれぞれの行をテーブルB内の行と関連付けることが可能であり、テーブルB内のそれぞれの行をテーブルC内の行と関係付けることができる。テーブルA内のそれぞれの行のセキュリティラベルのコンポーネントは、テーブルC内の関係した行内の情報に基づいて、但し、テーブルB内の関係した行内の情報には基づくことなしに、判定することができる。
いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、同一のテーブル又は別のテーブル内の任意の関係した行内の情報に基づいて判定することができる。いくつかのケースにおいては、ユーザは、行のセキュリティラベルが、任意の外部キー関係に準拠しないように、或いは、1つ又は複数の特定の外部キー関係に準拠しないように、既定値をオーバーライドすることができる。いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、いずれの外部キー関係にも準拠することができない。いくつかのケースにおいては、ユーザは、テーブル内のそれぞれの行のセキュリティラベルが、1つ又は複数の特定の外部キー関係に準拠するように、或いは、すべての外部キー関係に準拠するように、既定値をオーバーライドすることができる。
いくつかの例においては、外部キー関係に対する既定の方式は、外部キーの特性に依存したものであってよい。例えば、特定の外部キーがヌル可能である場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠しないというものであってもよいが、特定の外部キーがヌル可能でない場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠するというものであってよい。特定の外部キーが、ヌル可能ではないが、それにも拘らず、ヌルである場合には、最も制限的なセキュリティラベル、最も頻繁に使用されるセキュリティラベル、ユーザによって規定されたセキュリティラベル、或いは、別のセキュリティラベルなどの代替セキュリティラベルを規定することができる。
いくつかの例においては、例えば、テーブルの外部の情報に基づいた行レベルのセキュリティなどの行レベルのセキュリティがデータベース内のすべてのテーブルに対して適用されている。いくつかの例においては、行レベルのセキュリティは、データベース内のテーブルのいくつかに対してのみ、適用されている。
いくつかの例においては、行レベルのセキュリティとの関係において上述したものと類似した方式により、列レベルのセキュリティを提供することができる。例えば、列レベルのセキュリティラベルを含むように、更なる行をテーブル内において提供することができる。列レベルのセキュリティの行内のフィールドの値は、テーブルの外部の情報、テーブルの内部の情報、又はこれらの両方に基づいたものであってもよい。
いくつかの例においては、行レベルのセキュリティは、データベース内の階層的オブジェクトクラスなどの様々なオブジェクトクラスを通じて、伝播することができる。例えば、行レベルのセキュリティは、データベースレベルにおいて、スキーマレベルにおいて、又はテーブルレベルにおいて、或いは、別のレベルにおいて、適用することができる。
図8を参照すれば、ユーザによるレコードに対するアクセスを制限するかどうかを判定する一般的な方式において、データレコードに対するアクセス要求が、ユーザから、或いは、ユーザのために、受信されている(850)。ユーザのユーザセキュリティコードが取得されており(852)、これは、1つ又は複数のコンポーネントを含むことができる。要求されたデータレコードのセキュリティラベルが取得されている(854)。ユーザアクセス制限を制御する1つ又は複数の規則が取得されており(856)、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、データレコードのセキュリティラベルの対応したコンポーネントと比較されている(858)。ユーザのユーザセキュリティコードのいずれかのコードが、データレコードに対するユーザによるアクセスを禁止している場合には(860)、データレコードに対するアクセスは、拒絶される(862)。ユーザのユーザセキュリティコードのコンポーネントが、データレコードに対するユーザによるアクセスを禁止していない場合には(860)、ユーザによるデータレコードに対するアクセスが可能とされる(864)。
図9を参照すれば、いくつかの例においては、上述の技法は、データ供給源102と、実行環境104と、を含むデータ処理システム150内において実装することができる。データ供給源102は、ストレージ装置又はオンラインデータストリームに対する接続などのデータの1つ又は複数の供給源を含んでいてもよく、これらのそれぞれは、様々なフォーマット(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット)のいずれかにおいてデータを記憶又は提供してもよい。実行環境104は、事前処理モジュール106と、実行モジュール112と、を含む。実行環境104は、例えば、UNIXオペレーティングシステムの1つのバージョンなどの、適切なオペレーティングシステムの制御下において、1つ又は複数の汎用コンピュータ上においてホスティングされていてもよい。例えば、実行環境104は、ローカル型(例えば、対称型マルチプロセッシング(SMP:Symmetric Multi-Processing)コンピュータなどのマルチプロセッサシステム)、ローカル分散型(例えば、クラスタ又は超並列処理(MPP:Massively Parallel Processing)システムとして結合された複数のプロセッサ)、リモート型、リモート分散型(例えば、ローカルエリアネットワーク(LAN:Local Area Network)及び/又はワイドエリアネットワーク(WAN:Wide-Area Network)を介して結合された複数のプロセッサ)、或いは、これらの任意の組合せである、複数の中央処理装置(CPU:Central Processing Unit)又はプロセッサコアを使用したコンピュータシステムの構成を含むマルチノードパラレル演算環境を含むことができる。
事前処理モジュール106は、データ供給源102からデータを読み取り、データの任意の適切な処理を実行し、処理されたデータを記憶する。データ供給源102を提供しているストレージ装置は、実行環境104にローカル接続されたものであってもよく、例えば、データは、実行環境104をホスティングしているコンピュータに接続されたストレージ媒体(例えば、ハードドライブ108)上において記憶されていてもよい。また、ストレージ装置は、実行環境104にリモート接続されたものであってもよく、例えば、リモート接続(例えば、クラウド演算インフラストラクチャによって提供されるもの)上において実行環境104をホスティングしているコンピュータとの通信状態にあるリモートシステム(例えば、メインフレーム110)上においてホスティングされていてもよい。
実行モジュール112は、規定されているプロセスを実行するべく、事前処理モジュール106によって生成された処理済みのデータを使用する。処理モジュール106は、データ114を出力してもよく、データ114は、データ供給源102内において、或いは、実行環境104からアクセス可能なデータストレージシステム116内において、再度記憶されてもよく、或いは、その他の方法で使用されてもよい。また、データストレージシステム116は、開発者120がデータ処理アプリケーションを開発しうる開発環境118からも、アクセス可能である。開発環境118は、いくつかの実装形態においては、頂点の間において方向付けられたリンク(ワーク要素のフローを表している、即ち、データを表している)によって接続された頂点(データ処理コンポーネント又はデータセットを表している)を含む演算グラフ又はデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、このような環境については、「Managing Parameters for Graph-Based Applications」という名称の米国特許出願公開第2007/0011668号に更に詳細に記述されている。このようなグラフに基づいた演算を実行するシステムは、「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の米国特許第5,966,072号に記述されている。このシステムに従って生成されるデータフローグラフは、情報をグラフコンポーネントによって表された個々のプロセスとの間においてやり取りし、プロセスの間において情報を移動させ、プロセスの稼働順序を定義する方法を提供している。このシステムは、任意の利用可能な方法の中からプロセス間通信方法を選択するアルゴリズムを含む(例えば、グラフのリンクによる通信経路は、データをプロセス間において伝達するべく、TCP/IP又はUNIXドメインソケットを使用することも可能であり、或いは、共有メモリを使用することもできる)。
開発環境118を使用して開発されたデータフローグラフは、例えば、データストレージ116内において記憶することが可能であり、実行環境104によってアクセスすることもできる。実行環境104は、データフローグラフのコンポーネントと関連したプロセスを実行してデータ供給源102から受信されたデータを処理するべく、データフローグラフを実行してもよい。
上述の接続を生成する方式は、適切なソフトウェアを実行する演算システムを使用して実装することができる。例えば、データ処理システム100は、命令を実行する1つ又は複数のデータプロセッサを有する演算システムを使用して実装することができる。例えば、ソフトウェアは、少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力装置又はポートを使用して入力を受信し、少なくとも1つの出力装置又はポートを使用して出力を提供するための)少なくとも1つのユーザインターフェイスをそれぞれが含む(分散型、クライアント/サーバー、又はグリッドなどの様々なアーキテクチャを有しうる)1つ又は複数のプログラムされた又はプログラム可能な演算システム上において稼働する1つ又は複数のコンピュータプログラム内の手順を含んでいてもよい。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関係したサービスを提供する相対的に大きなプログラムの1つ又は複数のモジュールを含んでいてもよい。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリ内において記憶されているデータモデルに準拠したデータ構造又はその他の組織化されたデータとして実装することができる。
ソフトウェアは、CD−ROM又はその他のコンピュータ可読媒体(例えば、汎用又は特殊目的演算システム又は装置によって読み取り可能である)などの有体の一時的でない媒体上において提供されてもよく、或いは、実行される場合に、ネットワークの通信媒体上において、(例えば、伝播信号内においてエンコードされた状態において)演算システムの有体の一時的でない媒体に供給されてもよい。処理のうちのいくつか又はすべては、特殊目的コンピュータ上において、或いは、コプロセッサ、又はフィールドプログラム可能なゲートアレイ(FPGA:Field-Programmable Gate Array)、或いは、専用の用途固有の集積回路(ASIC:Application-Specific Integrated Circuit)などの特殊目的ハードウェアを使用して、実行されてもよい。処理は、ソフトウェアによって規定された演算の異なる部分が、異なる演算要素によって実行される分散方式によって実装されてもよい。それぞれのこのようなプログラムは、好ましくは、ストレージ装置媒体が、本明細書において記述されている処理を実行するべく、コンピュータによって読み取られた際に、コンピュータを構成すると共に動作させるべく、汎用又は特殊目的プログラム可能コンピュータによってアクセス可能なストレージ装置のコンピュータ可読ストレージ媒体(例えば、半導体メモリ又は媒体、或いは、磁気又は光学媒体)上において記憶されるか又はこれにダウンロードされる。また、本発明のシステムは、コンピュータプログラムによって構成された有体の一時的でない媒体として実装されるものと見なされてもよく、この場合に、このように構成された媒体は、コンピュータが、本明細書において記述されている処理ステップのうちの1つ又は複数を実行するべく、特定の且つ予め定義された方式で動作するようにする。
以上、いくつかの実施形態について説明した。但し、以上の説明は、添付の請求項の範囲によって定義されている本発明の範囲の限定ではなく、これを例示するべく意図されていることを理解されたい。従って、添付の請求項の範囲には、その他の実施形態も含まれる。例えば、本発明の範囲を逸脱することなしに、様々な変更が実施されてもよい。これに加えて、上述のステップのいくつかは、順序から独立したものであってもよく、従って、記述されているものとは異なる順序において実行することができる。

Claims (71)

  1. コンピュータによって、複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを判定するステップであって、
    外部キー関係に従って前記第1レコードに関係した第2レコードを識別するステップ、
    前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
    を有するステップと、
    前記コンピュータによって、前記判定されたセキュリティラベルを前記第1レコード内において記憶するステップと、
    を含む方法。
  2. 個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
    前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
    を含む請求項1に記載の方法。
  3. 前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項2に記載の方法。
  4. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
    前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
    を含む請求項2に記載の方法。
  5. 第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項1に記載の方法。
  6. 前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む請求項1に記載の方法。
  7. 前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項1に記載の方法。
  8. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、前記方法は、前記セキュリティラベルの第2コンポーネントを判定するステップを含む請求項1に記載の方法。
  9. トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを含む請求項1に記載の方法。
  10. 前記トリガイベントは、前記外部キー関係の変化を含む請求項9に記載の方法。
  11. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項9に記載の方法。
  12. 前記トリガイベントを検出するステップを含む請求項9に記載の方法。
  13. 前記トリガイベントの通知を受信するステップを含む請求項9に記載の方法。
  14. ユーザから特定の第1レコードに対するアクセス要求を受信するステップを含み、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項1に記載の方法。
  15. 前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを含む請求項14に記載の方法。
  16. 前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを含む請求項15に記載の方法。
  17. 前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを含む請求項1に記載の方法。
  18. 命令を記憶した一時的でないコンピュータ可読媒体であって、
    前記命令は、演算システムが、
    複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定することであって、
    外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップと、
    前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
    を含んで判定し、
    前記判定されたセキュリティラベルを前記第1レコード内において記憶する、
    ようにする、媒体。
  19. 演算システムであって、
    メモリに結合されたプロセッサを具備し、
    前記プロセッサ及びメモリは、
    複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定することであって、
    外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップと、
    前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
    を含んで判定し、
    前記判定されたセキュリティラベルを前記第1レコード内において記憶する、
    ように構成されている、システム。
  20. 演算システムであって、
    複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定する手段であって、
    外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップ、
    前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
    を含む、手段と、
    前記判定されたセキュリティラベルを前記第1レコード内において記憶する手段と、
    を具備するシステム。
  21. コンピュータによって、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定するステップと、
    前記コンピュータによって、前記第1レコードの第1セキュリティラベルを自動的に更新するステップと、
    前記コンピュータによって、前記更新されたセキュリティラベルを前記第1レコード内において記憶するステップと、
    前記コンピュータによって、前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを更新するステップと、
    を含み、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている方法。
  22. 前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む請求項21に記載の方法。
  23. 前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
    前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
    を含む請求項21に記載の方法。
  24. 前記第2テーブルは、前記第1テーブルの子である請求項21に記載の方法。
  25. 前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを含む請求項21に記載の方法。
  26. 前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
    前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
    を含む請求項21に記載の方法。
  27. 命令を記憶した一時的でないコンピュータ可読媒体であって、
    前記命令は、演算システムに、
    複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたことを判定させ、
    前記第1レコードの第1セキュリティラベルを自動的に更新させ、
    前記更新されたセキュリティラベルを前記第1レコード内において記憶させ、
    前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新させており、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、媒体。
  28. 演算システムであって、
    メモリに結合されたプロセッサを具備し、
    前記プロセッサ及びメモリは、
    複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定し、
    前記第1レコードの第1セキュリティラベルを自動的に更新し、
    前記更新されたセキュリティラベルを前記第1レコード内において記憶し、
    前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新し、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、
    ように構成されている、システム。
  29. 演算システムであって、
    複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定する手段と、
    前記第1レコードの第1セキュリティラベルを自動的に更新する手段と、
    前記更新されたセキュリティラベルを前記第1レコード内において記憶する手段と、
    前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新する手段であって、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、手段と、
    を具備するシステム。
  30. 前記演算システムに、
    個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
    前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
    を実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
  31. 前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項30に記載のコンピュータ可読媒体。
  32. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
    前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
    を含む請求項30に記載のコンピュータ可読媒体。
  33. 前記演算システムに、
    第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶し、
    前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項18に記載のコンピュータ可読媒体。
  34. 前記演算システムに、
    前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
  35. 前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項18に記載のコンピュータ可読媒体。
  36. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、
    前記演算システムに、
    前記セキュリティラベルの第2コンポーネントを判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
  37. 前記演算システムに、
    トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
  38. 前記トリガイベントは、前記外部キー関係の変化を含む請求項37に記載のコンピュータ可読媒体。
  39. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項37に記載のコンピュータ可読媒体。
  40. 前記演算システムに、
    前記トリガイベントを検出するステップを実行させる、命令を記憶する請求項37に記載のコンピュータ可読媒体。
  41. 前記演算システムに、
    前記トリガイベントの通知を受信するステップを実行させる、命令を記憶する請求項37に記載のコンピュータ可読媒体。
  42. 前記演算システムに、
    ユーザから特定の第1レコードに対するアクセス要求を受信するステップを実行させる、命令を記憶し、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項18に記載のコンピュータ可読媒体。
  43. 前記演算システムに、
    前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを実行させる、命令を記憶する請求項42に記載のコンピュータ可読媒体。
  44. 前記演算システムに、
    前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを実行させる、命令を記憶する請求項43に記載のコンピュータ可読媒体。
  45. 前記演算システムに、
    前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
  46. 前記プロセッサ及びメモリは、
    個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
    前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
    を実行するように構成されている請求項19に記載の演算システム。
  47. 前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項46に記載の演算システム。
  48. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
    前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
    前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
    を含む請求項46に記載の演算システム。
  49. 前記プロセッサ及びメモリは、
    第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されており、前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項19に記載の演算システム。
  50. 前記プロセッサ及びメモリは、
    前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されている請求項19に記載の演算システム。
  51. 前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項19に記載の演算システム。
  52. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、
    前記プロセッサ及びメモリは、
    前記セキュリティラベルの第2コンポーネントを判定するステップを実行するように構成されている請求項19に記載の演算システム。
  53. 前記プロセッサ及びメモリは、
    トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行するように構成されている請求項19に記載の演算システム。
  54. 前記トリガイベントは、前記外部キー関係の変化を含む請求項53に記載の演算システム。
  55. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項53に記載の演算システム。
  56. 前記プロセッサ及びメモリは、
    前記トリガイベントを検出するステップを実行するように構成されている請求項53に記載の演算システム。
  57. 前記プロセッサ及びメモリは、
    前記トリガイベントの通知を受信するステップを実行するように構成されている請求項53に記載の演算システム。
  58. 前記プロセッサ及びメモリは、
    ユーザから特定の第1レコードに対するアクセス要求を受信するステップを実行するように構成されており、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項19に記載の演算システム。
  59. 前記プロセッサ及びメモリは、
    前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを実行するように構成されている請求項58に記載の演算システム。
  60. 前記プロセッサ及びメモリは、
    前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを実行するように構成されている請求項59に記載の演算システム。
  61. 前記プロセッサ及びメモリは、
    前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行するように構成されている請求項19に記載の演算システム。
  62. 前記演算システムに、
    前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
  63. 前記演算システムに、
    前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
    前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
    を実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
  64. 前記第2テーブルは、前記第1テーブルの子である請求項27に記載のコンピュータ可読媒体。
  65. 前記演算システムに、
    前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
  66. 前記演算システムに、
    前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
    前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
    を実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
  67. 前記プロセッサ及びメモリは、
    前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項28に記載の演算システム
  68. 前記プロセッサ及びメモリは、
    前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
    前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
    を実行するように構成されている請求項28に記載の演算システム
  69. 前記第2テーブルは、前記第1テーブルの子である請求項28に記載の演算システム
  70. 前記プロセッサ及びメモリは、
    前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項28に記載の演算システム
  71. 前記プロセッサ及びメモリは、
    前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
    前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
    を実行するように構成されている請求項28に記載の演算システム
JP2017522954A 2014-11-05 2015-11-05 データベースセキュリティ Active JP6755864B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462075593P 2014-11-05 2014-11-05
US62/075,593 2014-11-05
PCT/US2015/059213 WO2016073701A1 (en) 2014-11-05 2015-11-05 Database security

Publications (3)

Publication Number Publication Date
JP2018503154A JP2018503154A (ja) 2018-02-01
JP2018503154A5 JP2018503154A5 (ja) 2018-12-13
JP6755864B2 true JP6755864B2 (ja) 2020-09-16

Family

ID=54602030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522954A Active JP6755864B2 (ja) 2014-11-05 2015-11-05 データベースセキュリティ

Country Status (9)

Country Link
US (2) US11531775B2 (ja)
EP (1) EP3215976B1 (ja)
JP (1) JP6755864B2 (ja)
KR (1) KR102209451B1 (ja)
CN (1) CN107111722B (ja)
AU (3) AU2015343045A1 (ja)
CA (1) CA2966537C (ja)
SG (1) SG11201703004XA (ja)
WO (1) WO2016073701A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101905771B1 (ko) * 2016-01-29 2018-10-11 주식회사 엔오디비즈웨어 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 서버와 이의 작동 방법
US11210459B1 (en) * 2016-09-23 2021-12-28 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US10540152B1 (en) 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US11138370B1 (en) 2016-09-23 2021-10-05 Massachusetts Mututal Life Insurance Company Modifying and using spreadsheets to create a GUI on another device
US10817465B2 (en) * 2016-12-09 2020-10-27 Salesforce.Com, Inc. Match index creation
US10817549B2 (en) * 2016-12-09 2020-10-27 Salesforce.Com, Inc. Augmenting match indices
US10496737B1 (en) 2017-01-05 2019-12-03 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US20190147182A1 (en) * 2017-11-15 2019-05-16 American Express Travel Related Services Company, Inc. Data Access System
US11140174B2 (en) * 2017-12-13 2021-10-05 Jpmorgan Chase Bank, N.A. Time and location controlled centralized access management system
CN110427770B (zh) * 2019-06-20 2021-04-20 中国科学院信息工程研究所 一种支持业务安全标记的数据库访问控制方法及系统
US11360990B2 (en) 2019-06-21 2022-06-14 Salesforce.Com, Inc. Method and a system for fuzzy matching of entities in a database system based on machine learning
JP2023005647A (ja) * 2021-06-29 2023-01-18 株式会社日立製作所 個人情報管理システムおよび個人情報管理方法
US11789911B1 (en) * 2021-07-27 2023-10-17 Amazon Technologies, Inc. Scalable permissions management for granular levels of database access

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6446077B2 (en) * 1998-09-21 2002-09-03 Microsoft Corporation Inherited information propagator for objects
WO2000026750A1 (en) * 1998-11-05 2000-05-11 NEUVIS, Inc Method for controlling access to information
US8316051B1 (en) * 2001-11-30 2012-11-20 Oralce International Corporation Techniques for adding multiple security policies to a database system
JP2004021449A (ja) 2002-06-14 2004-01-22 Fuji Xerox Co Ltd データ管理システム、データ管理方法及びデータ管理プログラム
US7134022B2 (en) * 2002-07-16 2006-11-07 Flyntz Terence T Multi-level and multi-category data labeling system
US7240046B2 (en) * 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
US7216125B2 (en) * 2002-09-17 2007-05-08 International Business Machines Corporation Methods and apparatus for pre-filtered access control in computing systems
CA2459004A1 (en) * 2004-02-20 2005-08-20 Ibm Canada Limited - Ibm Canada Limitee Method and system to control data acces using security label components
US7200595B2 (en) * 2004-03-29 2007-04-03 Microsoft Corporation Systems and methods for fine grained access control of data stored in relational databases
US20050289342A1 (en) * 2004-06-28 2005-12-29 Oracle International Corporation Column relevant data security label
US7599937B2 (en) * 2004-06-28 2009-10-06 Microsoft Corporation Systems and methods for fine grained access control of data stored in relational databases
JP2006106986A (ja) 2004-10-01 2006-04-20 Canon Inc アクセス管理方法及び情報処理装置
US7725501B1 (en) * 2004-11-12 2010-05-25 Northrop Grumman Corporation System and method for rapid database application deployment and use
US7831570B2 (en) * 2004-12-30 2010-11-09 Oracle International Corporation Mandatory access control label security
US8732856B2 (en) * 2004-12-30 2014-05-20 Oracle International Corporation Cross-domain security for data vault
US7539682B2 (en) * 2005-03-14 2009-05-26 Microsoft Corporation Multilevel secure database
US7613711B2 (en) * 2005-06-14 2009-11-03 Microsoft Corporation Specification of a hierarchical authorization model for a DBMS—SQL language extensions
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7512792B2 (en) * 2005-12-15 2009-03-31 International Business Machines Corporation Reference monitor method for enforcing information flow policies
US7904642B1 (en) * 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
US8306999B2 (en) * 2007-03-23 2012-11-06 Sas Institute Inc. Computer-implemented systems, methods, and computer program product for providing row-level security in a database network
US20090050695A1 (en) * 2007-08-20 2009-02-26 International Business Machines Corporation Efficient access rules enforcement mechanism for label-based access control
US7809751B2 (en) * 2007-08-27 2010-10-05 Sap Ag Authorization controlled searching
US8566909B2 (en) * 2008-02-01 2013-10-22 Oracle International Corporation Row-level security with expression data type
CN101571858B (zh) 2008-04-28 2013-06-19 国际商业机器公司 多个对象的安全性设定及检查的方法和装置
US8869299B2 (en) * 2009-03-04 2014-10-21 Titus Inc. Method and system for generating trusted security labels for electronic documents
WO2010106679A1 (ja) * 2009-03-19 2010-09-23 富士通株式会社 アクセス制御装置、情報管理装置およびアクセス制御方法
US8745747B2 (en) * 2009-12-31 2014-06-03 Fujitsu Limited Data protecting device
US20110231889A1 (en) * 2010-03-22 2011-09-22 International Business Machines Corporation Security policy as query predicate
US9378387B2 (en) * 2010-03-24 2016-06-28 Oracle International Corporation Multi-level security cluster
US8510335B2 (en) * 2011-02-14 2013-08-13 Protegrity Corporation Database and method for controlling access to a database
US20120246150A1 (en) * 2011-03-23 2012-09-27 Raytheon Company System and Method for Storing Data and Providing Multi-Level Access Thereto
US20120330925A1 (en) * 2011-06-23 2012-12-27 Microsoft Corporation Optimizing fine grained access control using authorization indexes
US9208343B2 (en) * 2011-08-18 2015-12-08 Hewlett-Packard Development Company, L.P. Transitive closure security
US8930413B2 (en) * 2012-01-03 2015-01-06 International Business Machines Corporation Dynamic structure for a multi-tenant database
US9043309B2 (en) * 2012-06-05 2015-05-26 Oracle International Corporation SQL transformation-based optimization techniques for enforcement of data access control
US8893288B2 (en) * 2012-07-02 2014-11-18 International Business Machines Corporation Prevention of information leakage from a document based on dynamic database label based access control (LBAC) policies
KR20140051487A (ko) * 2012-10-08 2014-05-02 삼성전자주식회사 단말기의 데이터보호 장치 및 방법
CN103560994A (zh) * 2013-08-16 2014-02-05 中山大学 用于rfid系统的基于上下文相关的安全访问控制方法
US10242222B2 (en) * 2014-01-14 2019-03-26 Baker Hughes, A Ge Company, Llc Compartment-based data security
GB2509032A (en) * 2014-03-31 2014-06-18 Perform Media Services Ltd Authority maps for access to a database using a client device
US9600548B2 (en) * 2014-10-10 2017-03-21 Salesforce.Com Row level security integration of analytical data store with cloud architecture

Also Published As

Publication number Publication date
CA2966537A1 (en) 2016-05-12
KR20170078714A (ko) 2017-07-07
KR102209451B1 (ko) 2021-01-28
SG11201703004XA (en) 2017-05-30
US20230075240A1 (en) 2023-03-09
AU2015343045A1 (en) 2017-05-04
US11531775B2 (en) 2022-12-20
AU2022203757B2 (en) 2023-06-15
CA2966537C (en) 2022-05-24
CN107111722B (zh) 2021-06-11
WO2016073701A1 (en) 2016-05-12
AU2022203757A1 (en) 2022-06-23
US20160125197A1 (en) 2016-05-05
AU2020203287A1 (en) 2020-06-11
EP3215976B1 (en) 2021-10-20
CN107111722A (zh) 2017-08-29
EP3215976A1 (en) 2017-09-13
JP2018503154A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6755864B2 (ja) データベースセキュリティ
US20230401187A1 (en) Method and system for migrating content between enterprise content management systems
US10521460B2 (en) Filtering data lineage diagrams
US11886507B2 (en) Multi-tenant knowledge graph databases with dynamic specification and enforcement of ontological data models
CN108319656A (zh) 实现灰度发布的方法、装置及计算节点和系统
US11036560B1 (en) Determining isolation types for executing code portions
JP2019091475A (ja) データ系統図のフィルタリング
US11119749B2 (en) Architectures and techniques for record protection and field management
US20200342008A1 (en) System for lightweight objects
US20140189889A1 (en) Managing authorization of actions associated with data objects
US11157495B2 (en) Dynamically managing predicate expression columns in an encrypted database
CA3155034A1 (en) Method and system for interpreting inputted information
US8656410B1 (en) Conversion of lightweight object to a heavyweight object
US10936984B2 (en) System for mitigating exposure associated with identified impacts of technological system changes based on solution data modelling
US10970406B2 (en) System for mitigating exposure associated with identified unmanaged devices in a network using solution data modelling
US20230334025A1 (en) Record management for database systems using fuzzy field matching
US20230306126A1 (en) Limiting cloud permissions in deployment pipelines

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181030

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200826

R150 Certificate of patent or registration of utility model

Ref document number: 6755864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250