JP6755864B2 - Database security - Google Patents

Database security 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
Japanese (ja)
Other versions
JP2018503154A5 (en
JP2018503154A (en
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/en
Publication of JP2018503154A5 publication Critical patent/JP2018503154A5/ja
Application granted granted Critical
Publication of JP6755864B2 publication Critical patent/JP6755864B2/en
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

優先権の主張
本出願は、2014年11月5日付けで出願された米国仮特許出願第62/075,593号に対する優先権を主張するものであり、この内容は、引用により、そのすべてが本明細書に包含される。
Priority Claim This application claims priority to US Provisional Patent Application No. 62 / 075,593 filed on November 5, 2014, all of which is by citation. Included herein.

背景
本明細書は、データベースセキュリティに関する。データベースは、複数のテーブルを含むことが可能であり、これらのテーブルのそれぞれは、複数の行を含むことができる。データベース内において記憶されているデータレコードに対するアクセスは、テーブルのそれぞれに対するアクセスを制御することにより、或いは、テーブル内のそれぞれの行に対するアクセスを制御することにより、制御することができる。それぞれの行などのそれぞれのオブジェクトと関連したセキュリティラベルの使用を通じて、行レベルのセキュリティを提供することができる。
Background This specification relates to database security. The database can contain multiple tables, and each of these tables can contain multiple rows. Access to the data records stored in the database can be controlled by controlling access to each of the tables or by controlling access to each row in the table. Row-level security can be provided through the use of security labels associated with each object, such as each row.

概要
一態様において、方法は、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、これには、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれる。方法は、判定されたセキュリティラベルをレコード内において記憶するステップを含む。
Overview In one aspect, the method includes the step of automatically determining the component of the security label for each first record in the first table of a database with multiple tables, which is based on a foreign key relationship. The step of identifying the second record related to one record, the step of identifying the component of the security label of the second record, and the component of the security label of the first record based on the identified component of the security label of the second record. Includes steps to assign the value of. The method involves storing the determined security label in a record.

実施形態は、以下の特徴のうちの1つ又は複数を含むことができる。 Embodiments can include one or more of the following features:

方法は、個々の外部キー関係に従ってそれぞれが第1レコードに関係した複数の第2レコードを識別するステップと、第2レコードのそれぞれごとにセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、を含む。 The method is to identify multiple second records, each related to the first record, according to individual foreign key relationships, to identify the security label component for each of the second records, and to secure the second record. Includes a step of assigning the value of the security label component of the first record based on the value of each component of the identified components of the label.

第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップは、第2レコードのセキュリティラベルの識別されたコンポーネントの複数の別個の値を連結するステップを含む。 The step of assigning the value of the security label component of the first record includes concatenating a plurality of distinct values of the identified component of the security label of the second record.

セキュリティラベルのコンポーネントの値を割り当てるステップは、第2レコードのセキュリティラベルの識別されたコンポーネントの値の中から最高優先順位値を識別するステップと、最高優先順位値を第1レコードのセキュリティラベルのコンポーネントの値として割り当てるステップと、を含む。 The step of assigning the value of the component of the security label is the step of identifying the highest priority value from the values of the identified component of the security label of the second record, and the step of assigning the highest priority value to the component of the security label of the first record. Includes steps to assign as the value of.

方法は、レコードの属性に基づいてデータベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、レコードの属性は、レコード内において記憶されている値である。 The method includes the step of automatically determining the component of the security label for each third record in the third table of the database based on the attributes of the record, where the attributes of the record are the values stored in the record. Is.

方法は、第3テーブルと関連した値に基づいてデータベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む。 The method includes the step of automatically determining the security label component for each third record in the third table of the database based on the values associated with the third table.

第2レコードは、第1テーブル以外のテーブル内に存在している。 The second record exists in a table other than the first table.

コンポーネントは、レコードのセキュリティラベルの第1コンポーネントであり、方法は、セキュリティラベルの第2コンポーネントを判定するステップを含む。 The component is the first component of the security label of the record, and the method comprises determining the second component of the security label.

方法は、トリガイベントに応答して特定の第1レコードのセキュリティラベルのコンポーネントを更新するステップを含む。 The method comprises updating the security label component of a particular first record in response to a trigger event.

トリガイベントは、外部キー関係の変化を含む。 Trigger events include changes in foreign key relationships.

トリガイベントは、特定の第1レコードに関係した第2レコードのセキュリティラベルのコンポーネントの変化を含む。 The trigger event includes a change in the security label component of the second record related to the particular first record.

方法は、トリガイベントを検出するステップを含む。 The method includes a step of detecting a trigger event.

方法は、トリガイベントの通知を受信するステップを含む。 The method includes the step of receiving a notification of a trigger event.

方法は、ユーザから特定の第1レコードに対するアクセス要求を受信するステップを含み、ユーザは、ユーザセキュリティコードと関連付けられている。 The method comprises receiving an access request for a particular first record from the user, the user being associated with a user security code.

方法は、ユーザと関連したユーザセキュリティコードのコンポーネントと特定の第1レコードのセキュリティラベルのコンポーネントの間の比較に基づいて、ユーザによる特定の第1レコードに対するアクセスを制限するステップを含む。 The method comprises restricting a user's access to a particular first record based on a comparison between the user's associated user security code component and the particular first record's security label component.

方法は、アクセス要求を受信する前に、レコードのセキュリティラベルを判定するステップを含む。 The method includes determining the security label of a record before receiving an access request.

方法は、第1レコードが、データベース内における記憶のために受信された際に、特定の第1レコードのセキュリティラベルのコンポーネントを自動的に判定するステップを含む。 The method includes the step of automatically determining the security label component of a particular first record when the first record is received for storage in the database.

一態様において、一時的でないコンピュータ可読媒体は、命令を記憶しており、命令は、演算システムが、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、これには、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ようにする。 In one aspect, the non-temporary computer-readable medium stores the instruction, which is a security label component for each first record in the first table of a database in which the arithmetic system has multiple tables. It is automatically determined and includes the step of identifying the second record related to the first record according to the external key relationship, the step of identifying the component of the security label of the second record, and the security label of the second record. A step of assigning the value of the component of the security label of the first record based on the identified component is included, and the determined security label is stored in the record.

一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定し、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップと、第2レコードのセキュリティラベルのコンポーネントを識別するステップと、第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップと、が含まれ、判定されたセキュリティラベルをレコード内において記憶する、ように構成されている。 In one aspect, the arithmetic system includes a memory-bound processor, which automatically determines the security label component for each first record in the first table of a database with multiple tables. Then, based on the step of identifying the second record related to the first record according to the foreign key relationship, the step of identifying the component of the security label of the second record, and the identified component of the security label of the second record. A step of assigning the value of the component of the security label of one record is included, and the determined security label is stored in the record.

一態様において、演算システムは、複数のテーブルを有するデータベースの第1テーブル内のそれぞれの第1レコードごとにセキュリティラベルのコンポーネントを自動的に判定する手段であって、外部キー関係に従って第1レコードに関係した第2レコードを識別するステップ、第2レコードのセキュリティラベルのコンポーネントを識別するステップ、及び第2レコードのセキュリティラベルの識別されたコンポーネントに基づいて第1レコードのセキュリティラベルのコンポーネントの値を割り当てるステップ、を含む手段と、判定されたセキュリティラベルをレコード内において記憶する手段と、を含む。 In one aspect, the arithmetic system is a means of automatically determining the component of the security label for each first record in the first table of a database having a plurality of tables, and the first record is set according to the foreign key relationship. The step of identifying the second record involved, the step of identifying the component of the security label of the second record, and the assignment of the value of the component of the security label of the first record based on the identified component of the security label of the second record. A means including a step, and a means for storing the determined security label in the record.

一態様において、方法は、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定するステップと、第1レコードの第1セキュリティラベルを自動的に更新するステップと、更新されたセキュリティラベルをレコード内において記憶するステップと、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するステップと、を含み、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。 In one aspect, the method is a step of determining that the first record stored in the first table of a database having a plurality of tables has been updated, and a step of automatically updating the first security label of the first record. The second record includes a step of storing the updated security label in the record and a step of automatically updating the second security label of the second record stored in the second table of the database. Is associated with the first record according to the foreign key relationship.

実施形態は、以下の特徴のうちの1つ又は複数を含むことができる。 Embodiments can include one or more of the following features:

方法は、第1レコードに対する更新が第1レコードの第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む。 The method includes determining whether an update to the first record affects the first security label of the first record.

方法は、第1レコードに対する更新の影響を受ける第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、影響を受けた第1セキュリティラベルの1つ又は複数のコンポーネントを自動的に更新するステップと、を含む。 The method involves determining one or more components of the first security label that are affected by the update to the first record, and one or more components of the affected first security label. Includes steps to update automatically.

第2テーブルは、第1テーブルの子である。 The second table is a child of the first table.

方法は、第1レコードに対する更新が外部キー関係に影響を及ぼすかどうかを判定するステップを含む。 The method includes determining whether the update to the first record affects the foreign key relationship.

方法は、第1レコードに対する更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、影響を受けた外部キー関係に従って第1レコードに関係したそれぞれの第2レコードごとに第2セキュリティラベルを自動的に更新するステップと、を含む。 The method is to determine one or more foreign key relationships among the multiple foreign key relationships affected by the update to the first record, and each related to the first record according to the affected foreign key relationships. Includes a step of automatically updating the second security label for each second record.

一態様において、一時的でないコンピュータ可読記憶媒体は、演算システムに、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたことを判定させ、第1レコードの第1セキュリティラベルを自動的に更新させ、更新されたセキュリティラベルをレコード内において記憶させ、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するようにする命令を記憶させており、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。 In one aspect, the non-temporary computer-readable storage medium causes the arithmetic system to determine that the first record stored in the first table of the database having the plurality of tables has been updated, and the first record of the first record. 1 The security label is automatically updated, the updated security label is stored in the record, and the second security label of the second record stored in the second table of the database is automatically updated. The instruction is stored, and the second record is associated with the first record according to the foreign key relationship.

一態様において、演算システムは、メモリに結合されたプロセッサを含み、プロセッサ及びメモリは、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定し、第1レコードの第1セキュリティラベルを自動的に更新し、更新されたセキュリティラベルをレコード内において記憶し、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新するように構成されており、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。 In one aspect, the arithmetic system includes a processor attached to memory, and the processor and memory determine that the first record stored in the first table of a database having a plurality of tables has been updated, and the first. The first security label of the record is automatically updated, the updated security label is stored in the record, and the second security label of the second record stored in the second table of the database is automatically updated. The second record is associated with the first record according to the foreign key relationship.

一態様において、演算システムは、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定する手段と、第1レコードの第1セキュリティラベルを自動的に更新する手段と、更新されたセキュリティラベルをレコード内において記憶する手段と、データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新する手段と、を具備し、第2レコードは、外部キー関係に従って第1レコードに関係付けられている。 In one aspect, the arithmetic system automatically updates the means for determining that the first record stored in the first table of the database having a plurality of tables has been updated and the first security label of the first record. A means, a means for storing the updated security label in the record, and a means for automatically updating the second security label of the second record stored in the second table of the database are provided. The two records are associated with the first record according to the foreign key relationship.

その他の特徴及び利点については、以下の説明から、並びに、添付の請求項から、明らかとなる。 Other features and advantages will become apparent from the following description and from the appended claims.

図1はブロックダイアグラムである。FIG. 1 is a block diagram. 図2Aはデータベースシステムの一例である。FIG. 2A is an example of a database system. 図2Bはユーザアクセス制限の一例である。FIG. 2B is an example of user access restriction. 図3はブロックダイアグラムである。FIG. 3 is a block diagram. 図4はブロックダイアグラムである。FIG. 4 is a block diagram. 図5はフローチャートである。FIG. 5 is a flowchart. 図6はフローチャートである。FIG. 6 is a flowchart. 図7はフローチャートである。FIG. 7 is a flowchart. 図8はフローチャートである。FIG. 8 is a flowchart. 図9はブロックダイアグラムである。FIG. 9 is a block diagram.

詳細な説明
本発明者らは、本明細書において、データベースのテーブル内の行に対して行レベルのセキュリティを提供する方式について記述している。テーブル内のそれぞれの行は、データレコードを表している。セキュリティラベルが、それぞれの行内において記憶されており、セキュリティラベルは、例えば、行によって表されたデータレコードに対するアクセスの許可を有するユーザ又は行によって表されたデータレコードに対するアクセスが制限されたユーザを通知するなどのように、行に対するアクセスを制御するべく使用することができる。テーブル内の行のセキュリティラベルは、行の外部の情報、行の内部の情報、及びテーブルに固有の情報のうちの1つ又は複数に基づいて判定することができる。しばしば継承とも呼称されるセキュリティラベルの伝播は、1つ又は複数の関係した行のセキュリティラベルに少なくとも部分的に基づいて行のセキュリティラベルを判定するメカニズムである。例えば、データベースのテーブル内の行は、外部キー関係を介して行に関係付けられた同一テーブル内の又は別のテーブル内の別の行から、そのセキュリティラベルのコンポーネントを継承することができる。セキュリティラベルの継承は、例えば、ユーザによる所与のデータレコードに対するアクセスが制限されている場合に、所与のデータレコードに依存したすべてのその他のデータレコードに対するユーザによるアクセスの制限の保証を支援することができる。
Detailed Description In the present invention, the present inventors describe a method for providing row-level security for rows in a table of a database. Each row in the table represents a data record. A security label is stored within each row, which informs, for example, a user who has permission to access the data record represented by the row or a user who has restricted access to the data record represented by the row. It can be used to control access to a row, such as. The security label of a row in a table can be determined based on one or more of the information outside the row, the information inside the row, and the information specific to the table. Security label propagation, often referred to as inheritance, is a mechanism for determining a row's security label based at least in part on the security label of one or more related rows. For example, a row in a database table can inherit its security label component from another row in the same table or in another table that is associated with the row via a foreign key relationship. Security label inheritance helps ensure that users have restricted access to all other data records that depend on a given data record, for example, if the user has restricted access to a given data record. be able to.

行のセキュリティラベルは、複数のコンポーネントを有することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、同一テーブルの関係した行内の情報又は別のテーブルの関係した行内の情報などの行の外部の情報に基づいて判定することができる。行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、行の属性などの行の内部の情報に基づいて判定することができる。テーブル内の行のセキュリティラベルのコンポーネントのうちの1つ又は複数は、テーブルと関連した一定の値などのテーブルに固有の情報に基づいて判定することができる。 A row security label can have multiple components. One or more of the security label components of a row in a table can be determined based on information outside the row, such as information in a related row in the same table or information in a related row in another table. it can. One or more of the components of a row's security label can be determined based on information inside the row, such as row attributes. One or more of the security label components of a row in a table can be determined based on information specific to the table, such as certain values associated with the table.

データレコード(本発明者らは、しばしば、行とデータレコードという用語を相互交換可能な方式で使用する)のセキュリティラベルは、データレコードがデータベースに入力される際に判定することができる。データレコードのセキュリティラベルは、データレコードの変化、関係したデータレコードの変化、又はテーブルに固有の情報の変化などのトリガイベントに応答して更新することができる。行に対する任意のアクセス要求が受信される前に、セキュリティラベルが、既に、演算されており、利用可能な状態となるように、セキュリティラベルは、データレコード内において記憶されている。本発明者らは、しばしば、行に対する任意のアクセス要求を受信する前の段階の、この受信とは独立した、セキュリティラベルの演算をセキュリティラベルの事前演算と呼称する。セキュリティラベルの事前演算は、利点を有することができる。例えば、行のセキュリティラベルが事前演算されている場合には、ユーザによる行に対するアクセスが制限されているかどうかの判定は、アクセス要求に応答してセキュリティラベルをリアルタイムで算出するという演算集約的なプロセスの実行を必要とすることなしに、迅速に実施することができる。 The security label of a data record (which we often use the terms row and data record in an interchangeable manner) can be determined as the data record is entered into the database. The security label of a data record can be updated in response to a trigger event such as a change in the data record, a change in the associated data record, or a change in information specific to the table. The security label is stored in the data record so that the security label has already been calculated and made available before any access request to the row is received. We often refer to this reception-independent security label operation as a security label pre-operation before receiving any access request to a row. Pre-calculation of security labels can have advantages. For example, if a row's security label is pre-calculated, determining if the user's access to the row is restricted is a computationally intensive process that calculates the security label in real time in response to an access request. Can be done quickly, without the need to do so.

本明細書において記述されている行レベルのセキュリティ用の方式によれば、複数の相互に関係付けられたテーブルを有するデータベース内においてデータを保護することができる。このようなデータベース内においては、1つのテーブル内の行のセキュリティラベルを、別の関係したテーブル内の行のセキュリティラベルに少なくとも部分的に基づいて判定することができる。例えば、ユーザによるプロジェクトサマリを表すデータレコードの参照が制限されている場合には、プロジェクトサマリ及びプロジェクトファイナンスを表すデータレコードの間の関係に起因して、そのユーザによるプロジェクトファイナンスを表すデータレコードの参照も、同様に、自動的に防止することができる。保護を要する多数の行がデータベース内に存在しているが、セキュリティの大部分をその他の関係した行から推定できる場合には、これらの関係に基づいたセキュリティラベルの判定は、セキュリティの改善及び維持費用の低減を支援することができる。 The row-level security schemes described herein allow data to be protected within a database that has multiple interrelated tables. In such a database, the security label of a row in one table can be determined, at least in part, based on the security label of a row in another related table. For example, if a user's reference to a data record representing project finance is restricted, then the user's reference to the data record representing project finance is due to the relationship between the project summary and the data record representing project finance. Can be prevented automatically as well. If there are many rows in the database that need protection, but most of the security can be inferred from other related rows, then determining the security label based on these relationships can improve and maintain security. It can help reduce costs.

セキュリティラベルの事前演算及びデータレコード内におけるセキュリティラベルの記憶により、データレコードのセキュリティを容易に理解可能なものにすることが可能であり、効率的にアクセス可能なものとすることができる。このセキュリティ情報に対する容易なアクセスは、データベースシステムの監査の促進を支援することが可能であり、トラブルシューティングにおいてセキュリティ及び情報技術専門家を支援することが可能であり、データベース内の個々のデータレコードと関連した許可又は制限の理解を伴うその他の活動を促進することができる。例えば、データレコードのセキュリティラベルをデータレコード自体の内部において記憶することにより、監査人又はセキュリティ専門家は、複雑な計算の実行を必要とすることなしに、別個のセキュリティファイル又はテーブルの参照を必要とすることなしに、レコードを検査することにより、データレコードに対するアクセスが許容された又はこれが制限されたユーザを判定することができる。 By pre-calculating the security label and storing the security label in the data record, it is possible to make the security of the data record easily understandable and to make it efficiently accessible. Easy access to this security information can help facilitate auditing of the database system, assist security and information technology professionals in troubleshooting, and with individual data records in the database. Other activities with an understanding of related permits or restrictions can be promoted. For example, by storing the security label of a data record inside the data record itself, the auditor or security expert can refer to a separate security file or table without having to perform complex calculations. By inspecting the record, it is possible to determine which users are allowed or restricted from accessing the data record.

図1を参照すれば、サーバー101上においてホスティングされたデータベース100は、1つ又は複数のテーブル50、52、54、56を含むことが可能であり、これらのテーブルのそれぞれは、1つ又は複数のデータレコードを含む。テーブルは、例えば、階層的な関係又は別のタイプの関係において、データベース100内のその他のテーブルの1つ又は複数と関係付けることができる。2つのテーブルの間の関係は、例えば、子テーブルが1つ又は複数の親テーブルに依存している親−子関係であってもよい。例えば、図1の例においては、部署テーブル52は、矢印62によって示されているように、部門テーブル54の子である。プロジェクトテーブル50は、例えば、矢印64及び66によって示されているように、部門テーブル54及び領域テーブル56の両方の子である。本発明者らは、しばしば、親テーブルを上流テーブルと呼称し、子テーブルを下流テーブルと呼称する。また、テーブルの間のその他のタイプの関係も可能である。 With reference to FIG. 1, the database 100 hosted on the server 101 can include one or more tables 50, 52, 54, 56, each of which is one or more. Includes data records for. A table can be associated with one or more of the other tables in database 100, for example in a hierarchical relationship or another type of relationship. The relationship between the two tables may be, for example, a parent-child relationship in which the child table depends on one or more parent tables. For example, in the example of FIG. 1, the department table 52 is a child of the department table 54, as indicated by the arrow 62. The project table 50 is a child of both the department table 54 and the area table 56, for example, as indicated by arrows 64 and 66. We often refer to the parent table as the upstream table and the child table as the downstream table. Other types of relationships between tables are also possible.

セキュリティモジュール520は、ユーザによるデータベース100内のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザ10により、本発明者らは、データベース100内のデータレコードに対するアクセスを試みる任意の人物又はエンティティを意味している。図1は、3人の特定のユーザ10a、10b、10cを示している。例えば、ユーザの役割(例えば、プロジェクトマネージャ、部署マネージャ、役員、又は別の役割)、ユーザの場所(例えば、北東部部門、西部部門、又は別の場所)、ユーザのセキュリティクリアランス(例えば、トップシークレット、シークレット、パブリック、又は別のクリアランス)、ユーザの部署(例えば、人事、技術、マーケティング、又は別の部署)、或いは、別の特性に基づいて、ユーザセキュリティコード18をそれぞれのユーザ10と関連付けることができる。ユーザ10が、データベース100内の特定のデータレコードに対するアクセスを要求した際に、セキュリティモジュール520は、ユーザのユーザセキュリティコード18とその特定のデータレコードのセキュリティラベルの間の比較に基づいて、ユーザ10による特定のデータレコードに対するアクセスが許容されているのか又は制限されているのかを判定する。ユーザのアクセス要求を受信する前に、特定のデータレコードのセキュリティラベルが既に算出されていることから、セキュリティモジュール520は、行のセキュリティラベルの判定という潜在的に演算集約的なプロセスの実行を必要とすることなしに、ユーザによるデータレコードに対するアクセスを制限する必要があるかどうかを迅速に判定することができる。 The security module 520 determines whether the user is allowed or restricted from accessing the data records in the database 100. By user 10, we mean any person or entity that attempts to access a data record in database 100. FIG. 1 shows three specific users 10a, 10b and 10c. For example, the user's role (eg, project manager, department manager, officer, or another role), the user's location (eg, northeastern, western, or another), user's security clearance (eg, top secret). , Secret, public, or another clearance), a user's department (eg, HR, technology, marketing, or another department), or associating a user security code 18 with each user 10 based on another characteristic. Can be done. When the user 10 requests access to a particular data record in the database 100, the security module 520 determines the user 10 based on a comparison between the user's user security code 18 and the security label of that particular data record. Determines whether access to a particular data record is allowed or restricted. Since the security label for a particular data record has already been calculated before receiving the user's access request, the security module 520 needs to perform a potentially computationally intensive process of determining the security label of the row. Without this, it is possible to quickly determine whether it is necessary to restrict access to the data record by the user.

データベース100に対するアクセスは、行ごとに制限することができる。例えば、テーブル内のそれぞれの行は、同一テーブル内のそれぞれのその他の行のセキュリティラベルとは独立した、データベース100内のその他のテーブル内のそれぞれの行のセキュリティラベルとは独立した、その独自の個別化されたセキュリティラベルを有することができる。行のセキュリティラベルは、1つ又は複数のコンポーネントを有する集約されたセキュリティラベルであってもよく、これらのコンポーネントのそれぞれは、行の内部の情報、行の外部の情報、テーブルに固有の情報、又はこれらのうちの任意の2つ以上のものの組合せに基づいて独立的に判定される。それぞれの行のセキュリティラベルは、行自体の内部のフィールド内において記憶することができる。データレコードのセキュリティラベルのそれぞれのコンポーネントは、データレコードに対するユーザアクセスの制限又はデータレコードに対するユーザアクセスの許可を表すことができる。セキュリティモジュール520は、特定のデータレコード内において記憶されているセキュリティラベルの1つ又は複数のコンポーネントが、特定のユーザセキュリティコード18を有するユーザによるその特定のデータレコードに対するアクセスを制限しているかどうかを判定することができる。 Access to database 100 can be restricted row by row. For example, each row in a table has its own, independent of the security label of each other row in the same table, independent of the security label of each row in the other table in database 100. It can have a personalized security label. The row security label may be an aggregated security label with one or more components, each of which is information inside the row, information outside the row, information unique to the table, Or, it is determined independently based on the combination of any two or more of these. The security label for each line can be stored in a field inside the line itself. Each component of the data record security label can represent a restriction on user access to the data record or a permission for user access to the data record. Security module 520 determines whether one or more components of the security label stored within a particular data record restrict access to that particular data record by a user with the particular user security code 18. Can be determined.

いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、データレコードの1つ又は複数の属性などのデータレコードの内部の情報に基づいて判定されている。データレコードの属性は、データレコードのフィールド内において記憶されている数値、ストリング、又は別のタイプの値などの値である。属性は、役割(後述する)、ユーザ、ユーザのグループ、ビジネスラベル、機能に対する入力、或いは、その他の情報などの情報を表すことができる。一例においては、データレコードの属性は、データレコードによって表されている企業部門の識別子であってもよく、データレコードのセキュリティラベルのコンポーネントは、企業部門の識別子に基づいて判定することができる。一例においては、データレコードの属性は、クリアランス値であってもよく、クリアランス値は、データレコードが、トップシークレット(TS)であるのか、シークレット(S)であるのか、或いは、パブリック(P)であるのか、を通知しており、データレコードのセキュリティラベルのコンポーネントは、クリアランス値に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの単一のコンポーネントは、データレコードによって表されている企業部門の識別子とデータレコードのクリアランス値の両方に基づいたものなどのように、複数の属性に基づいて判定することができる。いくつかの例においては、データレコードのセキュリティラベルの複数のコンポーネントは、それぞれ、対応した属性に基づいて判定することができる。 In some examples, the data record security label component is determined based on information inside the data record, such as one or more attributes of the data record. A data record attribute is a value, such as a number, string, or another type of value stored in a field of the data record. Attributes can represent information such as roles (discussed below), users, groups of users, business labels, inputs to features, or other information. In one example, the attribute of the data record may be the identifier of the enterprise sector represented by the data record, and the security label component of the data record can be determined based on the identifier of the enterprise sector. In one example, the attribute of the data record may be a clearance value, which is whether the data record is top secret (TS), secret (S), or public (P). It notifies whether it exists, and the component of the security label of the data record can be determined based on the clearance value. In some examples, a single component of a data record security label is based on both the corporate unit identifier represented by the data record and the data record clearance value, and so on. Can be determined based on. In some examples, multiple components of a data record security label can each be determined based on their corresponding attributes.

いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、同一のテーブル又は異なるテーブル内の関係したデータレコードのセキュリティラベルのコンポーネントなどのように、データレコードの外部の情報に基づいて判定されている。1つのテーブル内のデータレコードは、外部キー関係を通じて、同一のテーブル又は異なるテーブル内の行と関係付けることができる。外部キーとは、第2データレコードを一意に識別し、その結果、これにより、第1データレコードと第2データレコードの間のリンクを確立する第1データレコード内において記憶されている値である。第1及び第2データレコードは、同一のテーブル又は異なるテーブル内に存在していてもよい。本発明者らは、しばしば、例えば、外部キー関係又はその他のタイプの関係を通じて関係付けられている行を関係した行と呼称し、異なるテーブル内の関係した行内の情報に基づいたセキュリティラベルのコンポーネントの判定をセキュリティラベルのコンポーネントの継承と呼称している。一例において、子テーブル内のそれぞれのデータレコードは、プロジェクトを表しており、外部キー関係を介して、企業部門を表す親テーブル内のデータレコードに関係付けられている。プロジェクトテーブル内のそれぞれのデータレコードは、企業部門テーブル内の関係付けられているデータレコードのセキュリティラベルの対応したコンポーネントから、そのセキュリティラベルのコンポーネントを継承している。セキュリティラベルの継承により、高度なアクセス制限を相対的に低いレベルのテーブルに伝播させることができる。例えば、セキュリティラベルの継承によれば、ユーザによる企業部門テーブル内の技術部門を表すデータレコードに対するアクセスが制限されている場合には、技術部門に関係したプロジェクトテーブル内のプロジェクトデータレコードを表す任意のデータレコードに対するユーザによるアクセスも、制限されることになる。 In some examples, the data record security label component is determined based on information outside the data record, such as the data record security label component in the same table or related data records in different tables. There is. Data records in one table can be associated with rows in the same table or different tables through foreign key relationships. A foreign key is a value stored in a first data record that uniquely identifies the second data record and thus establishes a link between the first and second data records. .. The first and second data records may exist in the same table or in different tables. We often refer to rows that are related through, for example, foreign key relationships or other types of relationships as related rows, and are components of security labels based on the information in the related rows in different tables. The judgment of is called inheritance of the component of the security label. In one example, each data record in the child table represents a project and is associated with a data record in the parent table that represents a corporate unit via a foreign key relationship. Each data record in the project table inherits the security label component from the corresponding component of the associated data record security label in the enterprise department table. Security label inheritance allows high access restrictions to be propagated to relatively low level tables. For example, security label inheritance restricts users from accessing data records that represent technical departments in the corporate department table, and can represent any project data records in the technical department-related project table. User access to data records will also be restricted.

いくつかの例においては、データレコードのセキュリティラベルのコンポーネントは、所与のテーブルに属するすべてのデータレコードについて一定である。例えば、所与のテーブル内のすべてのデータレコードが、セキュリティラベルのコンポーネントとして、一定の値を有することが可能であり、この一定の値は、そのテーブルの属性である。一例においては、従業員の給料を表すデータレコードを含むテーブル内において、すべてのデータレコードが、セキュリティラベルの「コンフィデンシャル」コンポーネントを有することができる。 In some examples, the data record security label component is constant for all data records that belong to a given table. For example, all data records in a given table can have a constant value as a component of the security label, and this constant value is an attribute of that table. In one example, within a table that contains data records that represent employee salaries, all data records can have a "confidential" component of the security label.

行のセキュリティラベルのコンポーネントは、複数のその他の行から継承された値に基づいたものであってもよい。いくつかの例においては、行のセキュリティラベルのコンポーネントを形成するべく、その他の行から取得された複数の値が連結されている。複数の値は、アルファベット順により、番号順により、行とそれぞれのその他の行の間の関係に基づいた順序により、或いは、別の順序により、連結することができる。いくつかの例においては、複数の値は、順序付けされた又は階層的なリストの一部分であってもよく、複数の値の中の単一の最高優先順位値のみが、行のセキュリティラベルのコンポーネントとして使用されている。例えば、1つの関係した行が、高優先順位値(例えば、「TS」)を有するコンポーネントを有し、別の関係した行が、相対的に小さな優先順位値(例えば、「S」)を有する場合には、これらの2つの行に基づいた継承されたコンポーネントは、高優先順位値(「TS」)を引き継ぐことになる。 The row security label component may be based on values inherited from multiple other rows. In some examples, multiple values retrieved from other rows are concatenated to form a component of the row's security label. Multiple values can be concatenated in alphabetical order, in numerical order, in a relationship-based order between rows and each other row, or in a different order. In some examples, the values may be part of an ordered or hierarchical list, and only a single highest priority value among the values is a component of the row security label. It is used as. For example, one related row has a component with a high priority value (eg, "TS") and another related row has a relatively small priority value (eg, "S"). In some cases, the inherited component based on these two rows will inherit the high priority value (“TS”).

行のセキュリティラベルのコンポーネントは、複数の要素に基づいたものであってもよい。一例において、行のセキュリティラベルのコンポーネントは、行の属性及び関係した行から継承された値の両方に基づいたものであってもよい。セキュリティラベルのコンポーネントは、属性と継承された値の連結であってもよく、属性と継承された値の中の相対的に高優先順位の値を引き継ぐことも可能であり、或いは、別の方法で組み合わせることもできる。 The row security label component may be based on multiple elements. In one example, a row security label component may be based on both row attributes and values inherited from the associated row. The security label component may be a concatenation of the attribute and the inherited value, it can also inherit the relatively high priority value of the attribute and the inherited value, or otherwise. You can also combine with.

行のセキュリティラベルは、複数のコンポーネントを有することが可能であり(しばしば、集約されたセキュリティラベルと呼称される)、この場合に、それぞれのコンポーネントは、互いのコンポーネントとは独立的に判定されている。行のセキュリティラベルは、行の属性、継承によって判定された1つ又は複数のコンポーネント、テーブルに固有の情報に基づいて判定された1つ又は複数のコンポーネント、或いは、これらのものの任意の2つ以上の組合せに基づいて判定された1つ又は複数のコンポーネントを含むことができる。 A row's security label can have multiple components (often referred to as aggregated security labels), in which case each component is determined independently of each other's components. There is. A row security label can be a row attribute, one or more components determined by inheritance, one or more components determined based on information specific to a table, or any two or more of these. It can include one or more components determined based on the combination of.

いくつかの外部キー関係は、ヌル可能であってもよく、これは、エラーを生成することなしに外部キーがデータレコードについて欠落しうることを意味している。セキュリティラベルのコンポーネントが、ヌル可能な外部キーを介して継承によって判定される際には、そのコンポーネントの既定の選択肢を規定することができる。既定の選択肢は、既定値をセキュリティラベルのコンポーネントに割り当てるというものであってもよく、外部キー関係を無視することにより、セキュリティラベルのコンポーネントをブランク状態において残すというものであってもよく、或いは、その他の要因に基づいてコンポーネントの値を判定するというものであってよい。いくつかの外部キー関係は、ヌル可能でなくてもよく、これは、外部キーの値が存在しない場合にエラーが結果的に生成されることを意味している。セキュリティラベルのコンポーネントが、ヌル可能ではない外部キーを介して継承によって判定される際には、既定値は、規定されない。 Some foreign key relationships may be nullable, which means that the foreign key can be missing for a data record without generating an error. When a security label component is determined by inheritance via a nullable foreign key, it can specify a default choice for that component. The default option may be to assign a default value to the security label component, or to leave the security label component blank by ignoring the foreign key relationship, or The value of the component may be determined based on other factors. Some foreign key relationships do not have to be nullable, which means that an error will result if the foreign key value does not exist. No default value is specified when a security label component is determined by inheritance via a non-nullable foreign key.

1つ又は複数のテーブルに固有の規則は、セキュリティラベルのそれぞれのコンポーネントがテーブル内のそれぞれのレコードごとに判定される方式を規定している。テーブルに固有の規則は、テーブル内のそれぞれのデータレコードのセキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定の際に使用される属性、外部キー、及び定数のうちの1つ又は複数を規定することができる。テーブルに固有の規則は、複数の値を連結するのか、階層的な又は順序付けられたリストとして取り扱うのか、或いは、その他の方法で処理するのかを規定することができる。テーブルに固有の規則は、外部キー関係がヌルである場合の既定値を規定することができる。また、その他の規則を規定することもできる。 The rules specific to one or more tables specify how each component of a security label is determined for each record in the table. A table-specific rule is one or more of the attributes, foreign keys, and constants used to determine the security label component for each component of the security label for each data record in the table. Can be specified. Table-specific rules can specify whether to concatenate multiple values, treat them as a hierarchical or ordered list, or treat them in some other way. Table-specific rules can specify default values when foreign key relationships are null. Other rules can also be specified.

いくつかの例においては、セキュリティラベルのコンポーネントを単純化するべく、ルックアップテーブルなどの変換テーブルを使用することができる。変換テーブルは、値の組又は値の組合せのそれぞれを値の別の組の対応した値にマッピングしている。変換テーブルは、例えば、セキュリティラベルの単一のコンポーネントが、多数の連結された値を含みうる場合などに、有用でありうる。このようなコンポーネントは、複雑且つ不恰好なものになる可能性がある。変換テーブルは、連結された値のそれぞれの可能な組合せを単一の値などの相対的に単純な表現にマッピングすることが可能であり、この単一の値は、セキュリティラベル内において代替値として使用することができる。 In some examples, translation tables, such as look-up tables, can be used to simplify the security label component. The conversion table maps each set of values or combination of values to the corresponding value of another set of values. A translation table can be useful, for example, when a single component of a security label can contain many concatenated values. Such components can be complex and awkward. The translation table can map each possible combination of concatenated values to a relatively simple representation, such as a single value, which is an alternative value within the security label. Can be used.

いくつかの例においては、データレコードのセキュリティラベルは、データレコードがデータベース100に入力される際に判定されている。いくつかの例においては、データレコードのセキュリティラベルの1つ又は複数のコンポーネントは、データレコードのセキュリティラベルのコンポーネントの変化を生成しうる変更がデータレコードに対して又は関係したデータレコードに対して実施された際に、更新されている。例えば、データレコードの属性が変更された際に、属性に基づいて判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーが変更された際には、その外部キーを介して継承によって判定されたセキュリティラベルのコンポーネントを更新することができる。外部キーを介して下流のデータレコードに関係付けられた上流のデータレコードに対して変更が実施された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。下流のデータレコードに外部キーを介して関係付けられた上流のデータレコードが削除された際には、その外部キーを介して継承によって判定された下流のデータレコードのセキュリティラベルのコンポーネントを更新することができる。また、その他の状況も、データレコードのセキュリティラベルの更新をトリガすることができる。 In some examples, the security label of the data record is determined when the data record is entered into the database 100. In some examples, one or more components of a data record security label make changes to the data record or related data records that can cause changes to the components of the data record security label. It was updated when it was done. For example, when the attributes of a data record are changed, the security label component determined based on the attributes can be updated. When the foreign key is changed, the security label component determined by inheritance can be updated through the foreign key. When a change is made to an upstream data record associated with a downstream data record via a foreign key, the security label component of the downstream data record determined by inheritance through that foreign key. Can be updated. When an upstream data record associated with a downstream data record via a foreign key is deleted, the security label component of the downstream data record determined by inheritance via that foreign key should be updated. Can be done. Other situations can also trigger a data record security label update.

行のセキュリティラベルを使用することにより、行に対するアクセスを制限することができる。データベースシステムのそれぞれのユーザは、ユーザセキュリティコードを有しており、ユーザセキュリティコードは、データベース内のデータレコードのセキュリティラベルと同一のコンポーネントを含むことができる。ユーザが行に対するアクセスを試みた際に、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、行のセキュリティラベルの対応したコンポーネントと比較される。コンポーネントのいずれかがユーザによる行に対するアクセスを禁止している場合には、ユーザによる行に対するアクセスが制限される。 Access to a row can be restricted by using the row security label. Each user of the database system has a user security code, which can include the same component as the security label of the data record in the database. When a user attempts to access a row, each component of the user's user security code is compared to the corresponding component of the row's security label. If any of the components prohibit the user from accessing the row, the user's access to the row is restricted.

いくつかの例において、行のセキュリティラベルのコンポーネントは、1つ又は複数の値を連結することによって形成されている。そのセキュリティラベルが、ユーザのユーザセキュリティコードには含まれていない1つ又は複数の値を含んでいる行に対するユーザによるアクセスは、制限される。例えば、特定の行は、連結された値「A,B,C」を含むコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「A,B」を含んでいるユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、対応したコンポーネントの値「A,B,C,D」を含んでいるユーザによるこの行に対するアクセスは、許容されてもよい。 In some examples, the row security label component is formed by concatenating one or more values. User access to lines whose security label contains one or more values that are not included in the user's user security code is restricted. For example, a particular row may have a security label with components containing the concatenated values "A, B, C". Access to this line by users whose user security code contains the corresponding component values "A, B" is restricted. Depending on the result of the comparison between each other component of the user security code and the corresponding component of the row security label, the user security code contains the corresponding component values "A, B, C, D". Access to this row by the existing user may be allowed.

いくつかの例においては、行のセキュリティラベルのコンポーネントを形成しうる値は、順序付けされた又は階層的なリストの一部分である。ユーザのユーザセキュリティコードの対応したコンポーネントの所与の値を有するユーザによるユーザの値よりも大きな優先順位値を有するすべての行に対するアクセスは、制限される。例えば、セキュリティラベルのコンポーネント値は、順序付けされたリスト「TS」、「S」、「P」から選択されてもよく、この場合に、「TS」は、最高優先順位値であり、「P」は、最低優先順位値である。特定の行は、値「S」を有するコンポーネントを有するセキュリティラベルを有してもよい。そのユーザセキュリティコードが、対応したコンポーネントの値「P」を有しているユーザによるこの行に対するアクセスは、制限される。ユーザセキュリティコードのそれぞれのその他のコンポーネントと行のセキュリティラベルの対応したコンポーネントの間の比較の結果に応じて、そのユーザセキュリティコードが、値「TS」又は「S」を有しているユーザによるこの行に対するアクセスは、許容されてもよい。 In some examples, the values that can form a component of a row's security label are part of an ordered or hierarchical list. Access to all rows with a priority value greater than the user's value by the user with the given value of the corresponding component of the user's user security code is restricted. For example, the security label component value may be selected from the ordered list "TS", "S", "P", where "TS" is the highest priority value and "P". Is the lowest priority value. A particular row may have a security label with a component having the value "S". Access to this line by users whose user security code has the corresponding component value "P" is restricted. This by a user whose user security code has the value "TS" or "S", depending on the result of a comparison between each other component of the user security code and the corresponding component of the row security label. Access to the row may be allowed.

いくつかの例においては、ユーザ10のユーザセキュリティコード18のコンポーネントのうちの1つ又は複数は、ユーザの役割に基づいたものであってもよい。役割により、本発明者らは、職位、責任の組、その他の者との関係における地位、又は別のタイプの地位などのユーザによって保持されている地位を意味している。例示用の役割は、役員の役割、管理的な役割、専門スタッフの役割、サポートの役割、又はその他の役割を含むことができる。例えば、図1の例におけるように、部門役員10a、生産労働者10b、及び部署マネージャ10cは、それぞれ、ユーザセキュリティコード18の1つ又は複数のコンポーネントのそれぞれごとに会社内のそれぞれのユーザの役割に基づいた異なる値を有する。 In some examples, one or more of the components of user security code 18 for user 10 may be based on the user's role. By role, we mean a position held by a user, such as a position, a set of responsibilities, a position in a relationship with another person, or another type of position. Illustrative roles can include officer roles, administrative roles, professional staff roles, support roles, or other roles. For example, as in the example of FIG. 1, the department officer 10a, the production worker 10b, and the department manager 10c each play the role of each user in the company for each one or more components of the user security code 18. Has different values based on.

いくつかの例においては、第1役割は、1つ又は複数のその他の役割を意味することが可能であり、これは、ユーザに第1役割が割り当てられる場合に、そのユーザには、1つ又は複数のその他の役割も、自動的に割り当てられることを意味している。また、その結果、ユーザは、それらの1つ又は複数のその他の役割について、任意のユーザセキュリティコードと関連付けられることになる。例えば、部門役員の役割は、部署マネージャの役割を意味することができる。この結果、部門役員の役割を有する任意のユーザ(例えば、ユーザ10a)には、部署マネージャの役割を自動的に割り当てることが可能であり、従って、部署マネージャの役割用の任意のユーザセキュリティコードと関連付けることができる。 In some examples, the first role can mean one or more other roles, which is one for a user when the first role is assigned to that user. Or several other roles are also meant to be assigned automatically. As a result, the user will be associated with any user security code for one or more of those other roles. For example, the role of a department officer can mean the role of a department manager. As a result, any user with the role of department officer (eg, user 10a) can be automatically assigned the role of department manager, and thus with any user security code for the role of department manager. Can be associated.

図2Aを参照すれば、例示用のデータベースシステム950内のエントリは、2つの別個のコンポーネントを有するセキュリティラベルを有する。データベースシステム950は、Very Special Deliveries, Inc.によって管理されているそれぞれの配送の配送元、配送先、及び輸送の手段を表すデータを記憶している。データベースシステム950は、外部キーによって階層的な関係において関係付けられた複数のテーブルを含む。配送テーブル910内のデータレコードは、それぞれの配送の配送元、配送先、輸送の手段、及びスポンサーを表すデータを記憶している。配送テーブル910内のそれぞれのレコード内の配送元及び配送先フィールドは、それぞれ、外部キー関係によってサイトテーブル920内のレコードに関係付けられており、サイトテーブル内のレコードは、それぞれ、外部キー関係によって領域テーブル930内のレコードに関係付けられている。配送テーブル910内のそれぞれのレコード内の輸送フィールドは、外部キー関係によって輸送テーブル940に関係付けられている。配送テーブル910内のそれぞれのレコード内のスポンサーフィールドは、外部キー関係によってスポンサーテーブル960に関係付けられている。この例においては、セキュリティに関与するフィールドのみが示されている。データレコードは、セキュリティラベルの判定に関与しないと共に図2Aには示されていない更なる属性、外部キー、又はこれらの両方を有することができる。 With reference to FIG. 2A, the entry in the exemplary database system 950 has a security label with two separate components. The database system 950 stores data representing the delivery source, delivery destination, and means of transportation of each delivery managed by Very Special Deliveries, Inc. The database system 950 includes a plurality of tables associated in a hierarchical relationship by foreign keys. The data record in the delivery table 910 stores data representing the delivery source, delivery destination, means of transportation, and sponsor of each delivery. The source and destination fields in each record in the delivery table 910 are associated with the records in the site table 920 by foreign key relationships, and the records in the site table are associated with the records in the site table, respectively, by foreign key relationships. It is associated with the records in the region table 930. The transport fields in each record in the delivery table 910 are associated with the transport table 940 by a foreign key relationship. The sponsor field in each record in the delivery table 910 is associated with the sponsor table 960 by a foreign key relationship. In this example, only the fields involved in security are shown. The data record may have additional attributes, foreign keys, or both that are not involved in the determination of the security label and are not shown in FIG. 2A.

データベースシステム950内における許可は、(分類:場所という形態において表現される)分類コンポーネントと場所コンポーネントという2つの別個の独立的なコンポーネントを有する集約されたセキュリティラベルによって制約されている。この例においては、分類コンポーネントは、低優先順位値(U)及び高優先順位値(S)を有する順序付けされたリストから選択された単一の値を引き継いでいる。場所コンポーネントは、1つ又は複数の値(NA又はEU)を引き継ぐことが可能であり、場所コンポーネントが複数の値を含んでいる場合には、値は、アルファベット順のリスト内において連結される。 Permissions within the database system 950 are constrained by an aggregated security label that has two separate and independent components, the classification component (represented in the form of classification: location) and the location component. In this example, the classification component inherits a single value selected from an ordered list with a low priority value (U) and a high priority value (S). The location component can inherit one or more values (NA or EU), and if the location component contains multiple values, the values are concatenated in an alphabetical list.

輸送テーブル940内においては、それぞれのレコードのセキュリティラベルの分類コンポーネントが、レコードの「分類」属性に基づいて判定されている。「分類」属性が「U」である場合には、セキュリティラベルの分類コンポーネントは、値「U」を引き継ぎ、「分類」属性が「S」である場合には、セキュリティラベルの分類コンポーネントは、値「S」を引き継ぐことになる。輸送テーブル940内のレコードは、セキュリティラベルの場所コンポーネントの値を有してはいない。輸送テーブル940のセキュリティラベルの判定は、例えば、「分類」フィールド内の値が、輸送テーブル940内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 Within the transport table 940, the security label classification component of each record is determined based on the "classification" attribute of the record. If the "Classification" attribute is "U", the security label classification component inherits the value "U", and if the "Classification" attribute is "S", the security label classification component is the value. It will take over the "S". The record in transport table 940 does not have the value of the location component of the security label. The security label determination of transport table 940 is a security module, such as a code that notifies that the value in the Classification field should be included in the security label classification component of the data record in transport table 940. It can be implemented by the code executed by 520.

領域テーブル930内においては、それぞれのレコードのセキュリティラベルの場所コンポーネントが、レコードの「領域_コード」属性に基づいて判定されている。「領域_コード」属性が「NA」である場合には、セキュリティラベルの場所コンポーネントは、値「NA」を引き継ぎ、「領域_コード」属性が「EU」である場合には、セキュリティラベルの場所コンポーネントは、値「EU」を引き継ぐことになる。領域テーブル930内のレコードは、セキュリティラベルの分類コンポーネントの値を有してはいない。領域テーブル930のセキュリティラベルの判定は、例えば、「領域_コード」フィールド内の値が、領域テーブル930内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 Within the region table 930, the location component of the security label for each record is determined based on the "region_code" attribute of the record. If the "Area_Code" attribute is "NA", the security label location component inherits the value "NA", and if the "Area_Code" attribute is "EU", the security label location The component will inherit the value "EU". The record in the region table 930 does not have the value of the security label classification component. The determination of the security label of the area table 930 is such that the value in the "area_code" field needs to be included in the security label classification component of the data record in the area table 930. It can be implemented by code executed by security module 520.

スポンサーテーブル960内のすべてのレコードのセキュリティラベルの分類コンポーネントは、値「S」を引き継いでいる。値「S」は、レコードの属性又はレコードの外部キー関係とは無関係に、スポンサーテーブル960内のすべてのレコードに適用されるテーブルに固有の定数である。スポンサーテーブル960のセキュリティラベルの判定は、例えば、値「S」が、スポンサーテーブル960内のデータレコードのセキュリティラベルの分類コンポーネントに常に含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 The security label classification component of all records in the sponsor table 960 inherits the value "S". The value "S" is a table-specific constant that applies to all records in the sponsor table 960, regardless of the record's attributes or the record's foreign key relationships. The determination of the security label in the sponsor table 960 is made by the security module 520, for example, a code informing that the value "S" must always be included in the security label classification component of the data record in the sponsor table 960. It can be implemented by the code that is executed.

サイトテーブル920内のレコードは、セキュリティラベルの分類コンポーネント及び場所コンポーネントの両方を有する。それぞれのレコードのセキュリティラベルの分類コンポーネントは、レコードの「分類」属性に基づいて判定されている。サイトテーブル920内のそれぞれのデータレコードの分類コンポーネントの判定は、例えば、「分類」フィールド内の値が、サイトテーブル920内のデータレコードのセキュリティラベルの分類コンポーネントに含まれる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 The record in site table 920 has both a security label classification component and a location component. The security label classification component for each record is determined based on the record's "classification" attribute. The determination of the classification component of each data record in the site table 920 informs, for example, that the value in the "classification" field must be included in the security label classification component of the data record in the site table 920. It can be implemented by code executed by security module 520, such as code.

サイトテーブル920内のそれぞれのレコードのセキュリティラベルの場所コンポーネントは、継承によって判定されている。サイトテーブル920内のそれぞれのレコードは、「領域」フィールド内の値を通じて、外部キー関係を介して、領域テーブル930内のレコードと関係付けられている。それぞれのサイトレコードは、関係した領域レコードのセキュリティラベルの場所コンポーネントから、そのセキュリティラベルの場所コンポーネントを継承している。例えば、New York、Chicago、及びWhite Sandsというサイトレコードは、北米領域レコードから、「NA」という場所コンポーネントを継承しており、Londonサイトレコードは、欧州領域レコードから「EU」という場所コンポーネントを継承している。サイトテーブル920内のそれぞれのデータレコードの場所コンポーネントの判定は、例えば、領域テーブル930に対する外部キーが尊重される必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 The location component of the security label for each record in site table 920 is determined by inheritance. Each record in the site table 920 is associated with a record in the region table 930 via a foreign key relationship through a value in the "region" field. Each site record inherits its security label location component from the security label location component of the associated region record. For example, the New York, Chicago, and White Sands site records inherit a location component called "NA" from the North American region record, and the London site record inherits a location component called "EU" from the European region record. ing. The determination of the location component of each data record in site table 920 is implemented by code executed by security module 520, for example, code notifying that foreign keys to region table 930 need to be respected. can do.

領域テーブル930に対する外部キー関係は、ヌル可能であり、これは、「領域」フィールドが、エラーを生成することなしに、ブランクでありうることを意味している。この例においては、外部キー関係が、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「領域」フィールド内に値が存在していない場合)、セキュリティラベルは、既定で、分類コンポーネント内においては、「S」となり、場所コンポーネント内においては、値なしとなるように、判定される。「S」は、分類コンポーネントの高優先順位値であることから、この既定値は、分類コンポーネントが、データレコードの分類属性の値とは無関係に、値「S」を引き継ぐことになることを保証している。ヌル可能な外部キーの既定の動作は、例えば、領域テーブル930に対する外部キー関係がヌルである場合にセキュリティラベルが「S:−」となる必要があることを通知するコードなどの、セキュリティモジュール520によって実行されるコードにより、実装することができる。 The foreign key relationship to the region table 930 is nullable, which means that the region field can be blank without generating an error. In this example, if the foreign key relationship is null for a given data record (for example, if no value exists in the "area" field of that data record), the security label defaults. , It is determined that it is "S" in the classification component and has no value in the location component. Since "S" is the high priority value of the classification component, this default value ensures that the classification component will inherit the value "S" regardless of the value of the classification attribute of the data record. doing. The default behavior of a nullable foreign key is the security module 520, for example, a code that notifies that the security label should be "S:-" if the foreign key relationship to the region table 930 is null. It can be implemented by the code executed by.

配送テーブル910内のデータレコードのセキュリティラベルの分類コンポーネント及び場所コンポーネントは、いずれも、継承により、判定されている。配送テーブル910内のそれぞれのレコードは、外部キー関係を介して、その他のテーブル内の1つ又は複数のその他のレコードに関係付けられており、これには、サイトテーブル920(外部キーとしての「配送元」及び「配送先」フィールドを介したもの)、輸送テーブル940(外部キーとしての「輸送」フィールドを介したもの)、及びスポンサーテーブル960(外部キーとしての「スポンサー」フィールドを介したもの)が含まれる。 The security label classification component and location component of the data record in the delivery table 910 are both determined by inheritance. Each record in the delivery table 910 is associated with one or more other records in the other table via a foreign key relationship, which includes site table 920 ("as a foreign key". Through the "source" and "destination" fields), the transport table 940 (via the "transport" field as a foreign key), and the sponsor table 960 (via the "sponsor" field as a foreign key). ) Is included.

分類コンポーネントは、「U」が低優先順位値であると共に「S」が高優先順位値である順序付けされたリストに基づいて、単一の値を引き継いでいる。所与のデータレコードの分類コンポーネントには、関係したデータレコードのそれぞれ内の分類コンポーネントの最高優先順位値である値が割り当てられる。従って、所与のデータレコードにおいて、関係したデータレコードのいずれかが、「S」の値を有する分類コンポーネントを有する場合には、所与のデータレコードには、分類コンポーネントについて「S」の値が割り当てられる。 The classification component inherits a single value based on an ordered list where "U" is the low priority value and "S" is the high priority value. The classification component of a given data record is assigned a value that is the highest priority value of the classification component within each of the related data records. Thus, in a given data record, if any of the related data records has a classification component with a value of "S", then the given data record has a value of "S" for the classification component. Assigned.

場所コンポーネントは、関係したデータレコードの場所コンポーネントの値のすべてをアルファベット順に連結された状態において引き継いでいる。従って、所与のデータレコードにおいて、関係したデータレコードの1つが、「NA」の値を有する場所コンポーネントを有し、関係したデータレコードの別のものが、「EU」の値を有する場所コンポーネントを有している場合には、所与のデータレコードには、場所コンポーネントについて「EU,NA」の値が割り当てられる。 The location component inherits all of the values of the location component of the related data record in an alphabetically concatenated state. Thus, in a given data record, one of the relevant data records has a location component with a value of "NA" and another of the relevant data records has a location component with a value of "EU". If so, a given data record is assigned a value of "EU, NA" for the location component.

この例においては、輸送テーブル940及びスポンサーテーブル960に対する外部キーは、ヌル可能である。それぞれのヌル可能な外部キーごとに、既定値が提供される。輸送テーブル940に対する外部キーが、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「輸送」フィールドにおいて値が存在していない場合)、セキュリティラベルは、既定で、分類コンポーネントにおいては、「S」となり、場所コンポーネントにおいては、値なしとなるように、判定される。サイトテーブル920に対する外部キーは、ヌル可能ではない。サイトテーブル920に対する外部キーが、所与のデータレコードについてヌルである場合には(例えば、そのデータレコードの「配送元」又は「配送先」フィールドにおいて値が存在していない場合)、エラーが発生する。 In this example, the foreign keys for transport table 940 and sponsor table 960 are nullable. A default value is provided for each nullable foreign key. If the foreign key to transport table 940 is null for a given data record (for example, if no value exists in the Transport field for that data record), the security label defaults to the classification component. Is "S", and in the location component, it is determined that there is no value. Foreign keys for site table 920 are not nullable. An error occurs if the foreign key to site table 920 is null for a given data record (for example, if no value exists in the "source" or "destination" field of that data record). To do.

配送テーブル910内のそれぞれのデータレコードのセキュリティラベルの判定は、以下のように、尊重されるべきそれぞれの外部キー関係を識別すると共にヌルの取扱いを規定するセキュリティモジュール520によって実行されるコードにより、実装することができる。
配送元サイトに対するFKを尊重する(ヌル可能ではない)
配送先サイトに対するFKを尊重する(ヌル可能ではない)
輸送に対するFKを尊重する(ヌルである場合には、「S:−」を使用する)
スポンサーに対するFKを尊重する(ヌルである場合には、無視する)
The determination of the security label of each data record in the delivery table 910 is made by the code executed by the security module 520 that identifies each foreign key relationship that should be respected and specifies the handling of nulls, as follows: Can be implemented.
Respect FK for delivery source site (not nullable)
Respect FK for delivery site (not nullable)
Respect FK for transportation (use "S:-" if null)
Respect FK for sponsors (ignore if null)

具体的には、D1配送レコードの分類コンポーネントは、関係したレコードの分類コンポーネントであるNew York(「U」)、Chicago(「U」)、及び飛行機(「U」)の中における最高優先順位値として割り当てられる。「スポンサー」フィールドは、ヌルであり、従って、スポンサーテーブル960に対する外部キー関係は、無視される。従って、D1レコードの分類コンポーネントには、値「U」が割り当てられる。D1配送レコードの場所コンポーネントは、New York(「NA」)及びChicago(「NA」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。場所コンポーネントの値は、すべての関係したレコードについて同一であることから、連結は、不要であり、D1配送レコードの場所コンポーネントには、値「NA」が割り当てられる。D1配送レコードの集約されたセキュリティラベルは、「U:NA」である。 Specifically, the D1 delivery record classification component is the highest priority value among the related record classification components New York (“U”), Chicago (“U”), and Airplane (“U”). Assigned as. The "Sponsor" field is null, so foreign key relationships to the sponsor table 960 are ignored. Therefore, the value "U" is assigned to the classification component of the D1 record. The location component of the D1 delivery record is determined by concatenating the separate values of each of the related record location components New York (“NA”) and Chicago (“NA”). Concatenation is not required because the value of the location component is the same for all related records, and the location component of the D1 delivery record is assigned the value "NA". The aggregated security label for D1 delivery records is "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」である。 The D2 delivery record classification component is assigned as the highest priority value among the related record classification components New York (“U”), White Sands (“S”), and Airplane (“U”). The "Sponsor" field is null, so foreign key relationships to the sponsor table 960 are ignored. “S” is a higher priority value than “U” and therefore the classification component of the D2 record is assigned the value “S”. The location component of the D2 delivery record is determined by concatenating the separate values of the associated record location components New York (“NA”) and White Sands (“NA”). Therefore, the aggregated label of the D2 delivery record is "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」である。 The D3 delivery record classification component is assigned as the highest priority value among the related record classification components New York (“U”), London (“U”), and Airplane (“U”). The "Sponsor" field is null, so foreign key relationships to the sponsor table 960 are ignored. Therefore, the classification component of D3 is assigned the value "U". The location component of the D3 delivery record is determined by concatenating the separate values of the associated record location components New York (“NA”) and London (“EU”). By concatenating the two location component values in alphabetical order, the location component value of the D3 delivery record "EU, NA" is formed. Therefore, the aggregated label of the D3 delivery record is "U: EU, NA". Similarly, the aggregated label of the D4 delivery record is "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」である。 The D5 delivery record classification component is assigned as the highest priority value among the related record classification components New York (“U”), London (“U”), and submarines (“S”). The "Sponsor" field is null, so foreign key relationships to the sponsor table 960 are ignored. “S” is a higher priority value than “U” and therefore the classification component of the D5 record is assigned the value “S”. The location component of the D5 delivery record is determined by concatenating the separate values of the associated record location components New York (“NA”) and London (“EU”). Therefore, the aggregated label of the D3 delivery record is "S: EU, NA".

D6配送レコードは、輸送フィールドについて、ヌル外部キー関係を有しており、従って、D6レコードの分類コンポーネントは、関係したレコードの分類コンポーネントの値とは無関係に、既定で「S」である。D6配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D6配送レコードの集約されたラベルは、「S:EU,NA」である。 The D6 delivery record has a null foreign key relationship for the transport field, so the D6 record classification component is "S" by default, regardless of the value of the related record classification component. The location component of the D6 delivery record is determined by concatenating the separate values of each of the related record location components New York (“NA”) and London (“EU”). Therefore, the aggregated label of the D6 delivery record is "S: EU, NA".

D7配送レコードの分類コンポーネントは、New York(「U」)、London(「U」)、飛行機(「U」)、及びスポンサー(「S」)という分類コンポーネントを有する関係したレコード内の最高優先順位分類コンポーネント値を選択することにより、判定される。従って、D7の分類コンポーネントには、値「S」が割り当てられる。D7配送レコードの場所コンポーネントは、New York(「NA」)及びLondon(「EU」)という関係したレコードの場所コンポーネントのそれぞれの別個の値を連結することにより、判定される。従って、D7配送レコードの集約されたラベルは、「S:EU,NA」である。 The D7 delivery record classification component has the highest priority within the relevant records with the classification components New York (“U”), London (“U”), Airplane (“U”), and Sponsor (“S”). Determined by selecting a classification component value. Therefore, the classification component of D7 is assigned the value "S". The location component of the D7 delivery record is determined by concatenating the separate values of the associated record location components New York (“NA”) and London (“EU”). Therefore, the aggregated label of the D7 delivery record is "S: EU, NA".

図2Bを参照すれば、図2Aに示されているデータベースシステム950のそれぞれのユーザは、(分類:場所という形態において表現される)分類コンポーネントと場所コンポーネントという2つの別個の独立したコンポーネントを有するユーザセキュリティコードを有する。ユーザがデータベースシステム950内のデータレコードに対するアクセスを試みた際には、ユーザのユーザセキュリティコードの分類コンポーネントの値が、データレコードのセキュリティラベルの分類コンポーネントの値と比較され、ユーザのユーザセキュリティコードの場所コンポーネントの値が、データレコードのセキュリティラベルの場所コンポーネントの値と比較される。分類コンポーネント又は場所コンポーネントが、ユーザによる行に対するアクセスを禁止している場合には、ユーザによるその行に対するアクセスが制限される。 Referring to FIG. 2B, each user of the database system 950 shown in FIG. 2A has two separate independent components (represented in the form of classification: location), a classification component and a location component. Have a security code. When a user attempts to access a data record in the database system 950, the value of the user's user security code classification component is compared to the value of the data record security label classification component of the user's user security code. The value of the location component is compared to the value of the location component in the security label of the data record. If the classification or location component prohibits the user from accessing the row, the user's access to the row is restricted.

ユーザセキュリティコードの分類コンポーネント及び場所コンポーネントは、それぞれ、データレコードのセキュリティラベルの、それぞれ、分類コンポーネント及び場所コンポーネントにとって利用可能な同一の値を引き継いでいる。例えば、ユーザセキュリティコードの分類コンポーネントには、「S」という高優先順位値又は「U」という低優先順位値を割り当てることができる。ユーザセキュリティコードの場所コンポーネントには、「NA」、「EU」、又は「NA,EU」を割り当てることができる。 The user security code classification and location components each inherit the same values available for the classification and location components of the data record security label, respectively. For example, a user security code classification component can be assigned a high priority value of "S" or a low priority value of "U". The location component of the user security code can be assigned "NA", "EU", or "NA, EU".

ユーザのユーザセキュリティコードの分類コンポーネントが値「U」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値とは無関係に、そのセキュリティラベルが、相対的に大きな分類コンポーネントの優先順位値(例えば、「S」)を有するすべてのデータレコードに対するユーザによるアクセスが制限される。ユーザのユーザセキュリティコードの分類コンポーネントが値「S」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの場所コンポーネントの値に応じて、そのセキュリティラベルの分類コンポーネントについて「U」又は「S」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。データレコードのセキュリティラベルの分類コンポーネントがブランクである場合には、分類コンポーネントによって課される制限は存在しておらず、データレコードに対するユーザアクセスは、場所コンポーネントによって制御される。 If the user's user security code classification component has the value "U", then the security label of the user security code and the security label of the data record is of a relatively large classification component, regardless of the value of the component. User access to all data records with a priority value (eg, "S") is restricted. If the user's user security code classification component has the value "S", then the security label classification component is "U" or "S", depending on the value of the user security code and the security label location component of the data record. User access to the data record with "" may be allowed. If the data record security label classification component is blank, there are no restrictions imposed by the classification component and user access to the data record is controlled by the location component.

ユーザのユーザセキュリティコードの場所コンポーネントが、値「NA」を有する場合には、そのセキュリティラベルが「NA」以外の任意の値を有する場所コンポーネントを有するすべてのデータレコードに対するユーザによるアクセスが制限される。従って、例えば、そのセキュリティラベルが、値「EU」又は「EU,NA」を有する場所コンポーネントを有するデータレコードに対するそのユーザによるアクセスは、制限されることになろう。ユーザのユーザセキュリティコードの場所コンポーネントが、値「EU,NA」を有する場合には、ユーザセキュリティコード及びデータレコードのセキュリティラベルの分類コンポーネントの値に応じて、そのセキュリティラベルの場所コンポーネントについて「NA」、「EU」、又は「EU,NA」を有するデータレコードに対するユーザによるアクセスが許容されてもよい。セキュリティラベルの場所コンポーネントがブランクである場合には、場所コンポーネントによって課される制限は、存在しておらず、データレコードに対するユーザのアクセスは、分類コンポーネントによって制御される。 If the location component of the user's user security code has the value "NA", then the user's access to all data records that have a location component whose security label has any value other than "NA" is restricted. .. Thus, for example, access by the user to a data record having a location component whose security label has the value "EU" or "EU, NA" will be restricted. If the user's user security code location component has the value "EU, NA", then "NA" for that security label location component, depending on the value of the user security code and data record security label classification component. , "EU", or "EU, NA" may be allowed for user access to the data record. If the location component of the security label is blank, there are no restrictions imposed by the location component and the user's access to the data record is controlled by the classification component.

分類コンポーネント又は場所コンポーネントが、データレコードに対するユーザによるアクセスを制限している場合には、ユーザによるそのデータレコードに対するアクセスは、制限される。例えば、「U:NA」というユーザセキュリティコードを有するユーザ1による、そのセキュリティラベルが分類コンポーネントについて「S」を有するすべてのデータレコード並びにそのセキュリティラベルが場所コンポーネント内において「NA」以外の任意の値を含むすべてのデータレコードに対するアクセスは、制限される。「U:EU,NA」というユーザセキュリティコードを有するユーザ2による、そのセキュリティラベルが分類コンポーネントについて「S」を有するすべてのデータレコードに対するアクセスは、制限されるが、ユーザ2は、場所コンポーネントの値に関する制限を有してはいない。「S:NA」というユーザセキュリティコードを有するユーザ3は、分類コンポーネントの値に関する制限を有してはいないが、そのセキュリティラベルが、場所コンポーネント内において「NA」以外の任意の値を含むすべてのデータレコードに対するユーザ3によるアクセスは、制限される。「S:EU,NA」というユーザセキュリティコードを有するユーザ4は、データレコードに対するアクセスに対する制限を有してはいない。 If the classification or location component restricts the user's access to the data record, the user's access to the data record is restricted. For example, by user 1 with the user security code "U: NA", all data records whose security label has "S" for the classification component and any value other than "NA" whose security label is in the location component. Access to all data records, including, is restricted. Access to all data records whose security label has an "S" for the classification component by user 2 with the user security code "U: EU, NA" is restricted, but user 2 is the value of the location component. Has no restrictions on. User 3 with the user security code "S: NA" has no restrictions on the value of the classification component, but all that security label contains any value other than "NA" within the location component. Access to the data record by user 3 is restricted. The user 4 having the user security code "S: EU, NA" has no restriction on access to the data record.

この例においては、それぞれのエントリのセキュリティラベルは、1つの順序付けられたコンポーネント(分類コンポーネント)と、1つの順序付けられていないコンポーネント(場所コンポーネント)と、を有する。いくつかの例においては、セキュリティラベルは、複数の順序付けられた又は階層的なコンポーネントを有することも可能であり、複数の順序付けられていないコンポーネントを有することも可能であり、或いは、これらの両方を有することもできる。 In this example, the security label for each entry has one ordered component (classification component) and one unordered component (location component). In some examples, security labels can have multiple ordered or hierarchical components, can have multiple unordered components, or both. You can also have.

この例においては、セキュリティラベルのコンポーネントの継承は、複数世代のテーブル階層構造を通じて伝播している。拡張により、配送テーブル910が、そのエントリが配送テーブル910のエントリに対する外部キー関係によって関係付けられている、DeliveryItemテーブルなどの、子テーブルを有する場合には、ラベルの継承は、上述のものに類似した方式により、DeliveryItemテーブル内に継続することになろう。 In this example, security label component inheritance is propagated through multiple generations of table hierarchies. If the extension has child tables, such as the DeliveryItem table, where the delivery table 910 has its entries related by a foreign key relationship to the entries in the delivery table 910, the label inheritance is similar to that described above. By the above method, it will continue in the DeliveryItem table.

行のセキュリティラベルを行自体の内部において記憶することにより、その行のアクセス制限を迅速且つ容易に判定することが可能となる。例えば、ユーザが行に対するアクセスを試みた際に、(例えば、ユーザが行に対するアクセスを試みている最中の)リアルタイムにおける関係した行の識別又はセキュリティラベルの算出を必要とすることなしに、行のセキュリティラベルとユーザのユーザセキュリティコードの間における直接的な比較により、特定の行にアクセスするためのユーザの能力を判定することができる。従って、この方式は、データベース内におけるセキュリティが保護された行に対する相対的に迅速且つ信頼性の高いアクセスを提供することができる。また、行のセキュリティラベルを行自体の内部において記憶することにより、セキュリティ監査又はセキュリティ設定の維持も促進されることになり、その理由は、その他のテーブルの参照又は複雑な論理的判定を必要とすることなしに、セキュリティラベルが、可視状態にあり、容易に理解可能であるからである。 By storing the security label of a row inside the row itself, it is possible to quickly and easily determine the access restriction of that row. For example, when a user attempts to access a row, the row does not require real-time identification of the relevant row or calculation of a security label (eg, while the user is attempting to access the row). A direct comparison between the security label of the user and the user's user security code can determine the user's ability to access a particular line. Therefore, this method can provide relatively quick and reliable access to secure rows in the database. Also, storing the security label of a row inside the row itself will facilitate security audits or maintenance of security settings, which requires references to other tables or complex logical decisions. This is because the security label is visible and easily understandable without doing anything.

図3を参照すれば、システム500は、例えば、コンピュータ506により、データベース90に入力されるデータレコード504のセキュリティラベル502を判定することができる。データレコード504は、データベース90に追加される新しいデータレコードであってもよく、或いは、データベース90内に既に記憶されているデータレコードに対する更新であってもよい。 With reference to FIG. 3, the system 500 can determine, for example, the security label 502 of the data record 504 input to the database 90 by the computer 506. The data record 504 may be a new data record added to the database 90, or may be an update to a data record already stored in the database 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(後述する)に直接的に送付することができる。 The detection module 510 detects changes to attributes and foreign key relationships that may affect the components of security label 502 for one or more data records in database 90. The detection module 510 detects the incoming data record 504 and determines whether to send the data record 504 to the security module 520 in order to calculate the security label 502 of the data record 504. For example, if the data record 504 is a new data record, the detection module 510 automatically sends the data record 504 to the security module 520. If the data record 504 is an update to a pre-stored data record, the detection module 510 asks if the update to the data record can affect one or more components of the security label of the data record 504. To judge. Updates that can affect one or more components of a security label include, for example, updates to the attributes of the data record used in determining the component of the security label, and foreign key relationships where the component of the security label is determined. Includes an update or another update. Updates that do not affect any component of the security label include, for example, updates to attributes or foreign key relationships that are not used in the security label determination. If the detection module 510 determines that the update may affect the security label of the data record 504, the detection module 510 sends the updated data record 504 to the security module 520. If the detection module 510 determines that the update does not affect the security label of the data record, the determination module 510 sets the data record 504 to the cascade module 550 (described below), for example by bypassing the security module 520. ) Can be sent directly.

いくつかの例においては、検出モジュール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に直接的に送付されることをもたらすことを通知することができる。 In some examples, the detection module 510 secures the incoming data record 504 according to one or more rules 532 stored in the rules database 530 or the rules file, or otherwise stored in the security module 520. It is possible to determine whether or not to send to. Illustrative rule 532 can notify that new data record 504 needs to be sent through security module 520. Illustrative rules can specify the attributes of a data record in a particular table in database 90 (eg, the table in which the data record 504 is stored) used in determining the components of the data record security label. Yes, it is possible to notify that an updated data record 504 with a change to one or more of the defined attributes needs to be sent through the security module 520. An exemplary rule is that of a data record in a particular table in database 90 (eg, a table in which data record 504 is stored) that contains foreign key values that relate the updated data record 504 to other data records. It is possible to specify one or more fields, and an updated data record 504 with changes to one or more of the specified foreign key fields needs to be sent through security module 520. You can notify that. For example, rule 532 states that a change in foreign key value that could result in data record 504 being associated with a different upstream data record triggers a send through security module 520, while data record 504 is a different downstream. It is possible to notify that a change in foreign key value that may result in being associated with a data record of the data record 504 results in being sent directly to the cascade module 550.

セキュリティモジュール520は、到来する又は更新されたデータレコード504のセキュリティラベル502を判定する。セキュリティモジュール520は、規則データベース530内において記憶されている規則532に基づいて、セキュリティラベル502を判定することができる。データベース90内のそれぞれのテーブルは、1つ又は複数の規則532の個別の組を有することができる。所与のテーブルの規則は、セキュリティラベルのそれぞれのコンポーネントが、そのテーブル内のそれぞれのレコードについて判定される方式を規定している。規則は、セキュリティラベルのそれぞれのコンポーネントごとに、セキュリティラベルのコンポーネントの判定において使用される必要がある属性、外部キー、及び定数のうちの1つ又は複数を識別することができる。規則は、所与のコンポーネントを判定する際に使用される複数の値が、階層的なリスト又は順序付けられたリストとして連結又は処理される必要があるかどうかを規定することができる。規則は、セキュリティラベルのコンポーネントの既定値の規定又はヌル外部キーを無視するための通知などのように、ヌル可能な外部キー関係がヌルである場合の既定値を規定することができる。セキュリティラベル502が、規則532に従って、到来した又は更新されたデータレコード504について判定されたら、セキュリティラベル502は、データレコード504に追加され、セキュリティラベル502を含むデータレコード504は、データベース90内において記憶される。 The security module 520 determines the security label 502 of the incoming or updated data record 504. The security module 520 can determine the security label 502 based on the rule 532 stored in the rule database 530. Each table in database 90 can have a separate set of one or more rules 532. The rules for a given table specify how each component of a security label is determined for each record in that table. For each component of the security label, the rule can identify one or more of the attributes, foreign keys, and constants that need to be used in determining the component of the security label. Rules can specify whether multiple values used in determining a given component need to be concatenated or processed as a hierarchical list or an ordered list. The rule can specify a default value for a component of a security label or a default value when a nullable foreign key relationship is null, such as a notification to ignore a null foreign key. Once the security label 502 has been determined for the incoming or updated data record 504 in accordance with Rule 532, the security label 502 is added to the data record 504 and the data record 504 containing the security label 502 is stored in the database 90. Will be done.

また、データレコード504は、カスケードモジュール550にも送付される。カスケードモジュール550は、データレコード504に対する更新の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール550は、例えば、外部キー関係を通じて、データレコード504に関係付けられた下流レコード514を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流のレコード514をセキュリティモジュール520に送付する。いくつかの例においては、カスケードモジュール550は、データレコード504をその他の下流のデータレコードに関係付けている外部キーを識別する1つ又は複数の規則532に従って、下流の関係付けられているレコード514を識別することができる。 The data record 504 is also sent to the cascade module 550. Cascade module 550 determines other records, such as downstream records, that may need to have a recalculated security label as a result of updates to data record 504. For example, Cascade Module 550 identifies downstream records 514 associated with data record 504, eg, through a foreign key relationship, and downstream of them, for example, for recalculation of individual security labels, as described above. Record 514 is sent to the security module 520. In some examples, the cascade module 550 identifies the foreign key that associates data record 504 with other downstream data records, according to one or more rules 532, downstream associated record 514. Can be identified.

下流のデータレコード514がセキュリティモジュール520によって処理されたら、そのセキュリティラベルは、データベース90内において更新され、下流のデータレコード514は、そのデータレコード514の下流のデータレコードのセキュリティラベルが再計算されうるように、カスケードモジュール550に送付される。このセキュリティラベルの再計算のカスケード状態は、例えば、利用可能な更なる下流のデータレコードが存在しなくなる時点まで、継続することができる。 Once the downstream data record 514 has been processed by the security module 520, its security label may be updated in database 90 and the downstream data record 514 may be recalculated with the security label of the data record downstream of that data record 514. As such, it is sent to the cascade module 550. This cascade of security label recalculations can continue, for example, until no further downstream data records are available.

システム500は、データレコードがデータベース90から削除された際に、セキュリティラベルの再計算を実行することができる。検出モジュール510は、データレコードがデータベース90から削除される必要があることを検出し、データレコードをカスケードモジュール550に送付する。カスケードモジュール550は、データレコードの削除の結果として、再計算されたセキュリティラベルを有する必要がありうる、下流のレコードなどのその他のレコードを判定する。例えば、カスケードモジュール550は、例えば、外部キー関係を通じて、データレコードに関係付けられた下流のレコード514を識別し、例えば、上述のように、個々のセキュリティラベルの再計算のために、それらの下流レコード514をセキュリティモジュール520に送付する。 System 500 can perform a security label recalculation when a data record is deleted from database 90. The detection module 510 detects that the data record needs to be deleted from the database 90 and sends the data record to the cascade module 550. Cascade module 550 determines other records, such as downstream records, that may need to have a recalculated security label as a result of deleting the data record. For example, Cascade Module 550 identifies downstream records 514 associated with data records, eg, through foreign key relationships, and downstream of them, for example, for recalculation of individual security labels, as described above. Record 514 is sent to security module 520.

いくつかの例においては、セキュリティモジュール520は、セキュリティラベルの計算のログ518を維持することができる。例えば、ログ518は、そのセキュリティラベルが計算又は再計算されたデータレコードの識別子、変化の日付、変化の時刻、セキュリティラベルの以前の値、変化の理由(例えば、再計算をトリガした上流の関係したレコードの識別情報、或いは、データレコードが新しいものである又は更新されたものであるという通知)、又はその他の情報、或いは、これらのうちのいずれか2つ以上の組合せを含むことができる。 In some examples, the security module 520 can maintain a log 518 of security label calculations. For example, log 518 shows the identifier of the data record whose security label was calculated or recalculated, the date of change, the time of change, the previous value of the security label, the reason for the change (eg, the upstream relationship that triggered the recalculation). It can include identification information of the record, or notification that the data record is new or updated), or other information, or a combination of any two or more of these.

図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に対して提示することができる。 With reference to FIG. 4, the system 500 can respond to an access request from the user 600 to the data record 602 stored in the database 90. The user has a user security code 604. When the user 600 requests access to the data record 602, the security module 520 acquires the security label 606 of the data record 602 from the database 90. Security module 520 can then compare each of the components of security label 606 of data record 602 with the corresponding component of user security code 604 in accordance with Rule 532. If each of the components of the user's user security code 604 satisfies the corresponding component of security label 606, the user 600 can access the data record 602. If one or more of the components of the user's user security code 604 do not meet the corresponding component of security label 606, the user's access to the record is restricted. A screen 610 that allows the user 600 to access one or more data records 602 that the user is allowed to access can be presented to the user 600.

図5を参照すれば、到来データレコードのセキュリティラベルを判定する一般的な方式において、データベースのテーブル内における記憶のために、データレコードが受信されている(800)。セキュリティラベルがデータレコードについて判定される方式を通知する1つ又は複数の規則が取得されている(802)。セキュリティラベルのそれぞれのコンポーネントが、規則に従って判定されている(804)。セキュリティラベルのコンポーネントの判定は、データレコードの属性に基づいてセキュリティラベルのコンポーネントを判定するステップを含むことができる(806)。セキュリティラベルのコンポーネントの判定は、外部キー関係を介して関係付けられた別のデータレコードからの値の継承に基づいてセキュリティラベルのコンポーネントを判定するステップ(808)を含むことができる。セキュリティラベルのコンポーネントの判定は、テーブルと関連した一定の値に基づいてセキュリティラベルのコンポーネントを判定するステップ(810)を含むことができる。セキュリティラベルが、データレコード内のフィールド内において記憶されている(812)。 Referring to FIG. 5, in a general method of determining the security label of an incoming data record, the data record is received for storage in a table of the database (800). One or more rules have been acquired that indicate how the security label is determined for the data record (802). Each component of the security label is determined according to the rules (804). Determining the security label component can include determining the security label component based on the attributes of the data record (806). Determining a security label component can include determining a security label component based on inheritance of values from another data record associated via a foreign key relationship (808). The determination of the security label component can include the step (810) of determining the security label component based on a certain value associated with the table. The security label is stored in a field in the data record (812).

図6を参照すれば、更新済みのデータレコードのセキュリティラベルを更新する一般的な方式においては、データベース内において記憶されているデータレコードに対する更新が受信されている(600)。データレコードについてセキュリティラベルが判定される方式を示す1つ又は複数の規則が取得されている(602)。更新が、データレコードのセキュリティラベルのコンポーネントの判定において使用されている属性に対して影響を及ぼす場合には、或いは、更新が、更新済みのデータレコードと上流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、或いは、これらの両方の場合には(604)、影響を受けたデータレコードのセキュリティラベルのコンポーネントが、例えば、上述のように、再計算されている(606)。更新が、セキュリティラベルの判定(604)において使用されているデータレコードのいずれの要素にも影響を及ぼさない場合には、データレコードのセキュリティラベルは、再計算されない(608)。下流の関係したデータレコードが識別されている(610)。データレコードのセキュリティラベルが再計算された場合には、或いは、更新が、更新済みのデータレコードと下流のデータレコードの間の外部キー関係に対して影響を及ぼす場合には、セキュリティ計算プロセスが、下流の関係したレコードのそれぞれごとに、実行される(612)。更なる下流レコードが存在していない際に、プロセスは終了する(614)。 Referring to FIG. 6, in the general method of updating the security label of the updated data record, the update for the data record stored in the database is received (600). One or more rules have been obtained indicating how the security label is determined for the data record (602). If the update affects the attributes used in determining the component of the data record's security label, or the update affects the foreign key relationship between the updated data record and the upstream data record. If it affects it, or in both cases (604), the security label component of the affected data record is recalculated, for example, as described above (606). .. If the update does not affect any element of the data record used in the security label determination (604), the data record security label is not recalculated (608). Downstream related data records have been identified (610). If the security label of the data record is recalculated, or if the update affects the foreign key relationship between the updated data record and the downstream data record, the security calculation process will It is executed for each of the related records downstream (612). The process terminates when no further downstream records exist (614).

図7を参照すれば、データベースからデータレコードを削除する一般的な方式において、データレコードが削除されている(900)。下流の関係したデータレコードが識別されている(902)。セキュリティラベルのコンポーネントが、例えば、上述のように、下流の関係したレコードのそれぞれごとに、再計算されている(904)。更なる下流のレコードが存在していない際に、プロセスが終了している(906)。 Referring to FIG. 7, the data record is deleted in a general method of deleting the data record from the database (900). Downstream related data records have been identified (902). The security label component is recalculated for each of the downstream related records, for example, as described above (904). The process is terminated when there are no further downstream records (906).

いくつかのケースにおいては、行のセキュリティラベルは、行の読取りが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、行のセキュリティラベルは、行に対する書き込みが許容された又は制限されたユーザを制御している。いくつかのケースにおいては、それぞれの行は、行を読み取ることができるユーザを制御するラベルと、行に書き込むことができるユーザを制御するラベルと、という2つのセキュリティラベルを有することができる。 In some cases, the row security label controls which users are allowed or restricted to read the row. In some cases, the row security label controls who is allowed or restricted to write to the row. In some cases, each row can have two security labels: a label that controls the user who can read the row and a label that controls the user who can write to the row.

先程付与したものなどのいくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、別のテーブル内の1つ又は複数の関係した行のそれぞれ内の情報に基づいて判定されている。いくつかの例においては、テーブル内の行のセキュリティラベルのコンポーネントは、同一のテーブル内の1つ又は複数の関係した行のそれぞれ内の情報に基づいて判定することができる。同一のテーブル内の関係した行内の情報に基づいた行のセキュリティラベルのコンポーネントの判定は、行の間の関係が階層的である際などのように、テーブル内の行の間の関係が循環的ではない際に、実行することができる。 In some examples, such as the one given earlier, the security label component of a row in a table is determined based on the information in each of one or more related rows in another table. In some examples, the security label component of a row in a table can be determined based on the information in each of one or more related rows in the same table. Determining a row security label component based on information in related rows in the same table is a cyclical relationship between rows in a table, such as when the relationships between rows are hierarchical. Can be done when not.

いくつかの例においては、テーブル内の特定の行のセキュリティラベルのコンポーネントは、複数の参照のチェーンを通じて特定の行に関係付けられている行内の情報に基づいて、但し、参照のチェーン内の1つ又は中間の行内の情報に基づくことなしに、判定することができる。例えば、テーブルA内のそれぞれの行をテーブルB内の行と関連付けることが可能であり、テーブルB内のそれぞれの行をテーブルC内の行と関係付けることができる。テーブルA内のそれぞれの行のセキュリティラベルのコンポーネントは、テーブルC内の関係した行内の情報に基づいて、但し、テーブルB内の関係した行内の情報には基づくことなしに、判定することができる。 In some examples, the security label component for a particular row in a table is based on the information in the row that is associated with the particular row through multiple chains of references, but one in the chain of references. The determination can be made without being based on the information in one or the middle line. For example, each row in table A can be associated with a row in table B, and each row in table B can be associated with a row in table C. The security label component of each row in table A can be determined based on the information in the relevant row in table C, but not based on the information in the relevant row in table B. ..

いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、同一のテーブル又は別のテーブル内の任意の関係した行内の情報に基づいて判定することができる。いくつかのケースにおいては、ユーザは、行のセキュリティラベルが、任意の外部キー関係に準拠しないように、或いは、1つ又は複数の特定の外部キー関係に準拠しないように、既定値をオーバーライドすることができる。いくつかの例においては、テーブル内のそれぞれの行のセキュリティラベルは、既定により、いずれの外部キー関係にも準拠することができない。いくつかのケースにおいては、ユーザは、テーブル内のそれぞれの行のセキュリティラベルが、1つ又は複数の特定の外部キー関係に準拠するように、或いは、すべての外部キー関係に準拠するように、既定値をオーバーライドすることができる。 In some examples, the security label for each row in a table can, by default, be determined based on information in any related row in the same table or another table. In some cases, the user overrides the default value so that the security label on the row does not conform to any foreign key relationship, or to one or more specific foreign key relationships. be able to. In some examples, the security label for each row in the table cannot conform to any foreign key relationship by default. In some cases, the user may want the security label for each row in the table to comply with one or more specific foreign key relationships, or all foreign key relationships. You can override the default value.

いくつかの例においては、外部キー関係に対する既定の方式は、外部キーの特性に依存したものであってよい。例えば、特定の外部キーがヌル可能である場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠しないというものであってもよいが、特定の外部キーがヌル可能でない場合には、既定値は、セキュリティラベルの判定においてその外部キー関係に準拠するというものであってよい。特定の外部キーが、ヌル可能ではないが、それにも拘らず、ヌルである場合には、最も制限的なセキュリティラベル、最も頻繁に使用されるセキュリティラベル、ユーザによって規定されたセキュリティラベル、或いは、別のセキュリティラベルなどの代替セキュリティラベルを規定することができる。 In some examples, the default method for foreign key relationships may depend on the characteristics of the foreign key. For example, if a particular foreign key is nullable, the default value may be that it does not conform to that foreign key relationship in the security label determination, but if the particular foreign key is not nullable. The default value may be that it conforms to the foreign key relationship in determining the security label. If a particular external key is not nullable, but nevertheless, it is the most restrictive security label, the most frequently used security label, the user-specified security label, or An alternative security label, such as another security label, can be specified.

いくつかの例においては、例えば、テーブルの外部の情報に基づいた行レベルのセキュリティなどの行レベルのセキュリティがデータベース内のすべてのテーブルに対して適用されている。いくつかの例においては、行レベルのセキュリティは、データベース内のテーブルのいくつかに対してのみ、適用されている。 In some examples, row-level security is applied to all tables in the database, for example row-level security based on information outside the table. In some examples, row-level security is applied only to some of the tables in the database.

いくつかの例においては、行レベルのセキュリティとの関係において上述したものと類似した方式により、列レベルのセキュリティを提供することができる。例えば、列レベルのセキュリティラベルを含むように、更なる行をテーブル内において提供することができる。列レベルのセキュリティの行内のフィールドの値は、テーブルの外部の情報、テーブルの内部の情報、又はこれらの両方に基づいたものであってもよい。 In some examples, column-level security can be provided in a manner similar to that described above in relation to row-level security. For example, additional rows can be provided in the table to include column-level security labels. The value of a field in a row of column-level security may be based on information outside the table, information inside the table, or both.

いくつかの例においては、行レベルのセキュリティは、データベース内の階層的オブジェクトクラスなどの様々なオブジェクトクラスを通じて、伝播することができる。例えば、行レベルのセキュリティは、データベースレベルにおいて、スキーマレベルにおいて、又はテーブルレベルにおいて、或いは、別のレベルにおいて、適用することができる。 In some examples, row-level security can be propagated through various object classes, such as hierarchical object classes in the database. For example, row-level security can be applied at the database level, at the schema level, at the table level, or at another level.

図8を参照すれば、ユーザによるレコードに対するアクセスを制限するかどうかを判定する一般的な方式において、データレコードに対するアクセス要求が、ユーザから、或いは、ユーザのために、受信されている(850)。ユーザのユーザセキュリティコードが取得されており(852)、これは、1つ又は複数のコンポーネントを含むことができる。要求されたデータレコードのセキュリティラベルが取得されている(854)。ユーザアクセス制限を制御する1つ又は複数の規則が取得されており(856)、ユーザのユーザセキュリティコードのそれぞれのコンポーネントが、データレコードのセキュリティラベルの対応したコンポーネントと比較されている(858)。ユーザのユーザセキュリティコードのいずれかのコードが、データレコードに対するユーザによるアクセスを禁止している場合には(860)、データレコードに対するアクセスは、拒絶される(862)。ユーザのユーザセキュリティコードのコンポーネントが、データレコードに対するユーザによるアクセスを禁止していない場合には(860)、ユーザによるデータレコードに対するアクセスが可能とされる(864)。 Referring to FIG. 8, in a general method of determining whether to restrict access to a record by a user, an access request to a data record is received from or on behalf of the user (850). .. A user security code for the user has been obtained (852), which can include one or more components. The security label of the requested data record has been obtained (854). One or more rules controlling user access restrictions have been acquired (856), and each component of the user's user security code is compared to the corresponding component of the security label of the data record (858). If any of the user's user security codes prohibits the user from accessing the data record (860), access to the data record is denied (862). If the component of the user's user security code does not prohibit the user from accessing the data record (860), then the user can access the data record (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)又はプロセッサコアを使用したコンピュータシステムの構成を含むマルチノードパラレル演算環境を含むことができる。 With reference to FIG. 9, in some examples, the technique described above can be implemented within a data processing system 150 that includes a data source 102 and an execution environment 104. The data source 102 may include one or more sources of data, such as a connection to a storage device or an online data stream, each of which has a variety of formats (eg, database tables, spreadsheet files, etc.). Data may be stored or provided in either a flat text file or the native format used by the mainframe. The execution environment 104 includes a preprocessing module 106 and an execution module 112. The execution environment 104 may be hosted on one or more general purpose computers under the control of an appropriate operating system, for example, one version of the UNIX operating system. For example, the execution environment 104 is a local type (for example, a multiprocessor system such as a symmetric multi-processing (SMP) computer), a locally distributed type (for example, a cluster or massively parallel processing (MPP)). Multiple processors combined as a system), remote, remote distributed (eg, Local Area Network (LAN) and / or Wide-Area Network (WAN)). A multi-node parallel computing environment including the configuration of a computer system using a plurality of central processing units (CPUs) or processor cores, which is an arbitrary combination thereof.

事前処理モジュール106は、データ供給源102からデータを読み取り、データの任意の適切な処理を実行し、処理されたデータを記憶する。データ供給源102を提供しているストレージ装置は、実行環境104にローカル接続されたものであってもよく、例えば、データは、実行環境104をホスティングしているコンピュータに接続されたストレージ媒体(例えば、ハードドライブ108)上において記憶されていてもよい。また、ストレージ装置は、実行環境104にリモート接続されたものであってもよく、例えば、リモート接続(例えば、クラウド演算インフラストラクチャによって提供されるもの)上において実行環境104をホスティングしているコンピュータとの通信状態にあるリモートシステム(例えば、メインフレーム110)上においてホスティングされていてもよい。 The pre-processing module 106 reads data from the data source 102, performs any appropriate processing of the data, and stores the processed data. The storage device providing the data source 102 may be locally connected to the execution environment 104, for example, the data may be a storage medium (eg,) connected to the computer hosting the execution environment 104. , Hard drive 108) may be stored. The storage device may also be remotely connected to the execution environment 104, eg, with a computer hosting the execution environment 104 on a remote connection (eg, one provided by a cloud computing infrastructure). It may be hosted on a remote system (eg, mainframe 110) in the communication state of.

実行モジュール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ドメインソケットを使用することも可能であり、或いは、共有メモリを使用することもできる)。 Execution module 112 uses the processed data generated by preprocessing module 106 to execute the specified process. The processing module 106 may output the data 114, which may be stored again in the data source 102 or in the data storage system 116 accessible from the execution environment 104, or It may be used in other ways. The data storage system 116 is also accessible from the development environment 118 where the developer 120 can develop a data processing application. The development environment 118, in some implementations, is a vertex (data processing component or data processing component or) connected by a directed link (representing the flow of work elements, ie, data) between the vertices. It is a system for developing an application as a calculation graph or a data flow graph including (representing a data set). For example, such an environment is described in more detail in US Patent Application Publication No. 2007/0011668 entitled "Managing Parameters for Graph-Based Applications". A system for performing calculations based on such graphs is described in US Pat. No. 5,966,072, entitled "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS". Data flow graphs generated according to this system provide a way to exchange information with and from the individual processes represented by the graph components, move information between processes, and define the order of operation of the processes. There is. The system includes an algorithm that selects an interprocess communication method from any available method (eg, a graph link communication path is a TCP / IP or UNIX domain socket to convey data between processes. It is also possible to use, or shared memory can be used).

開発環境118を使用して開発されたデータフローグラフは、例えば、データストレージ116内において記憶することが可能であり、実行環境104によってアクセスすることもできる。実行環境104は、データフローグラフのコンポーネントと関連したプロセスを実行してデータ供給源102から受信されたデータを処理するべく、データフローグラフを実行してもよい。 The data flow graph developed using the development environment 118 can be stored, for example, in the data storage 116 and can be accessed by the execution environment 104. The execution environment 104 may execute the data flow graph in order to execute the process associated with the component of the data flow graph and process the data received from the data source 102.

上述の接続を生成する方式は、適切なソフトウェアを実行する演算システムを使用して実装することができる。例えば、データ処理システム100は、命令を実行する1つ又は複数のデータプロセッサを有する演算システムを使用して実装することができる。例えば、ソフトウェアは、少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力装置又はポートを使用して入力を受信し、少なくとも1つの出力装置又はポートを使用して出力を提供するための)少なくとも1つのユーザインターフェイスをそれぞれが含む(分散型、クライアント/サーバー、又はグリッドなどの様々なアーキテクチャを有しうる)1つ又は複数のプログラムされた又はプログラム可能な演算システム上において稼働する1つ又は複数のコンピュータプログラム内の手順を含んでいてもよい。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関係したサービスを提供する相対的に大きなプログラムの1つ又は複数のモジュールを含んでいてもよい。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリ内において記憶されているデータモデルに準拠したデータ構造又はその他の組織化されたデータとして実装することができる。 The method of generating the connection described above can be implemented using an arithmetic system running appropriate software. For example, the data processing system 100 can be implemented using an arithmetic system having one or more data processors that execute instructions. For example, the software receives input using at least one processor, at least one data storage system (including volatile and / or non-volatile memory and / or storage elements), and at least one input device or port. One, each containing at least one user interface (to provide output using at least one output device or port) (which can have various architectures such as distributed, client / server, or grid). Alternatively, it may include procedures within one or more computer programs running on multiple programmed or programmable computing systems. The software may include, for example, one or more modules of a relatively large program that provides services related to the design, configuration, and execution of a data flow graph. Program modules (eg, data flow graph elements) can be implemented as data structures or other organized data that conform to the data model stored within the data repository.

ソフトウェアは、CD−ROM又はその他のコンピュータ可読媒体(例えば、汎用又は特殊目的演算システム又は装置によって読み取り可能である)などの有体の一時的でない媒体上において提供されてもよく、或いは、実行される場合に、ネットワークの通信媒体上において、(例えば、伝播信号内においてエンコードされた状態において)演算システムの有体の一時的でない媒体に供給されてもよい。処理のうちのいくつか又はすべては、特殊目的コンピュータ上において、或いは、コプロセッサ、又はフィールドプログラム可能なゲートアレイ(FPGA:Field-Programmable Gate Array)、或いは、専用の用途固有の集積回路(ASIC:Application-Specific Integrated Circuit)などの特殊目的ハードウェアを使用して、実行されてもよい。処理は、ソフトウェアによって規定された演算の異なる部分が、異なる演算要素によって実行される分散方式によって実装されてもよい。それぞれのこのようなプログラムは、好ましくは、ストレージ装置媒体が、本明細書において記述されている処理を実行するべく、コンピュータによって読み取られた際に、コンピュータを構成すると共に動作させるべく、汎用又は特殊目的プログラム可能コンピュータによってアクセス可能なストレージ装置のコンピュータ可読ストレージ媒体(例えば、半導体メモリ又は媒体、或いは、磁気又は光学媒体)上において記憶されるか又はこれにダウンロードされる。また、本発明のシステムは、コンピュータプログラムによって構成された有体の一時的でない媒体として実装されるものと見なされてもよく、この場合に、このように構成された媒体は、コンピュータが、本明細書において記述されている処理ステップのうちの1つ又は複数を実行するべく、特定の且つ予め定義された方式で動作するようにする。 The software may or may be provided on a tangible, non-transitory medium such as a CD-ROM or other computer-readable medium (eg, readable by a general purpose or special purpose computing system or device). In such cases, it may be supplied to a tangible, non-transient medium of the computing system (eg, in the encoded state in the propagated signal) on the communication medium of the network. Some or all of the processing can be done on a special purpose computer, or in a coprocessor, or field-programmable gate array (FPGA), or a dedicated application specific integrated circuit (ASIC:). It may be executed using special purpose hardware such as Application-Specific Integrated Circuit). The processing may be implemented by a distributed method in which different parts of the operation specified by the software are executed by different arithmetic elements. Each such program is preferably general purpose or special for the storage device medium to configure and operate the computer when read by the computer to perform the processes described herein. Purpose Stored or downloaded onto a computer-readable storage medium (eg, semiconductor memory or medium, or magnetic or optical medium) of a storage device accessible by a programmable computer. Also, the system of the present invention may be considered to be implemented as a tangible, non-temporary medium constructed by a computer program, in which case the medium thus constructed is by the computer. To operate in a specific and predefined manner to perform one or more of the processing steps described in the specification.

以上、いくつかの実施形態について説明した。但し、以上の説明は、添付の請求項の範囲によって定義されている本発明の範囲の限定ではなく、これを例示するべく意図されていることを理解されたい。従って、添付の請求項の範囲には、その他の実施形態も含まれる。例えば、本発明の範囲を逸脱することなしに、様々な変更が実施されてもよい。これに加えて、上述のステップのいくつかは、順序から独立したものであってもよく、従って、記述されているものとは異なる順序において実行することができる。 So far, some embodiments have been described. However, it should be understood that the above description is not a limitation of the scope of the invention defined by the appended claims, but is intended to illustrate this. Therefore, the scope of the appended claims also includes other embodiments. For example, various modifications may be made without departing from the scope of the invention. In addition to this, some of the steps described above may be order-independent and therefore can be performed in a different order than described.

Claims (71)

コンピュータによって、複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを判定するステップであって、
外部キー関係に従って前記第1レコードに関係した第2レコードを識別するステップ、
前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
を有するステップと、
前記コンピュータによって、前記判定されたセキュリティラベルを前記第1レコード内において記憶するステップと、
を含む方法。
It is a step of determining the component of the security label of the first record in the first table of the database having a plurality of tables by the computer.
A step of identifying a second record related to the first record according to a foreign key relationship,
The step of identifying the component of the security label in the second record, and
A step of assigning a value of the component of the security label of the first record based on the identified component of the security label of the second record.
With steps and
A step of storing the determined security label in the first record by the computer,
How to include.
個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を含む請求項1に記載の方法。
A step of identifying a plurality of second records related to the first record according to individual foreign key relationships, and
A step of identifying the component of the security label for each of the second records,
A step of assigning the value of the component of the security label of the first record based on the value of each component of the identified component of the security label of the second record.
The method according to claim 1.
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項2に記載の方法。 2. The step of assigning the value of the component of the security label of the first record includes the step of concatenating a plurality of distinct values of the identified component of the security label of the second record. the method of. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項2に記載の方法。
The step of assigning the value of the component of the security label is
A step of identifying the highest priority value from the values of the identified component of the security label of the second record, and
A step of assigning the highest priority value as the value of the component of the security label of the first record, and
2. The method according to claim 2.
第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含み、前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項1に記載の方法。 Based on an attribute of the third record includes automatically determining a component of the security label for each third record in the third table of said database, said third record attributes, the third in the record The method according to claim 1, which is a value stored in. 前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを含む請求項1に記載の方法。 The method of claim 1 comprising automatically determining a component of the security label for each third record before Symbol in the third table based on the value associated with the third table of the database. 前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項1に記載の方法。 The method according to claim 1, wherein the second record exists in a table other than the first table. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、前記方法は、前記セキュリティラベルの第2コンポーネントを判定するステップを含む請求項1に記載の方法。 The method according to claim 1 , wherein the component is the first component of the security label of the first record, and the method comprises a step of determining a second component of the security label. トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを含む請求項1に記載の方法。 The method of claim 1, comprising the step of updating the component of the security label of the particular first record in response to a trigger event. 前記トリガイベントは、前記外部キー関係の変化を含む請求項9に記載の方法。 The method of claim 9, wherein the trigger event includes a change in the foreign key relationship. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項9に記載の方法。 The method of claim 9, wherein the trigger event comprises a change in the component of the security label of the second record related to the particular first record. 前記トリガイベントを検出するステップを含む請求項9に記載の方法。 9. The method of claim 9, comprising the step of detecting the trigger event. 前記トリガイベントの通知を受信するステップを含む請求項9に記載の方法。 9. The method of claim 9, comprising the step of receiving a notification of the trigger event. ユーザから特定の第1レコードに対するアクセス要求を受信するステップを含み、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項1に記載の方法。 The method of claim 1, wherein the user comprises receiving an access request for a particular first record from the user, wherein the user is associated with a user security code. 前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを含む請求項14に記載の方法。 A step of restricting access by the user to the particular first record based on a comparison between the component of the user security code associated with the user and the component of the security label of the particular first record. The method according to claim 14. 前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを含む請求項15に記載の方法。 15. The method of claim 15, comprising the step of determining the security label of the first record before receiving the access request. 前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを含む請求項1に記載の方法。 The method of claim 1, comprising the step of automatically determining the component of the security label of a particular first record when the first record is received for storage in the database. 命令を記憶した一時的でないコンピュータ可読媒体であって、
前記命令は、演算システムが、
複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定することであって、
外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップと、
前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
を含んで判定し、
前記判定されたセキュリティラベルを前記第1レコード内において記憶する、
ようにする、媒体。
A non-transitory computer-readable medium that stores instructions
The instruction is issued by the arithmetic system.
It is to automatically determine the component of the security label of the first record in the first table of the database having multiple tables.
A step of identifying a second record related to the first record according to a foreign key relationship,
In the step of identifying the component of the security label in the second record,
A step of assigning a value of the component of the security label of the first record based on the identified component of the security label of the second record.
Judgment including
The determined security label is stored in the first record.
The medium to do.
演算システムであって、
メモリに結合されたプロセッサを具備し、
前記プロセッサ及びメモリは、
複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定することであって、
外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップと、
前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップと、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップと、
を含んで判定し、
前記判定されたセキュリティラベルを前記第1レコード内において記憶する、
ように構成されている、システム。
It's an arithmetic system
Equipped with a processor coupled to memory
The processor and memory
It is to automatically determine the component of the security label of the first record in the first table of the database having multiple tables.
A step of identifying a second record related to the first record according to a foreign key relationship,
In the step of identifying the component of the security label in the second record,
A step of assigning a value of the component of the security label of the first record based on the identified component of the security label of the second record.
Judgment including
The determined security label is stored in the first record.
The system is configured so that.
演算システムであって、
複数のテーブルを有するデータベースの第1テーブル内の第1レコードセキュリティラベルのコンポーネントを自動的に判定する手段であって、
外部キー関係に従って前記第1レコードと関係した第2レコードを識別するステップ、
前記第2レコードの前記セキュリティラベルのコンポーネントを識別するステップ、及び、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントに基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの値を割り当てるステップ、
を含む、手段と、
前記判定されたセキュリティラベルを前記第1レコード内において記憶する手段と、
を具備するシステム。
It's an arithmetic system
A means for automatically determining the security label component of the first record in the first table of a database having multiple tables.
A step of identifying a second record associated with the first record according to a foreign key relationship,
The step of identifying the component of the security label in the second record, and
A step of assigning a value of the component of the security label of the first record based on the identified component of the security label of the second record.
Including means and
A means for storing the determined security label in the first record, and
A system equipped with.
コンピュータによって、複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定するステップと、
前記コンピュータによって、前記第1レコードの第1セキュリティラベルを自動的に更新するステップと、
前記コンピュータによって、前記更新されたセキュリティラベルを前記第1レコード内において記憶するステップと、
前記コンピュータによって、前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを更新するステップと、
を含み、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている方法。
A step of determining that the first record stored in the first table of a database having a plurality of tables has been updated by the computer.
The step of automatically updating the first security label of the first record by the computer,
A step of storing the updated security label in the first record by the computer.
A step of updating the second security label of the second record stored in the second table of the database by the computer.
The method in which the second record is associated with the first record according to a foreign key relationship.
前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを含む請求項21に記載の方法。 21. The method of claim 21, comprising determining whether the update to the first record affects the first security label of the first record. 前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
を含む請求項21に記載の方法。
A step of determining one or more of the components of the first security label that are affected by the update to the first record.
A step of automatically updating one or more of the affected components of the first security label.
21. The method of claim 21.
前記第2テーブルは、前記第1テーブルの子である請求項21に記載の方法。 21. The method of claim 21, wherein the second table is a child of the first table. 前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを含む請求項21に記載の方法。 21. The method of claim 21, comprising determining whether the update to the first record affects the foreign key relationship. 前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
を含む請求項21に記載の方法。
A step of determining one or more foreign key relationships among a plurality of foreign key relationships affected by the update to the first record.
A step of automatically updating the second security label of each second record associated with the first record according to the affected foreign key relationship.
21. The method of claim 21.
命令を記憶した一時的でないコンピュータ可読媒体であって、
前記命令は、演算システムに、
複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたことを判定させ、
前記第1レコードの第1セキュリティラベルを自動的に更新させ、
前記更新されたセキュリティラベルを前記第1レコード内において記憶させ、
前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新させており、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、媒体。
A non-transitory computer-readable medium that stores instructions
The instruction is sent to the arithmetic system.
It is determined that the first record stored in the first table of the database having a plurality of tables has been updated.
The first security label of the first record is automatically updated,
The updated security label is stored in the first record and stored.
The second security label of the second record stored in the second table of the database is automatically updated, and the second record is associated with the first record according to the foreign key relationship. Medium.
演算システムであって、
メモリに結合されたプロセッサを具備し、
前記プロセッサ及びメモリは、
複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定し、
前記第1レコードの第1セキュリティラベルを自動的に更新し、
前記更新されたセキュリティラベルを前記第1レコード内において記憶し、
前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新し、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、
ように構成されている、システム。
It's an arithmetic system
Equipped with a processor coupled to memory
The processor and memory
It is determined that the first record stored in the first table of the database having a plurality of tables has been updated.
The first security label of the first record is automatically updated,
The updated security label is stored in the first record,
The second security label of the second record stored in the second table of the database is automatically updated, and the second record is associated with the first record according to the foreign key relationship.
The system is configured so that.
演算システムであって、
複数のテーブルを有するデータベースの第1テーブル内において記憶されている第1レコードが更新されたと判定する手段と、
前記第1レコードの第1セキュリティラベルを自動的に更新する手段と、
前記更新されたセキュリティラベルを前記第1レコード内において記憶する手段と、
前記データベースの第2テーブル内において記憶されている第2レコードの第2セキュリティラベルを自動的に更新する手段であって、前記第2レコードは、外部キー関係に従って前記第1レコードに関係付けられている、手段と、
を具備するシステム。
It's an arithmetic system
A means for determining that the first record stored in the first table of a database having a plurality of tables has been updated, and
A means for automatically updating the first security label of the first record,
A means for storing the updated security label in the first record, and
It is a means for automatically updating the second security label of the second record stored in the second table of the database, and the second record is associated with the first record according to a foreign key relationship. There are means and
A system equipped with.
前記演算システムに、
個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
A step of identifying a plurality of second records related to the first record according to individual foreign key relationships, and
A step of identifying the component of the security label for each of the second records,
A step of assigning the value of the component of the security label of the first record based on the value of each component of the identified component of the security label of the second record.
The computer-readable medium according to claim 18, which stores an instruction to execute.
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項30に記載のコンピュータ可読媒体。 30. The step of assigning the value of the component of the security label of the first record comprises the step of concatenating a plurality of distinct values of the identified component of the security label of the second record. Computer-readable medium. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項30に記載のコンピュータ可読媒体。
The step of assigning the value of the component of the security label is
A step of identifying the highest priority value from the values of the identified component of the security label of the second record, and
A step of assigning the highest priority value as the value of the component of the security label of the first record, and
30. The computer-readable medium according to claim 30.
前記演算システムに、
第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶し、
前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
To execute automatically determining a component of the security label for each third record in the third table of the database based on the attribute of the third record, store instructions,
The third record attributes, computer-readable medium of claim 18 wherein the third a value stored in the record.
前記演算システムに、
前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
To execute automatically determining a component of the security label for each third record before Symbol in the third table based on the value associated with the third table of the database, to claim 18 storing instructions The computer-readable medium described.
前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項18に記載のコンピュータ可読媒体。 The computer-readable medium according to claim 18, wherein the second record exists in a table other than the first table. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、
前記演算システムに、
前記セキュリティラベルの第2コンポーネントを判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
It said component is a first component of the security label of the first record,
In the arithmetic system
The computer-readable medium of claim 18, which stores an instruction to perform a step of determining a second component of the security label.
前記演算システムに、
トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
The computer-readable medium of claim 18, which stores an instruction to perform a step of updating the component of the security label in a particular first record in response to a trigger event.
前記トリガイベントは、前記外部キー関係の変化を含む請求項37に記載のコンピュータ可読媒体。 The computer-readable medium according to claim 37, wherein the trigger event includes a change in the foreign key relationship. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項37に記載のコンピュータ可読媒体。 The computer-readable medium of claim 37, wherein the trigger event comprises a change in the component of the security label of the second record related to the particular first record. 前記演算システムに、
前記トリガイベントを検出するステップを実行させる、命令を記憶する請求項37に記載のコンピュータ可読媒体。
In the arithmetic system
The computer-readable medium according to claim 37, which stores an instruction to execute a step of detecting the trigger event.
前記演算システムに、
前記トリガイベントの通知を受信するステップを実行させる、命令を記憶する請求項37に記載のコンピュータ可読媒体。
In the arithmetic system
The computer-readable medium according to claim 37, which stores an instruction to execute a step of receiving a notification of the trigger event.
前記演算システムに、
ユーザから特定の第1レコードに対するアクセス要求を受信するステップを実行させる、命令を記憶し、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
The computer-readable medium of claim 18, which stores an instruction that causes a user to perform a step of receiving an access request for a particular first record, the user being associated with a user security code.
前記演算システムに、
前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを実行させる、命令を記憶する請求項42に記載のコンピュータ可読媒体。
In the arithmetic system
Perform a step of restricting access by the user to the particular first record based on a comparison between the component of the user security code associated with the user and the component of the security label of the particular first record. The computer-readable medium according to claim 42, which stores an instruction.
前記演算システムに、
前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを実行させる、命令を記憶する請求項43に記載のコンピュータ可読媒体。
In the arithmetic system
The computer-readable medium according to claim 43, which stores an instruction to execute a step of determining the security label of the first record before receiving the access request.
前記演算システムに、
前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行させる、命令を記憶する請求項18に記載のコンピュータ可読媒体。
In the arithmetic system
18. Claim 18, which stores an instruction that causes a step of automatically determining the component of the security label of a particular first record when the first record is received for storage in the database. The computer-readable medium described.
前記プロセッサ及びメモリは、
個々の外部キー関係に従って前記第1レコードにそれぞれ関係した複数の第2レコードを識別するステップと、
前記第2レコードのそれぞれごとに前記セキュリティラベルのコンポーネントを識別するステップと、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントのうちのそれぞれのコンポーネントの値に基づいて前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップと、
を実行するように構成されている請求項19に記載の演算システム。
The processor and memory
A step of identifying a plurality of second records related to the first record according to individual foreign key relationships, and
A step of identifying the component of the security label for each of the second records,
A step of assigning the value of the component of the security label of the first record based on the value of each component of the identified component of the security label of the second record.
19. The arithmetic system according to claim 19, which is configured to execute.
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値を割り当てるステップは、前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの複数の別個の値を連結するステップを含む請求項46に記載の演算システム。 46. The step of assigning the value of the component of the security label of the first record includes the step of concatenating a plurality of distinct values of the identified component of the security label of the second record. Computational system. 前記セキュリティラベルの前記コンポーネントの値を割り当てるステップは、
前記第2レコードの前記セキュリティラベルの前記識別されたコンポーネントの前記値の中から最高優先順位値を識別するステップと、
前記第1レコードの前記セキュリティラベルの前記コンポーネントの前記値として前記最高優先順位値を割り当てるステップと、
を含む請求項46に記載の演算システム。
The step of assigning the value of the component of the security label is
A step of identifying the highest priority value from the values of the identified component of the security label of the second record, and
A step of assigning the highest priority value as the value of the component of the security label of the first record, and
46. The arithmetic system according to claim 46.
前記プロセッサ及びメモリは、
第3レコードの属性に基づいて前記データベースの第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されており、前記第3レコードの属性は、前記第3レコード内に記憶されている値である請求項19に記載の演算システム。
The processor and memory
It is configured to perform a step of automatically determining the component of the security label for each third record in the third table of the database based on the attributes of the third record, and the attributes of the third record. Is the arithmetic system according to claim 19, which is a value stored in the third record.
前記プロセッサ及びメモリは、
前記データベースの第3テーブルと関連した値に基づいて前記第3テーブル内のそれぞれの第3レコードごとにセキュリティラベルのコンポーネントを自動的に判定するステップを実行するように構成されている請求項19に記載の演算システム。
The processor and memory
Third each of the third claim for each record is configured to execute automatically determining a component of the security label in the previous Symbol third table based on the value associated with the table 19 of the database The arithmetic system described in.
前記第2レコードは、前記第1テーブル以外のテーブル内に存在している請求項19に記載の演算システム。 The arithmetic system according to claim 19, wherein the second record exists in a table other than the first table. 前記コンポーネントは、前記第1レコードの前記セキュリティラベルの第1コンポーネントであり、
前記プロセッサ及びメモリは、
前記セキュリティラベルの第2コンポーネントを判定するステップを実行するように構成されている請求項19に記載の演算システム。
It said component is a first component of the security label of the first record,
The processor and memory
19. The arithmetic system according to claim 19, which is configured to perform a step of determining a second component of the security label.
前記プロセッサ及びメモリは、
トリガイベントに応答して特定の第1レコードの前記セキュリティラベルの前記コンポーネントを更新するステップを実行するように構成されている請求項19に記載の演算システム。
The processor and memory
19. The arithmetic system of claim 19, which is configured to perform a step of updating the component of the security label of the security label in a particular first record in response to a trigger event.
前記トリガイベントは、前記外部キー関係の変化を含む請求項53に記載の演算システム。 The arithmetic system according to claim 53, wherein the trigger event includes a change in the foreign key relationship. 前記トリガイベントは、前記特定の第1レコードに関係した前記第2レコードの前記セキュリティラベルの前記コンポーネントの変化を含む請求項53に記載の演算システム。 The arithmetic system according to claim 53, wherein the trigger event includes a change in the component of the security label of the second record related to the particular first record. 前記プロセッサ及びメモリは、
前記トリガイベントを検出するステップを実行するように構成されている請求項53に記載の演算システム。
The processor and memory
The arithmetic system according to claim 53, which is configured to perform a step of detecting the trigger event.
前記プロセッサ及びメモリは、
前記トリガイベントの通知を受信するステップを実行するように構成されている請求項53に記載の演算システム。
The processor and memory
The arithmetic system according to claim 53, which is configured to perform a step of receiving a notification of the trigger event.
前記プロセッサ及びメモリは、
ユーザから特定の第1レコードに対するアクセス要求を受信するステップを実行するように構成されており、前記ユーザは、ユーザセキュリティコードと関連付けられている請求項19に記載の演算システム。
The processor and memory
The arithmetic system according to claim 19, which is configured to perform a step of receiving an access request for a particular first record from a user, wherein the user is associated with a user security code.
前記プロセッサ及びメモリは、
前記ユーザと関連付けられた前記ユーザセキュリティコードのコンポーネントと前記特定の第1レコードの前記セキュリティラベルの前記コンポーネントの間の比較に基づいて前記特定の第1レコードに対する前記ユーザによるアクセスを制限するステップを実行するように構成されている請求項58に記載の演算システム。
The processor and memory
A step of restricting access by the user to the particular first record is performed based on a comparison between the component of the user security code associated with the user and the component of the security label of the particular first record. 58. The arithmetic system according to claim 58.
前記プロセッサ及びメモリは、
前記アクセスの要求を受信する前に前記第1レコードの前記セキュリティラベルを判定するステップを実行するように構成されている請求項59に記載の演算システム。
The processor and memory
The arithmetic system according to claim 59, which is configured to perform a step of determining the security label of the first record before receiving the access request.
前記プロセッサ及びメモリは、
前記第1レコードが前記データベース内における記憶のために受信された際に、特定の第1レコードの前記セキュリティラベルの前記コンポーネントを自動的に判定するステップを実行するように構成されている請求項19に記載の演算システム。
The processor and memory
19. Claim 19 configured to perform a step of automatically determining the component of the security label of a particular first record when the first record is received for storage in the database. The arithmetic system described in.
前記演算システムに、
前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
In the arithmetic system
27. The computer-readable medium of claim 27, which stores an instruction to execute a step of determining whether the update to the first record affects the first security label of the first record.
前記演算システムに、
前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
を実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
In the arithmetic system
A step of determining one or more of the plurality of components of the first security label that are affected by the update to the first record.
A step of automatically updating one or more of the affected components of the first security label.
27. The computer-readable medium according to claim 27, which stores an instruction for executing.
前記第2テーブルは、前記第1テーブルの子である請求項27に記載のコンピュータ可読媒体。 The computer-readable medium according to claim 27, wherein the second table is a child of the first table. 前記演算システムに、
前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
In the arithmetic system
27. The computer-readable medium of claim 27, which stores an instruction to execute a step of determining whether the update to the first record affects the foreign key relationship.
前記演算システムに、
前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
を実行させる命令を記憶する請求項27に記載のコンピュータ可読媒体。
In the arithmetic system
A step of determining one or more foreign key relationships among a plurality of foreign key relationships affected by the update to the first record.
A step of automatically updating the second security label of each second record associated with the first record according to the affected foreign key relationship.
27. The computer-readable medium according to claim 27, which stores an instruction for executing.
前記プロセッサ及びメモリは、
前記第1レコードに対する前記更新が前記第1レコードの前記第1セキュリティラベルに影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項28に記載の演算システム
The processor and memory
28. The arithmetic system of claim 28, which is configured to perform a step of determining whether the update to the first record affects the first security label of the first record.
前記プロセッサ及びメモリは、
前記第1レコードに対する前記更新の影響を受ける前記第1セキュリティラベルの複数のコンポーネントのうちの1つ又は複数のコンポーネントを判定するステップと、
前記第1セキュリティラベルの前記影響を受けた1つ又は複数のコンポーネントを自動的に更新するステップと、
を実行するように構成されている請求項28に記載の演算システム
The processor and memory
A step of determining one or more of the plurality of components of the first security label that are affected by the update to the first record.
A step of automatically updating one or more of the affected components of the first security label.
28. The arithmetic system according to claim 28, which is configured to execute.
前記第2テーブルは、前記第1テーブルの子である請求項28に記載の演算システムThe arithmetic system according to claim 28, wherein the second table is a child of the first table. 前記プロセッサ及びメモリは、
前記第1レコードに対する前記更新が前記外部キー関係に影響を及ぼすかどうかを判定するステップを実行するように構成されている請求項28に記載の演算システム
The processor and memory
28. The arithmetic system of claim 28, which is configured to perform a step of determining whether the update to the first record affects the foreign key relationship.
前記プロセッサ及びメモリは、
前記第1レコードに対する前記更新の影響を受ける複数の外部キー関係のうちの1つ又は複数の外部キー関係を判定するステップと、
前記影響を受けた外部キー関係に従って前記第1レコードに関係したそれぞれの第2レコードの前記第2セキュリティラベルを自動的に更新するステップと、
を実行するように構成されている請求項28に記載の演算システム
The processor and memory
A step of determining one or more foreign key relationships among a plurality of foreign key relationships affected by the update to the first record.
A step of automatically updating the second security label of each second record associated with the first record according to the affected foreign key relationship.
28. The arithmetic system according to claim 28, which is configured to execute.
JP2017522954A 2014-11-05 2015-11-05 Database security Active JP6755864B2 (en)

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 (en) 2018-02-01
JP2018503154A5 JP2018503154A5 (en) 2018-12-13
JP6755864B2 true JP6755864B2 (en) 2020-09-16

Family

ID=54602030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522954A Active JP6755864B2 (en) 2014-11-05 2015-11-05 Database security

Country Status (9)

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

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3215976B1 (en) * 2014-11-05 2021-10-20 AB Initio Technology LLC Database security
KR101905771B1 (en) * 2016-01-29 2018-10-11 주식회사 엔오디비즈웨어 Self defense security server with behavior and environment analysis and operating method thereof
US11210459B1 (en) * 2016-09-23 2021-12-28 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
US10540152B1 (en) 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
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 (en) * 2019-06-20 2021-04-20 中国科学院信息工程研究所 Database access control method and system supporting service security marker
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 (en) * 2021-06-29 2023-01-18 株式会社日立製作所 Personal information management system and personal information management method
US11789911B1 (en) * 2021-07-27 2023-10-17 Amazon Technologies, Inc. Scalable permissions management for granular levels of database access

Family Cites Families (46)

* 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
US6581060B1 (en) * 2000-06-21 2003-06-17 International Business Machines Corporation System and method for RDBMS to protect records in accordance with non-RDBMS access control rules
US6757680B1 (en) * 2000-07-03 2004-06-29 International Business Machines Corporation System and method for inheriting access control rules
US8316051B1 (en) * 2001-11-30 2012-11-20 Oralce International Corporation Techniques for adding multiple security policies to a database system
JP2004021449A (en) 2002-06-14 2004-01-22 Fuji Xerox Co Ltd Data management system, data management method, and data management program
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
US7599937B2 (en) * 2004-06-28 2009-10-06 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
JP2006106986A (en) 2004-10-01 2006-04-20 Canon Inc Access management method and information processor
US7725501B1 (en) * 2004-11-12 2010-05-25 Northrop Grumman Corporation System and method for rapid database application deployment and use
US8732856B2 (en) * 2004-12-30 2014-05-20 Oracle International Corporation Cross-domain security for data vault
US7831570B2 (en) * 2004-12-30 2010-11-09 Oracle International Corporation Mandatory access control label security
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 (en) 2008-04-28 2013-06-19 国际商业机器公司 Method and device for setting and checking security of a plurality of objects
US8869299B2 (en) * 2009-03-04 2014-10-21 Titus Inc. Method and system for generating trusted security labels for electronic documents
WO2010106679A1 (en) 2009-03-19 2010-09-23 富士通株式会社 Access controller, information management device, and access control method
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 (en) * 2012-10-08 2014-05-02 삼성전자주식회사 Device and method for protecting data in terminal
CN103560994A (en) * 2013-08-16 2014-02-05 中山大学 Context-aware-based security access control method for RFID system
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
EP3215976B1 (en) * 2014-11-05 2021-10-20 AB Initio Technology LLC Database security

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6755864B2 (en) Database security
US11782892B2 (en) Method and system for migrating content between enterprise content management systems
US11886507B2 (en) Multi-tenant knowledge graph databases with dynamic specification and enforcement of ontological data models
JP2019079556A (en) Filtering data lineage diagrams
US11036560B1 (en) Determining isolation types for executing code portions
US20160171226A1 (en) System, method and computer program product for conditionally sharing an object with one or more entities
US11119749B2 (en) Architectures and techniques for record protection and field management
US11362997B2 (en) Real-time policy rule evaluation with multistage processing
US20240338390A1 (en) Method and system for interpreting inputted information
US20200342008A1 (en) System for lightweight objects
US20140189889A1 (en) Managing authorization of actions associated with data objects
US9009731B2 (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
US11995046B2 (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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250