JP4398371B2 - リレーショナル・データベースへのアクセスを制御する方法 - Google Patents

リレーショナル・データベースへのアクセスを制御する方法 Download PDF

Info

Publication number
JP4398371B2
JP4398371B2 JP2004533614A JP2004533614A JP4398371B2 JP 4398371 B2 JP4398371 B2 JP 4398371B2 JP 2004533614 A JP2004533614 A JP 2004533614A JP 2004533614 A JP2004533614 A JP 2004533614A JP 4398371 B2 JP4398371 B2 JP 4398371B2
Authority
JP
Japan
Prior art keywords
security
user
row
label
database
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.)
Expired - Lifetime
Application number
JP2004533614A
Other languages
English (en)
Other versions
JP2006502472A (ja
Inventor
コンター、カート
ミラー、ロジャー、リー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006502472A publication Critical patent/JP2006502472A/ja
Application granted granted Critical
Publication of JP4398371B2 publication Critical patent/JP4398371B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • 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/21Design, administration or maintenance of databases
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/954Relational
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/956Hierarchical
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

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)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報処理システムに関し、特にデータベース管理システムにおけるアクセス制御を実現することに関する。
ワールド・ワイド・ウェブ(「ウェブ」)とeビジネス・ソリューションが拡大するのにつれ、データベースのセキュリティとプライバシとがますます重要になりつつある。データベースのセキュリティの重要性を際立たせている別の動きが、(ウェブ・ホスティングとも呼ばれる)サーバ上でウェブ・サイトをホスティングすることである。ウェブ・サーバは顧客のデータを多数の関係テーブル中に格納するリレーショナル・データベースを備えている。ウェブ・ホスティングを行う会社はその出費を最小化するために、多数の顧客に由来するデータを単一のデータベース管理システムに格納しようとする。しかし、顧客数が増大するとウェブ・ホスティングを行う会社が従来使用していたデータベース管理システムで得られるセキュリティよりも高度のセキュリティが必要になる。このことは、複数の顧客のウェブ・サイトとデータをホストするためにデータベース管理システムを使用する場合に特に顕著である。
顧客の中にはデータ項目(たとえばデータベースの行)へのアクセスをすべて制御する強制アクセス制御を必要とするものもいる。また、多レベルのアクセス制御を同時にサポートする階層型セキュリティ機構を使用する必要のある顧客も多数存在する。強制アクセス制御と階層型セキュリティ機構についてのこれらの概念は周知である。たとえば、それらは国防総省標準DoD5200.28−STD(国防総省高信頼コンピュータ・システム評価基準〔1985年12月〕)(DoD 5200.28-STD, Department of Defense Trusted Computer System Evaluation Criteria, December 1985.)に記載されている。
既存のデータベース(たとえばトムソン(Thomson)らの米国特許第5751949号に記載されているデータベース)では、テーブルと当該テーブルのビュー(view)とに基づいてセキュリティを実現している。少なくとも1つのデータベース・テーブル中の選択済みの行と列へのアクセスを制限するのにビューを使用することができる。たとえばトムソンらの特許では、ユーザの認証情報を格納したセキュリティ・テーブルとデータ・テーブルとを結合するのにビューを使用している。しかし、一部のユーザ(たとえばシステム管理者など)はビューを迂回してテーブルに直接にアクセスすることにより、ビューが提供するアクセス制御を回避することができる。また多くの場合、所望のレベルの細分度を有するビューを構築するのはデータベース管理者とアプリケーション・プログラマにとって煩瑣(はんさ)である。ビューは読み出し専用(read-only)アクセスの場合には効率的になる可能性があるが、更新、挿入、および削除の場合にはそれを定義するのが困難である。更新を制御するには、トリガを準備すること、データベースを制約すること、手順を格納しておくことが必要になる場合が多い。
米国特許第5751949号 米国防総省標準DoD5200.28−STD(国防総省高信頼コンピュータ・システム評価基準〔1985年12月〕)(DoD 5200.28-STD, Department of Defense Trusted Computer System Evaluation Criteria, December 1985.)
個別のユーザ・アクセスを特定の行の組に限定しうるように、多くのアプリケーションはリレーショナル・データベース中に行レベルのセキュリティを備える必要があるが、そのセキュリティ制御を強制することが求められている。アクセス制御を強制すれば、ユーザ、アプリケーションのプログラマ、およびデータベース管理者は行レベルのセキュリティ機構を迂回することができなくなる。
本発明によれば、次に示す方法が実現される。
リレーショナル・データベースへのアクセスを制御する方法であって、
前記データベースに属すデータを求めるユーザの要求を受領するステップであって、前記要求はデータベース操作を実行する要求およびユーザのセキュリティ・ラベルを含んでいる、ステップと、
前記ユーザのセキュリティ・ラベルに基づいてユーザのセキュリティ情報を確認するステップと、
前記ユーザの要求に応答して、前記データベース中のテーブルから、データから成る少なくとも1つの行を検索・取得するステップであって、前記少なくとも1つの行はセキュリティ・ラベルを備えている、ステップと、
前記少なくとも1つの検索・取得した行のセキュリティ・ラベルに基づいて前記少なくとも1つの検索・取得した行用の行のセキュリティ情報を確認するステップと、
前記少なくとも1つの検索・取得した行につき、前記ユーザのセキュリティ情報および前記行のセキュリティ情報に基づいて前記ユーザが前記行にアクセスするのを許可されているか否かを判断するステップと、
前記ユーザがアクセスするのを許可されていると判断した場合、前記少なくとも1つの行を返すステップと
を備えた
方法。
前記要求はビューのクエリを含んでいないのが望ましい。前記要求は前記データベースへのユーザのアクセスを制限するアクセス制御情報を含むテーブルの結合を要求しないのが、さらに望ましい。好適な一実例では、前記データベース操作はクエリである。別の好適な実例では、前記データベース操作は行の更新を含んでいる。
行のセキュリティ情報を確認する前記ステップが、前記行のセキュリティ・ラベルに対応する行のセキュリティ情報用のキャッシュを検査するステップを含んでいるのが好適である。各ユーザのセキュリティ・ラベルまたは各行のセキュリティ・ラベルが、セキュリティ・レベル群から成る階層中にそれぞれ配置された複数のユーザのセキュリティ・ラベルまたは複数の行のセキュリティ・ラベルのうちの1つであるのがより好適である。前記ユーザのセキュリティ・ラベルが、前記検索・取得した行のセキュリティ・ラベルが示しているセキュリティ・レベル以上のアクセスの程度を有するセキュリティ・レベルに対応している場合にだけ、前記ユーザは前記検索・取得した行にアクセスしうるように許可されていると判断するのがさらにより好適である。
好適な実例では、前記検索・取得した行のセキュリティ・ラベルが、前記ユーザのセキュリティ・ラベルに対応するセキュリティ・カテゴリ群の適正なサブセットであるセキュリティ・カテゴリ群に対応している場合にだけ、前記ユーザは前記検索・取得した行にアクセスしうるように許可されていると判断する。
望ましいことに、次に示す装置が実現される。
データ・マネージャおよびデータベースを備えたデータベース管理システム中で使用する装置であり、前記装置はユーザが、前記データベース中に保持されているデータから成る行について要求した操作を実行しうるように許可さているか否かを判断し、前記ユーザはユーザのセキュリティ・ラベルに関連付けられており、前記行は行のセキュリティ・ラベルを備えている、装置であって、
セキュリティ・ラベル群から成る階層をその中に記録したユーザ・セキュリティ・ユニットと、
前記ユーザ・セキュリティ・ユニットに接続され、かつ、前記データ・マネージャと前記データベースとの間に接続された読み取りセキュリティ・ユニットであって、前記ユーザのセキュリティ・ラベルが、前記行のセキュリティ・ラベルの配置先である、前記階層中のレベル用の特権以上である特権を有する、前記階層中のレベルに配置されている場合にだけ、前記データベースから前記データ・マネージャに前記行を返すように構成された読み取りセキュリティ・ユニットと
を備えた
装置。
一実例では、前記セキュリティ階層中の前記セキュリティ・ラベルは前記セキュリティ・ラベルに付随するセキュリティ・カテゴリを表している。そして、前記読み取りセキュリティ・ユニットは前記行のセキュリティ・ラベルに付随するセキュリティ・カテゴリ群が、前記ユーザのセキュリティ・ラベルに付随するセキュリティ・カテゴリ群の適正なサブセットである場合にだけ、前記データベースに属す前記要求された行を前記データ・マネージャに返すように構成されている。
さらに、前記装置は前記データ・セキュリティ・ユニットに接続され、かつ、前記データ・マネージャと前記データベースとの間に接続されているとともに、前記要求された操作が行を更新する操作である場合に前記行のセキュリティ・ラベルを前記ユーザのセキュリティ・ラベルと同一の値に設定するように構成された書き込みセキュリティ・ユニットを備えているのが望ましい。また、前記書き込みセキュリティ・ユニットは前記ユーザがより低いレベルのセキュリティ・ラベルを備えた行を更新するしうるように許可されている場合であり、かつ、前記より低いレベルのセキュリティ・ラベル用に指定されたセキュリティ・カテゴリ群が、前記ユーザのセキュリティ・ラベルに付随するセキュリティ・カテゴリ群の適正なサブセットである場合に前記行のセキュリティ・ラベルを前記ユーザのセキュリティ・レベルよりも低いレベルに設定するように構成されているのがさらに望ましい。
好適なことに、次に示すプログラム製品が実現される。
リレーショナル・データベースへのアクセスを制御する、コンピュータ読み取り可能な媒体に記録したプログラム製品であって、
前記データベースに属すデータを求めるユーザの要求を受領するプログラム命令であって、前記要求はデータベース操作を実行する要求およびユーザのセキュリティ・ラベルを含んでいる、プログラム命令と、
前記ユーザのセキュリティ・ラベルからユーザのセキュリティ情報を確認するプログラム命令と、
前記ユーザの要求に応答して、前記データベース中のテーブルから、データから成る行を検索・取得するプログラム命令であって、前記行は各々、セキュリティ・ラベルを備えている、プログラム命令と、
前記検索・取得済みの行の各々につき、前記ユーザのセキュリティ情報および前記行のセキュリティ情報に基づいて前記ユーザが前記行にアクセスするのを許可されているか否かを判断するプログラム命令と、
前記ユーザがアクセスするのを許可されている、と判断されたアクセス先の行だけを返すプログラム命令と
を備えた
プログラム製品。
好適な実例では、次に示す方法が実現される。
データベースの少なくとも1つの行中のデータへのアクセスを制御する方法であり、前記少なくとも1つの行は行レベルのアクセス制御情報に関連付けられている、方法であって、
前記データベースを操作する要求をユーザから受領するステップと、
前記要求に合致する、前記データベースの行の各々につき、前記ユーザに付随するセキュリティ・レベルと前記行に付随するセキュリティ・レベルとを比較することにより、前記要求に合致する、前記データベースの行に強制アクセス制御の規則を適用するステップと
前記行に付随する前記セキュリティ・レベルが前記ユーザのセキュリティ・レベルの少なくともサブセットである場合、前記行に属すデータを返すステップと
を備えた
方法。
前記要求は前記データベースの前記少なくとも1つの行へのアクセスを制限する、前記データベースの事前に定義されたビューを求める要求ではないのが望ましい。前記方法は前記データベースの前記少なくとも1つの行へのアクセスを制限するために前記受領した要求を変更しないのが望ましい。前記要求はSQL(Structured Query Language)クエリであるのがさらに望ましい。好適な実例では、前記データベースは複数のテーブルから成る。そして、前記受領した要求には前記複数のテーブルへのアクセスを求める要求が含まれる。
望ましいことに、次に示す方法が実現される。
データベースの行中のデータへのユーザのアクセスを制御する方法であり、各行はアクセス・レベルの階層中の第1のアクセス・レベルに関連付けられており、前記ユーザは前記アクセス・レベルの階層中の第2のアクセス・レベルに関連付けられており、各アクセス・レベルは少なくとも1つの特権に関連付けられており、これらのアクセス・レベルは階層的な態様で関連している、方法であって、
前記データベースを操作する要求を前記ユーザから受領するステップと、
前記第1のアクセス・レベルに付随する特権が、前記第2のアクセス・レベルに付随する特権に含まれるか否かを判断することにより、前記ユーザが、前記要求に合致する、前記データベース中の行を操作しうるように許可されているか否かを判断するステップと、
前記ユーザが前記行を操作しうるように許可されている、と判断した場合にだけ、前記行に属すデータを返すステップとを備えた方法。
ここで説明するシステムと手法はリレーショナル・データベース中に行レベルの強制セキュリティを実現するものである。それらには、今日入手できる既存のデータベース・システムを超える多くの利点がある。それらによって、次に示す特徴を有するセキュリティ実行機構を実現することができる。すなわち、強制的かつ自動的であること、既存のSQL(Structured Query Language)ビューまたはSQLクエリでは表現するのが困難であろうセキュリティ機構を実現できること、および、行レベルのセキュリティ検査を行うことに付随する処理上の制約と所要時間のオーバーヘッドを最小化する、パフォーマンスの最適化を行うことができることである。また、ここで説明するシステムと手法は行レベルのセキュリティ制御を実現するのに特別のビューまたはデータベースのセッション変数に依存する必要のないセキュリティ実行機構をも実現する。
本発明の一実例はリレーショナル・データベースへのアクセスを制御する方法に関する。前記方法は前記データベースに属すデータを求めるユーザの要求を受領するステップであって、前記要求はデータベース操作を実行する要求およびユーザのセキュリティ・ラベルを含んでいる、ステップを備えている。前記ユーザのセキュリティ・ラベルからユーザのセキュリティ情報を確認する。前記ユーザの要求に応答して、前記データベース操作に合致する、データから成る行を前記データベース中のテーブルから検索・取得する。前記行は各々、セキュリティ・ラベルを備えている。前記方法はさらに、前記検索・取得した行の各々用の、行のセキュリティ情報を当該行のセキュリティ・ラベルに基づいて確認するステップを備えている。前記検索・取得した行の各々について、前記方法は前記ユーザが、前記行にアクセスしうるように許可されているか否かを前記ユーザのセキュリティ情報および前記行のセキュリティ情報に基づいて判断する。前記ユーザがアクセスするのを許可されている、そのアクセス対象の行だけを返す。
さらに別の実例では、データ・マネージャおよびデータベースを備えたデータベース管理システム中で使用する装置が、ユーザが、前記データベース中に保持されているデータから成る行に対する、要求された操作を実行しうるように許可されているか否かを判断する。前記ユーザはユーザのセキュリティ・ラベルに関連付けられており、前記行は行のセキュリティ・ラベルを備えている。前記装置はセキュリティ・ラベル群から成る階層を内蔵したユーザ・セキュリティ・ユニットを備えている。それは前記ユーザ・セキュリティ・ユニットに接続され、かつ、前記データ・マネージャと前記データベースとの間に接続された読み取りセキュリティ・ユニットをも備えている。前記読み取りセキュリティ・ユニットは前記ユーザのセキュリティ・ラベルが前記階層において、前記行のセキュリティ・ラベルが配置されている、前記階層中のレベル用の特権以上である特権を有するレベルに配置されている場合にだけ前記データベースから前記データ・マネージャに前記行を返すように構成されている。
ユーザが発行する要求はビューのクエリを含んでいる必要はない。また、それは前記データベースへのユーザのアクセスを制限するのに、アクセス制御情報を含んだテーブルを結合することも必要としない。
本発明の特徴および利点は次に示す記述、およびその特定の実施形態を説明する図面を考察することにより明らかになる。それらの記述は本発明の特定の細部にわたっているけれども、理解すべき点を挙げると、諸変形例はありうるし現にあるが、ここにおける記述に基づいて当業者にとって明らかであろう。
下で説明する実施形態は図面を参照して記述されている。図中、同一の参照符号は同一の構成要素を表す。
既存のデータベース管理システム(DBMS)の中にはデータベース中の行へのアクセスを制限する機能をいくつか備えたものがある。しかし、そのような既存のシステムはアクセスを必要な行に制限するビューの作成をデータベース管理者に任せている。したがって、アプリケーションのプログラマはそれら特別のビューを使用してセキュリティ制御を実現しなければならない。したがって多くの場合、アプリケーションのプログラマはデータ行へのアクセスを制御するのにそれらのビューが使用する値をセッション変数に代入しなければならない。そのような既存のシステムでもプログラマはデータへのアクセスを制御することができるが、それらのシステムにはいくつかの不都合がある。
たとえば、既存のDBMSでは、データベースへのアクセスを制御するのにビューを使用している。データベースへのアクセスを制御するのにビューを使用することは、データベース管理者とアプリケーションのプログラマにとって実現するのが面倒である。たとえば、セキュリティ機構における各セキュリティ・レベル(たとえば TOP_SECRET VIEW 、SECRET VIEW など)ごとに個別のビューを生成する必要がある、というのが普通ではある。
また、アクセスを制御するのにビューを使用すると、誤りが発生しやすくなる。というのは、ビューを不正確に実現すること、および、間違ったデータ行へのアクセスをうっかり許可してしまうことが起こりがちだからである。さらに、セキュリティ機構の中にはビューすなわちユーザのクエリ上で追加の述語(predicate)として表現するのが困難なものがある。ユーザ・アプリケーションの論理すなわちビューの変更を不要にしてデータへのアクセスを自動的に実行しうるようにすることが求められている。
ビューを用いて達成されるセキュリティ・ポリシは強制的なものではなく、単に自由裁量的であるに過ぎない。人はデータベース管理者の権限を備えれば、セキュリティ機構を実現する特別のビューを使用することなくデータベース中のデータを閲覧することができる。エンド・ユーザ、アプリケーションのプログラマ、およびデータベース管理者による無許可のアクセスを避けうる強制的なセキュリティ制御を実現することが求められている。データベース中のデータへのアクセス権を用いてユーザの活動領域を制限するには、データへの無制限のアクセス権を有する個人をシステムのセキュリティ管理者にだけする必要がある。
図1は複数のウェブ・サイト(すなわちウェブ・サイト12a、ウェブ・サイト12b、ウェブ・サイト12c)をホストするウェブ・サーバ10を備えた既存のデータベース・アプリケーションをシステム・レベルで示す図である。ウェブ・サーバは複数のクライアント(たとえばクライアント16a、16b)との接続を提供するデータ通信ネットワーク14(たとえばインターネット)に接続されている。ウェブ・サーバは各ウェブ・サイトにサービスを提供する単一のDBMS18を備えている。このDBMSは複数のウェブ・サイトが使用するデータを管理している。上記ウェブ・サーバは多くのウェブ・サイトをホストし、しかも単一のDBMSがこれら多くのウェブ・サイトにサービスを提供しているから、ある個人が、ウェブ・サーバ10がホストしているあるウェブ・サイトを使用して、別のウェブ・サイトに属すデータに無許可のアクセスを行うのを防止するためにセキュリティを備える必要がある。既存のウェブ・サーバでは、DBMSはクエリ・プロセッサ20とデータ・マネージャ22を備えている。DBMS18は当該DBMSが管理しているデータを保持するデータ・リポジトリ24に接続されている。
クエリ・プロセッサ20はウェブ・サイトにおいてクライアントから受信する、クエリを含む要求を処理する。たとえば、典型的なクエリはウェブ・サイトにおいて受信するSQL(Structured Query Language)クエリである。このSQLクエリはクエリ・プロセッサ20に渡し、DBMSによる解析と実行の用に供する。このクエリに基づき、クエリ・プロセッサ20はデータ・マネージャ22がデータ・リポジトリ24と対話して適切なデータ処理を行い当該クエリを満足させるように制御する。
図2(a)は図1に示すDBMS中に保持されている既存のユーザ・テーブル(USER.TABLE) 26の一例を示す図である。このテーブルは様々なデータの列(図2(a)ではCOL1、COL2、COL3とラベル付けして示されている)を備えている。このユーザ・テーブルはセキュリティ・ラベル(SECLABEL)の列も備えている。各行は特定のセキュリティ・ラベルに関連付けられている。ここでは、セキュリティ・ラベルとして様々な色(たとえばRED (赤) 、BLUE(青) 、YELLOW(黄)、GREEN (緑) など)の名前を用いている。各色の名前はユーザ・テーブルの行に関連付けられたセキュリティ上の特権の特定の組を表している。たとえば、「RED 」なるセキュリティ・ラベルは当該ラベルに関連付けられたアクセス特権から成る1つの組を有する。一方、別のセキュリティ・ラベル(たとえば「BLUE」なるセキュリティ・ラベル)は別の特権から成る組に関連付けられている。
既存のDBMSては、USER.TABLEへのアクセスはデータベースのビューがが制御している。システム管理者はユーザのセキュリティ・ラベルに基づいてアクセスを制限するために、データベース中の関連するテーブルから成るビューを作成する。
システム管理者はたとえば図2(b)に示すSQLステートメントを用いてテーブルを作成する。ここでは、システム管理者はUSER.VIEW (28a)と呼ぶビューを作成する。この場合、当該ビューは3つの列(すなわちU.COL1、U.COL2、U.COL3)から選択する(図2のライン28b参照)。これらの列は図2(a)に示すUSER.TABLEから選択する。セキュリティ・テーブル(SECURITY.TABLE) 30はユーザID(USERID)とセキュリティ・ラベル(SECLABEL) (たとえばセキュリティ・ラベル「RED 」「BLUE」「GREEN 」など)とを関係付けている。図2(b)のライン28dが要求しているのは、ユーザのセキュリティ・ラベルがセキュリティ・テーブル中で定義されているセキュリティ・ラベルに等しいこと、および、セキュリティ・テーブル中のユーザIDが現在のユーザに等しいことである。これにより、現在のユーザのセキュリティ・ラベルに等しいセキュリティ・ラベルを有する、図2(a)のUSER.TABLE中にある行にだけにアクセスを限定することが可能になる。この既存のアクセス制御機構によってもアクセス制御をある程度行いうるが、それは階層的なセキュリティ機構をサポートしていない。
図2(c)はセキュリティ・テーブル30と、図2(b)のSQLステートメントをUSER.VIEW (32)に適用すると得られるビューとの間の関係を示す図である。ユーザ「SALLY 」がUSER.TABLE(26)にアクセスするために図2(b)のビューを適用する場合、その結果を図2(c)に示す。この場合、図2(c)において、ユーザSALLY がUSER.TABLEへのアクセスを要求すると、図2(b)のビューはテーブル26のSALLY のビューを図2(c)に示すUSER.VIEW(32)に限定する。このビューをテーブル26に適用すると、USER.TABLE(26)にSECURITY.TABLE(30)が結合されてUSER.VIEW (32)が得られる。
図2(d)はユーザSALLY が要求するクエリの一例34を示す図である。SALLY のクエリにはUSER.VIEW からすべての行を選択する「選択」SQL文節が含まれている。既存のDBMSシステムは図2(b)に示すビューを図2(a)に示すUSER.TABLE(26)に適用することにより動作している。図2(c)のSECURITY.TABLE(30)に示すように、SALLY のセキュリティ・ラベルは「BLUE」である。したがって、結果として得られるユーザ・ビュー32は「BLUE」なるセキュリティ・ラベルに等しいセキュリティ・ラベルを有する、USER.TABLE(26)中の行だけを含んでいる。このように、既存のDBMSはユーザのアクセスを一部の行だけに制限している。しかし、既存のアクセス制御手法は階層型のセキュリティ機構をサポートしていないから、アクセスを制限するのにビューを使用する必要がある。
既存のデータベース管理システムに付随するこれらの課題(problem)は行レベルのセキュリティを実現する次に示す概念を用いることにより克服することができる。
(1)データベース管理システムの各エンド・ユーザにSECURITY_LABEL を割り当てる。このラベルは多レベル型セキュリティ機構中における当該ユーザ用のセキュリティ・レベルを定義するとともに、データベース中のデータにアクセスするための特権をいくつか定義している。また、このセキュリティ・ラベルは当該ユーザがアクセスしうる、上記セキュリティ・レベル中のセキュリティ・カテゴリも特定している。セキュリティ・カテゴリの例としては、上記ユーザが従事するのを許可されたソフトウェア開発プロジェクトが挙げられる。たとえば、所定のユーザはあるセキュリティ・レベル(たとえば次に示すようなセキュリティ・レベル:TOP SECRET、SECRET、UNCLASSIFIED)によって指定されているデータを閲覧することができる。また当該ユーザには、数個のカテゴリ(たとえばプロジェクトABC 、DEF 、XYZ )に属すデータにアクセスすることを許可してもよい。セキュリティ・ラベルのもとに格納する値はセキュリティ・レベルとセキュリティ・カテゴリの情報を、セキュリティ体系を形成するように表現する態様で符号化する。このような符号化の一例としてラベルSECRETABC が挙げられる。ただし、「SECRET」はセキュリティ・レベルを特定しており、「ABC 」はセキュリティ・カテゴリA、B、Cを特定している。セキュリティ・カテゴリA、B、Cには、ユーザが従事するように割り当てられたプロジェクトの識別子を用いることができる。
ユーザのセキュリティ・ラベルは様々な手法を用いて決めることができる。たとえば、ユーザのセキュリティ・ラベルは関係DBMSのカタログを使用する探索(lookup)によって、外部のセキュリティ・マネージャに対してセキュリティ呼び出しを行うことにより、あるいは、信頼できるインストール出口ルーチンを呼び出すことにより決めることができる。理解しうるように、ユーザのセキュリティ・ラベルを決めるのに他の手法を用いてもよい。
(2)セキュア・テーブル(secure table)中の各行とセキュリティ・ラベルとを関連付ける。このセキュリティ・ラベルには上記セキュリティ・テーブル(security table)中の列を使用することができる。たとえば、上記列には事前に定めた名前(たとえばSECURITY_LABEL)を付与することができる。あるいは、上記列は上記テーブルを特定するときにSQL文節によって(たとえば、CREATE TABLE列定義におけるSECURITY LABLEとして)特定することができる。理解しうるように、セキュリティ・ラベルと行とを関連付けるのに他の手法を用いてもよい。
行中のSECURITY_LABEL 列は当該行に含まれるデータのセキュリティ・レベルを特定するとともに、当該行の適用先であるセキュリティ・カテゴリを特定している。たとえば、行にはプロジェクトABC (なるセキュリティ・カテゴリ)およびプロジェクトXYZ (なるセキュリティ・カテゴリ)に属し、「SECRET」なるセキュリティ・レベルを有するデータを含めることができる。SECURITY_LABEL のもとに格納する値はセキュリティ・レベルとセキュリティ・カテゴリの情報を、セキュリティ体系を形成するように表現する態様で符号化する。
(3)強制セキュリティ執行機構がセキュアなデータ行に対する読み取りアクセスを制御する。この機構はリレーショナル・データベースのテーブルがSECURITY_LABEL 列を含んでいることが判明したら自動的に起動する。この読み取りセキュリティ執行機構は当該ユーザのセキュリティ・ラベルと当該行のセキュリティ・ラベルとを比較してアクセスを許可すべきか否かを判断する。読み取りアクセスが許可されるのは当該ユーザのセキュリティが当該行のセキュリティを上回っている場合だけである。その場合、次に示す条件の双方が真になる。
(a)当該ユーザのセキュリティ・ラベルが示すセキュリティ・レベルが当該行のセキュリティ・ラベルが示すセキュリティ・レベル以上である。
(b)当該行のセキュリティ・ラベルに付随するセキュリティ・カテゴリが当該ユーザのセキュリティ・ラベルに付随するセキュリティ・カテゴリの適正なサブセットである。
書き込みアクセスを別に制御しているから、ユーザに、当該ユーザよりもセキュリティ・レベルの高い行から読み出さない、あるいは、当該ユーザよりもセキュリティ・レベルの低い行に書き込まない、という一般的な規則を遵守(じゅんしゅ)することを強制することができる。
読み出しアクセス・セキュリティ機構と書き込みアクセス・セキュリティ機構は次に示すような様々な手法を用いてアクセス機構を実現することができる。たとえば、リレーショナルDBMSのカタログを用いた探索を使用する手法、外部のセキュリティ・マネージャのセキュリティ呼び出しを使用する手法、あるいは、信頼できるインストール出口ルーチンに対する呼び出しを使用する手法などである。
(4)強制セキュリティ執行機構がセキュアなデータ行に対する書き込みアクセスを制御する。この機構はリレーショナル・データベースのテーブルが特定の列名を含んでいることが判明したら自動的に起動する。この機構はデータベースに書き込むべき更新済みのデータ行に記録するセキュリティ・ラベルを決める。この書き込みアクセス・セキュリティ機構はそれら更新済みの行の各々が次に示す、とりうる値群のうちの1つを含むように強制する。すなわち、
(a)更新済みの行用のセキュリティ・ラベルとして、ユーザのセキュリティ・ラベルと同一であるセキュリティ・ラベルを使用する。
(b)あるユーザが特に権限を付与されている場合、当該ユーザは当該ユーザの現在のセキュリティ・ラベルが示すレベルよりも低いレベルを有する、行のセキュリティ・ラベルを用いて行を更新することができる。
書き込みアクセス・セキュリティ機構は当該ユーザのセキュリティが行のセキュリティを上回っているか否かを検査して次に示す条件がすべて真であることを確認した後、当該行の更新を許可する。
(i)当該ユーザは、当該ユーザのセキュリティ・ラベルに付随するセキュリティ・レベルよりも低いセキュリティ・レベル用に指定されたセキュリティ・ラベルを備えた行にデータを書き込みうるように特に権限を付与されている。
(ii) 当該行用に指定されたセキュリティ・ラベルのセキュリティ・レベルは当該ユーザのセキュリティ・ラベルに付随するセキュリティ・レベル以下である。
(iii)当該行用に指定されたセキュリティ・ラベル用のセキュリティ・カテゴリは当該ユーザのセキュリティ・ラベルに付随するセキュリティ・カテゴリの適正なサブセットである。すなわち、当該行のラベルに付随するすべてのセキュリティ・カテゴリは当該ユーザのセキュリティ・ラベルにも関連付けられている。
書き込みアクセス・セキュリティ機構は様々な手法を用いてアクセス方式を実装している。たとえば、それは、リレーショナルDBMSのカタログを用いて探索を実行しうるし、外部のセキュリティ・マネージャをセキュリティ呼び出しすることができるし、あるいは、信頼できるインストール出口ルーチンに対する呼び出しを行うことができる。
強制アクセス制御を行レベルでサポートするDBMSを図3に示す。ここでは、DBMS18はクエリ・マネージャ20およびデータ・マネージャ22に加え、読み取り強制セキュリティ・ユニット36および書き込み強制セキュリティ・ユニット38も備えている。DBMS18の典型的な実施形態はオペレーティング・システムz/OS(R) 用のDB2(R) である。(DB2(R) およびz/OS(R) はインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)の登録商標である。)各強制セキュリティ・ユニットはデータ・マネージャ22およびデータ記憶ユニット24に接続されている。両強制セキュリティ・ユニットはユーザ(またはウェブ・サイトなどのアプリケーション・プログラム40)によるデータへのアクセスを階層型セキュリティ機構に従って制御するように動作する。
強制アクセス制御は、データ・マネージャ22とデータ・リポジトリ24との間に強制セキュリティ・ユニットを配置することにより行う。データ・マネージャ22がデータ記憶ユニット24から1行のデータを読み取ろうとすると、その要求は読み取り強制セキュリティ・ユニット36に送付される。このセキュリティ・ユニットはデータ・マネージャから渡されたユーザのセキュリティ・ラベルとデータ記憶ユニット24中にある要求されたデータ行に付随するセキュリティ・ラベルとを比較する。上記条件が合致したら、当該行へのアクセスを許可する。すなわち、読み取り強制セキュリティ・ユニット36はユーザのセキュリティ・ラベルから当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリを確認する。それは行のセキュリティ・ラベルから当該行のセキュリティ・レベルと当該行のセキュリティ・カテゴリを確認することも行う。ユーザのセキュリティ・レベルが行に付随するセキュリティ・カテゴリ以上であり、かつ、当該行に付随するセキュリティ・カテゴリが当該ユーザに付随するセキュリティ・カテゴリの適正なサブセットである場合、読み取りアクセスを許可する。データに対する読み取りアクセスの試みはすべて読み取り強制セキュリティ・ユニットに渡されるから、強制アクセス制御が達成される。
同様に、更新済みの行をデータベースに書き込む場合には、書き込み強制セキュリティ・ユニット38がデータ・マネージャ22からその要求を受領し、当該行をデータ記憶ユニット24に格納する。書き込み強制セキュリティ・ユニット38によって、上記条件が合致した後に、データ記憶ユニット24中の当該行を更新することが許される、ということが保証される。つまり、書き込み強制セキュリティ・ユニットによって、次に示す事項が保証される。すなわち、ユーザのセキュリティ・ラベルは、当該ユーザのセキュリティ・レベルおよびセキュリティ・カテゴリの双方が、更新すべき行のセキュリティ・ラベルが示しているセキュリティ・レベルおよびセキュリティ・カテゴリと合致することを示している。
図4に、階層型セキュリティ機構を概念的に示す。ここでは、このセキュリティ機構は色の名前を用いてラベル付けしたセキュリティ・レベルを表している。たとえば、セキュリティ・レベル42はラベル「RED(赤) 」を担持し、セキュリティ・レベル44はラベル「ORANGE( 橙〔だいだい〕) 」を担持し、セキュリティ・レベル46はラベル「YELLOW (黄) 」を担持している。同様に、セキュリティ・レベル48はラベル「GREEN(緑) 」を担持し、セキュリティ・レベル50はラベル「BLUE (青) 」を担持し、セキュリティ・レベル52はラベル「INDIGO (藍) 」を担持し、セキュリティ・レベル54はラベル「VIOLET (菫〔すみれ〕) 」を担持している。これらのセキュリティ・レベル(すなわち色の名前)は既存のデータベースで使用している、図2(a)に示すセキュリティ・ラベルに似ている。しかし、図4に示す機構は階層型セキュリティ機構であり、そこではセキュリティ・レベル群はグループ化され多レベル・セキュリティ体系における、セキュリティの様々なレベルを創成している。たとえば、ラベル「SUNSET (茜〔あかね〕) 」を担持するセキュリティ・レベル56はその分岐中のより低レベルのセキュリティ・ラベル(すなわちRED 、ORANGE、YELLOW)用のアクセス特権をすべて含んでいる。したがって、セキュリティ体系において、セキュリティ・ラベル「SUNSET」はセキュリティ・ラベル「RED 」「ORANGE」「YELLOW」よりも高いレベルに配置されている。同様に、「PASTEL (パステル) 」とラベル付けされたセキュリティ・レベル58はその分岐中のより低いレベルのセキュリティ・ラベル、すなわちセキュリティ・ラベル「BLUE」「INDIGO」「VIOLET」の特権をすべて含んでいる。このように、この階層型セキュリティ機構においては、セキュリティ・ラベル「PASTEL」はセキュリティ・ラベル「BLUE」「INDIGO」「VIOLET」よりも高いレベルに配置されている。
「RAINBOW(虹) 」とラベル付けされたセキュリティ・レベル60はこのセキュリティ階層の最高のレベルに配置されている。図4に示すように、ラベル「RAINBOW 」は図4に示すツリー構造中にあるすべてのセキュリティ・ラベルの特権をすべて含んでいる。この階層型セキュリティ機構は多レベルのアクセス制御をサポートしている。
ここで説明した強制セキュリティ・アクセス制御を使用するDBMSでは、ユーザはDBMSのテーブルに直接に照会することができるが、強制アクセス制御が自動的に実行される。これにより、既存のDBMSの場合と異なり、アクセスを制御するビューを使用する必要なく、クエリ(たとえば図5(a)に示すクエリ62)をDBMSに適用することが可能になる。ここでは、図5(a)に示す「BOSS 2」が出すクエリはSELECT文節62を含んでいる。このSELECT文節はユーザ・テーブル「USER.TABLE」に属すデータをすべて選択することを意図している。DBMSがアクセス制御をまったく備えていないと、ユーザのセキュリティ・レベルとは無関係にテーブル全体の内容を返すことになる。しかし、このクエリを強制アクセス制御を備えたDBMSに適用すると、返されるデータの行はユーザがアクセスするのを許可されている行だけになる。
この制御の側面を図5(b)示す。ここでは、ユーザ・テーブル26は各々がセキュリティ・ラベル(すなわちセキュリティ・ラベル「RED 」「BLUE」「YELLOW」など)を担持する行群を備えている。ユーザまたはアプリケーション40が出す、図5(a)に示すクエリをDBMSが受領すると、クエリ・プロセッサ20は当該クエリを処理し、USER.TABLE(26)の行をすべて選択する要求をデータ・マネージャ22に送付する。しかし、読み取りセキュリティ・ユニット36が、返される、ユーザ・テーブルの行をセキュリティ機構64に基づいて制限するように動作している。ユーザIDと当該ユーザ用のセキュリティ・ラベルとを関係付ける様々なセキュリティ機構、たとえば、図5(b)に示すテーブルなどを使用することができる。しかし、理解しうる点を挙げると、ユーザに付随するセキュリティ・ラベルを決めるのに他のセキュリティ機構を使用してもよい。
特定のセキュリティ・ラベルは図4に示す階層中のリーフ・ノードにあるセキュリティ・レベル(level)(たとえばセキュリティ・ラベル「RED 」)であるかもしれない。あるいは、特定のセキュリティ・ラベルはより高いレベルのラベル(たとえばセキュリティ機構64の行64bに示すセキュリティ・レベル(level)「RAINBOW 」)であるかもしれない。たとえば、ユーザ「BOSS 1」はテーブル64において、行64b中のラベル「RAINBOW 」によって定義されるアクセス特権を有している。これにより、当該ユーザには高度のアクセス権が与えられている。同様に、別のユーザ(たとえば「BIG BOSS」)も同じ高レベルのラベル(たとえば行64cに示すセキュリティ・レベル(level)「RAINBOW 」)を使用することができる。
階層型セキュリティ・レベルの別の例がユーザID「BOSS 2」用の行64dに示されている。BOSS 2のセキュリティ・ラベルは「SUNSET」である。図4に示すように、セキュリティ・ラベル「SUNSET」を有するBOSS 2はセキュリティ・ラベル「RED 」「ORANGE」「YELLOW」の特権をすべて含むアクセス特権を有する。したがって、BOSS 2が、図5(a)に示すクエリを発行すると、読み取り強制セキュリティ・ユニットはBOSS 2用のセキュリティ・ラベルとUSER.TABLE(26)中の各行用のセキュリティ・ラベルとを比較する。ラベル「SUNSET」はセキュリティ・ラベル「RED 」「ORANGE」「YELLOW」の特権をすべて含んでいるから、読み取り強制セキュリティ・ユニット36はセキュリティ・ラベル「RED 」を備えた行26a、セキュリティ・ラベル「YELLOW」を備えた行26c、およびセキュリティ・ラベル「RED 」を備えた行26gを返す。図4に示すように、これらのセキュリティ・ラベルは階層中でラベル「SUNSET」に従属しているから、他の行、すなわち行26b、26d、26e、26f、および26hは返さない。なぜなら、こらの行用のセキュリティ・ラベルは図4に示す階層の「SUNSET」なる分岐中に存在しないからである。このように、ユーザBOSS 2はBOSS 2に付随するセキュリティ・ラベルのレベル以下のセキュリティ・レベルを有する行だけにアクセスを制限するビューを使用することなく、図5(a)に示すクエリ62を発行することができる。
図6は図3に示したDBMSシステムの別の実施形態を示す図である。ここでは、キャッシュを用いて性能を向上させている。キャッシュはセキュリティ・ラベルの情報を容易に利用できるメモリに格納するように動作する。この結果、行にアクセスするたびに、特定のセキュリティ・ラベルに付随するセキュリティ・レベルおよび付随する特権ならびにカテゴリを確認するために外部のルーチンを呼び出したり、探索を実行してセキュリティ・ラベルを解釈する必要がなくなる。ここでは、DBMSは特定のユーザ用に処理する各クエリ用に定めたセキュリティ・ラベルの情報を保持するキャッシュ66を備えている。
図6に示す実施形態において、ユーザはDBMSにSQLクエリ68を発行する。クエリ・プロセッサ20は受領したクエリを既存の方法で処理する。図6に示すように、クエリはカーソルをオープンし、ループを実行することにより開始する。このループには図6に示すデータ・マネージャ/強制セキュリティ・ユニット70との相互作用を惹起する、次行を取得することが含まれている。データ・マネージャ/強制セキュリティ・ユニット70には図3に示したデータ・マネージャ、ならびに、読み取り強制セキュリティ・ユニット36および書き込み強制セキュリティ・ユニット38の双方の機能を、個別にあるいは組み合わせて含めることができる。ここでは、図6において、これらのものは同じユニットに存在するように示してある。以下、説明を簡易にするために、データ・マネージャ/強制セキュリティ・ユニット70を単に「データ・マネージャ」70と呼ぶ。
データ・マネージャ70はデータ記憶ユニット24から次行を検索・取得(retrieve)する。データ記憶ユニット24から行を検索・取得すると、データ・マネージャ70は強制セキュリティ機能を実行し、返された行がセキュリティ・ラベルを備えているか否かを検査する。YESなら、キャッシュ66を検索して当該セキュリティ・ラベルに付随する情報が当該キャッシュにすでに存在するか否かを判断する。YESなら、当該キャッシュ中の当該セキュリティ情報を用いてユーザのセキュリティ・レベルと検索・取得した行に付随するセキュリティ・レベルとを比較する。当該キャッシュ中に当該セキュリティ・レベルが存在しない場合には、データ・マネージャ70は当該セキュリティ・ラベルに付随する情報を決める。これは様々な方法で、たとえば図6に示すようにセキュリティ層を呼び出すことにより実行することができる。このセキュリティ・ラベル情報の決定の結果はキャッシュ66に格納する。これにより、セキュリティ・ラベル呼び出しの結果をキャッシュすることが可能になる。
セキュリティ情報が得られたら、検索・取得した行に付随するセキュリティ・レベルおよびカテゴリとユーザのセキュリティ・ラベルに付随するセキュリティ・レベルおよびカテゴリとを比較する。次いで、ユーザが当該行へアクセスするのを許可するか否かを決定する。
比較の結果が当該ユーザにアクセス権を付与すべきであるというものなら、当該行をクエリ・プロセッサ20に戻し当該ユーザへの返還の用に供する。次いで、クエリ・プロセッサ20中に示すループを当該クエリが完了するまで繰り返す。
クエリが完了したら、クエリ・プロセッサはデータ・マネージャに通知し、当該データ・マネージャはキャッシュをパージ(消去)する。このように、キャッシュの情報が使用されるのは単一のユーザによる単一のクエリのためだけである。換言すると、1人のユーザが行う1つのクエリごとに、キャッシュに保持されているセキュリティ・ラベルの情報をリフレッシュするから、当該キャッシュ中に当該情報が存在するのは当該ユーザのクエリを処理している間だけである。ユーザのセキュリティ・レベルと行のセキュリティ・レベルはクエリを実行している間は不変のままであると仮定している。しかし、各クエリの後にキャッシュをパージしているから、ユーザのセキュリティ・レベルおよびデータ中の行のセキュリティ・レベルの双方を変更することができるので、当該キャッシュに保持されている情報を無効する必要はない。
次に示すのは、強制アクセス制御を用いて行レベルのセキュリティを実現するために使用しうるプロセスの例である。
データベースの管理者が図3に示したDBMS中にテーブルを作成するとき、当該管理者は当該テーブルにSECURITY_LABEL 列を含める。当該管理者は保護すべきテーブルにもSECURITY_LABEL 列を付加することができる。DBMSはSECURITY_LABEL 列が存在することを用いて行レベルのセキュリティを自動的に起動させている。したがって、行レベルのセキュリティ機構はSECURITY_LABEL 列が存在すること、およびデータ行の内容によって起動される。SECURITY_LABEL 列によって、各ユーザがアクセスするのを許可されている行を特定する特別のビューをデータベースの管理者が作成するか否かとは無関係に、データベース中の行群用にセキュリティ制御を使用することが可能になる。そのようなセキュリティ制御によって、セキュリティ・テーブルが存在するときは常に行レベルのセキュリティを強制することが可能になる。そして、このようなセキュリティ制御は直接に上記テーブルにアクセスしても(すなわち行へのアクセスを制御する特別のビューを使用しても、あるいは、それを回避しても)迂回することができない。各行に格納されているセキュリティ・ラベルは次に示す2つの特定の情報片をカプセル化した符号化済みの値を備えている。
(a)行に含まれているデータのセキュリティ・レベル。これにより、多レベルかつ階層型のセキュリティ機構(たとえばTOP SECRET、SECRET、UNCLASSIFIEDなど)を実現することが可能になる。
(b)データから成る当該行の適用先であるセキュリティ・カテゴリ。たとえば、1行のデータは6つのセキュリティ・カテゴリ(たとえば、当該行を使用する基盤をなすプロジェクトA、B、C、D、E、F)に関連付けることができる。セキュリティ・ラベルは、データから成る当該行の所属先になる可能性のあるセキュリティ・カテゴリのサブセットをセキュリティ機構が決めるのを可能にしうるように符号化することができる。
エンド・ユーザがDBMSにログオンするとき、当該ユーザは当該DBMSに対して当該ユーザを特定する認証トークン(たとえば、ユーザID/パスワード、KERBEROSチケット、など)を提示する。ユーザのIDが確認されたら、DBMSは当該エンド・ユーザに関連付けるセキュリティ・ラベルを決める。これは次に示すような様々な手法を用いて行うことができる。たとえば、DBMSの許可テーブル群中の1つのテーブルを探索する手法、外部のセキュリティ製品にセキュリティ検査を依頼する手法、信頼できるユーザ出口ルーチンを使用する手法などである。行用のセキュリティ・ラベルの場合と同様に、ユーザのセキュリティ・ラベルも次に示す情報をカプセル化しうるように符号化する。
(a)当該ユーザがアクセスするのを許可されているデータのセキュリティ・レベル。これにより、多レベルかつ階層型のセキュリティ機構(たとえばTOP SECRETレベル、SECRETレベル、UNCLASSIFIEDレベルなど)を実現することが可能になる。
(b)当該ユーザが関連付けられているとともにアクセスするのを許可されているセキュリティ・カテゴリ。たとえば、1人のユーザを3つの異なるプロジェクト(たとえば、セキュリティ・カテゴリとして各々指定しうるプロジェクトA、B、C)に関連付けることができる。
図7はユーザが、強制アクセス制御が存在するデータベースに照会するプロセスを示す図である。操作72において、あるユーザが、SECURITY_LABEL 列を有するテーブルを備えたDBMSに対して発行するクエリを準備する。当該ユーザは当該DBMSにログオンすることにより、あるいは別の方法により、自身を当該DBMSに識別させる。操作74において、当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリを上述した手法を用いて確認する。操作76において、たとえばクライアント/サーバ・システムにおけるクライアントが、当該ユーザのクエリを備えた要求を準備する。この要求は当該ユーザの上記クエリに加え、当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリを用いて符号化したユーザ・セキュリティ・ラベルも含んでいる。操作78において、この要求を上記DBMSに送付する。
図8を参照する。操作80において、DBMSがユーザの要求を受領する。操作82において、当該DBMSはクエリ・プロセッサとデータ・マネージャを用いて当該要求を処理し、当該ユーザのクエリの述語に合致する行を発見すべく、要求されたテーブルを走査する。当該ユーザのアプリケーションにデータを返す前に、当該DBMSはセキュリティ機構を呼び出して当該ユーザが当該データを閲覧するのを許可されているか否かを判断する。最初の判断は操作84においてデータベースのテーブルがSECURITY_LABEL 列を有するか否かを判断することである。当該テーブルがSECURITY_LABEL 列を有さない場合、操作86において当該クエリを既存の方法で処理し、操作88において当該クエリの結果を当該ユーザに返す。
上記テーブルがSECURITY_LABEL 列を有する場合、操作90においてセキュリティ機構を呼び出し、上記ユーザのセキュリティ・ラベルを復号することにより当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリを確認する。次いで、行のセキュリティ・ラベルをSECURITY_LABEL 列から検索・取得して復号する。セキュリティ機構は次に示すような多くの方法で実現することができる。たとえば、DBMSの許可テーブル内を探索する方法、外部のセキュリティ製品を呼び出す方法、インストール出口ルーチンによる方法、などである。セキュリティ機構は行のセキュリティ・ラベルを検査して当該ユーザが当該特定の行を検索・取得しうるように許可されているか否かを判断する任に当たる。これは操作92において当該ユーザのセキュリティ・レベルと当該行のセキュリティ・レベルとを比較することにより行う。各行がとっている可能性のある状況には2つのものがある。
(a)当該行のセキュリティ・ラベル(label)の値が、当該ユーザがアクセス可能な値の範囲内である。これが成立するのは当該ユーザのセキュリティが当該行のセキュリティを上回っている場合であり、次に示す条件の双方が真の場合である。
(i)当該ユーザのセキュリティ・ラベルが示すセキュリティ・レベルが、当該行のセキュリティ・ラベルが示すセキュリティ・レベル以上である。これは操作94において判断する。NOなら、操作96において当該ユーザが当該行にアクセスするのを拒否する。YESなら、操作98において次の条件を検査する。
(ii) 当該行のセキュリティ・ラベルに付随するセキュリティ・カテゴリが、当該ユーザのセキュリティ・ラベルに付随するセキュリティ・カテゴリの適正なサブセットである。これは操作98において判断する。それが真なら、DBMSは当該行を処理し、要求されたデータ値を検索・取得し、その結果を当該ユーザに返す(操作102)。真でないなら、当該ユーザが当該行にアクセスするのを拒否する(操作100)。
(b)当該行に付随するセキュリティ・ラベル(label)が、当該ユーザのセキュリティ・ラベルに対応する値の範囲外である。この場合、DBMSは当該データベース管理システム用に採用しているセキュリティ・ポリシに従い、当該行を無視する、あるいは、セキュリティの破壊が試みられたことを宣言する。したがって、操作96と操作100に示すように、ユーザが、保護されている行にアクセスするのを拒否する。
行レベルのセキュリティ検査に付随するコンピュータ・プロセッサの使用率と所要時間を最小化するために、DBMSはユーザのトランザクションを処理する間に、当該トランザクションの実行中に認証に成功した行のセキュリティ・ラベル値を図6に示したキャッシュ66にキャッシュすることができる。引き続く行中に当該ユーザのキャッシュ中にすでに存在するセキュリティ・ラベル値が出現したら、そのセキュリティ検査を回避してもよい。なぜなら、当該特定のセキュリティ・ラベル値はセキュリティ検査にすでに合格しているからである。確認済みのセキュリティ・ラベル値のキャッシュはデータベースのコミット境界とロールバック境界において破棄するから、セキュリティ・ポリシのその後の変更は次の作業単位において反映させる。
セキュリティ機構にセキュリティ・レベルおよびセキュリティ・カテゴリの双方を検査させると、様々なセキュリティ・ポリシをサポートする際に、当該セキュリティ機構の柔軟性が大幅に向上する。このことの数例として、次に示すものがある。
(a)インストール時に、正確に一致した場合にだけアクセスを許可するように選定する(ユーザのセキュリティ・ラベル=「RED 」、かつ、行のセキュリティ・ラベル=「RED 」)。
(b)インストール時に、行のセキュリティ・ラベルがユーザのセキュリティ・ラベルの適正なサブセットである場合にだけアクセスを許可するように選定する(ユーザのセキュリティ・ラベル=「RAINBOW 」。これは「RED 」「ORANGE」「YELLOW」「GREEN 」「BLUE」「INDIGO」「VIOLET」が当該ユーザ用の行のセキュリティ・ラベルに許される値であることを意味する)。
(c)インストール時に、階層に基づいてアクセスを許可するように選定する。たとえば、ユーザ用のセキュリティ・ラベル「TOP SECRET」はそれ以下のレベル(すなわち、「TOP SECRET」「SECRET」「UNCLASSIFIED」なる行のセキュリティ・レベル値)にあるすべてのセキュリティ・レベルへのアクセスを許可する。
(d)用途によっては、上述した機構を組み合わせたものを使用してもよい。
図9を参照する。操作104においてユーザがデータベース・テーブルの行中のデータの更新(行中のデータの変更または行の挿入)を要求したら、操作106において当該ユーザを特定し、当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリを確認する。次いで、操作108において当該ユーザのセキュリティ・レベルとセキュリティ・カテゴリに加え当該行の更新を含む要求を準備する。次いで、操作110において、当該要求をDBMSに送付する。
図10を参照する。ユーザが更新要求(たとえば、データを更新するSQL要求〔INSERT、UPDATEなど〕)を発行すると、操作112においてDBMSは当該要求を受領する。当該要求には行中のデータの更新依頼と、当該ユーザのセキュリティ・レベルおよびセキュリティ・カテゴリを表す当該ユーザのセキュリティ・ラベルとが含まれている。次いで操作114において、セキュリティ機構が更新対象の行に付随するセキュリティ・ラベルを確認する。この実施形態では、更新対象の行用のセキュリティ・ラベルとして当該ユーザのセキュリティ・ラベルを使用する。あるいは、用途および動作環境にとって適切な基準に基づいて、異なるセキュリティ・ラベルを選定してもよい。次いで操作116において、セキュリティ機構は更新すべき行がSECURITY_LABEL 列を含んでいるか否かを判断する。NOなら、操作118において既存の方法で更新を処理する。
当該行がSECURITY_LABEL 列を含んでいる場合、当該ユーザのセキュリティ・ラベル(label)が当該行用のセキュリティ・ラベル(label)と等しいか否かを判断する操作120を実行する。YESなら、操作122において更新を実行した後、当該行のセキュリティ・ラベルを当該ユーザのセキュリティ・ラベルと等しくなるように設定する。
当該ユーザのセキュリティ・ラベル(label)が当該行のセキュリティ・ラベル(label)と等しくない場合、操作124において当該ユーザが当該ユーザのセキュリティ・レベルとは異なるセキュリティ・レベルを備えた更新情報を記録しうるように特別に許可されているか否かを判断する。当該ユーザが特別に許可されていない場合、操作126において、更新するために当該テーブルにアクセスすることを拒否する。しかし、当該ユーザが特別に許可されている場合には、当該ユーザのセキュリティ・ラベルから確認される当該ユーザのセキュリティ・レベルと更新すべき行用のセキュリティ・レベルとを比較し、操作128において、当該ユーザのセキュリティが当該行のセキュリティを上回っているか否かを判断する。この操作では、当該ユーザのセキュリティ・ラベルと当該行のセキュリティ・ラベルを復号し、その中に符号化されているセキュリティ情報を確認する。この復号操作は次に示す異なる多くの手法を用いて実現することができる。たとえば、DBMSの許可テーブル群内を探索する手法、外部のセキュリティ製品を呼び出す手法、インストール出口ルーチンを使用する手法などである。次いで操作128において、復号済みのセキュリティ・ラベルに属す情報(たとえば、セキュリティ・レベル情報など)を比較する。
図11への結合子「A」に続き操作130において、上記比較に基づき当該ユーザのセキュリティ・レベルが当該行用のセキュリティ・レベル以上であるか否かを判断する。NOの場合、操作132において、更新を行うために当該ユーザが当該行にアクセスするのを拒否する。しかし、当該ユーザのセキュリティ・レベルが当該行のセキュリティ・レベル以上である場合には、セキュリティ・カテゴリ群を比較する操作134を実行する。
操作134において、更新すべき行のセキュリティ・カテゴリが当該ユーザのセキュリティ・カテゴリの適正なサブセットを形成している場合、操作136において、更新済みの行をデータベースに記録する。ある行用のセキュリティ・カテゴリがあるユーザ用のセキュリティ・カテゴリの適正なサブセット(部分集合)を形成するのは、当該行のすべてのセキュリティ・カテゴリが当該ユーザ用のセキュリティ・カテゴリの組(セット、集合)に含まれている場合である。しかし、ある行用のセキュリティ・カテゴリがあるユーザのセキュリティ・カテゴリの適正なサブセットを形成していない場合には、操作138において、当該ユーザが当該行を更新するためにアクセスするのを拒否する。
ある行を更新する際、セキュリティ機構(たとえば、図3に示す書き込み強制セキュリティ・ユニット38)は当該ユーザのセキュリティ・ラベル値だけでなく、当該行のセキュリティ・レベルの値案を備えてもよい。この値案はたとえば、当該ユーザのSQL更新操作によって得ることができる。セキュリティ機構は当該行のセキュリティ・ラベルを、変更することなく記録しうるように選定してもよいし、あるいは、インストール時のセキュリティ・ポリシに基づいて、当該行のセキュリティ・ラベルに異なる値を強制的に代入するように選定してもよい。これにより、所望する任意のセキュリティ・ポリシをインストール時に採用することが可能になる。たとえば、更新情報をすべて、被変更行のセキュリティ・ラベル(更新を行ったユーザのセキュリティ・ラベル)に強制的に記録するようにセキュリティ・ポリシを選定することができる。また、所定のユーザが当該ユーザのセキュリティ・ラベルとは異なる、行のセキュリティ・ラベル値を用いて更新を行うのを可能にする別のセキュリティ・ポリシを選定してもよい。このようなセキュリティ・ラベル値の例としては、当該ユーザのセキュリティ・ラベル値の適正なサブセットである値、および、当該ユーザのセキュリティ・レベル以下である値が挙げられる。
強制セキュリティ・ユニットの諸機能を実行するのに使用しうる製品の一例として、RAFC(R) (Resource Access Control Facility )(RAFC(R) はインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)の登録商標である)が挙げられる。一実施形態によると、データベース・テーブルはセキュリティ・ラベルとして機能する特別に名付けられた列を付加することにより、行レベルのセキュリティ・サポートを起動することができる。RAFC(R) の出口(exit)を使用すると、カーソルに付随する各セキュリティ・ラベル値を検査することができるとともに、SQLクエリを発行したSQLクエリの要求者が当該データ行にアクセスするのを許可されているか否かを判断することができる。RAFC(R) 中のセキュリティ層は階層関係(たとえば、図4に示す虹の色群を表す階層など)認識することができる。
RAFC(R) 中に確立されるこの階層によって、DBMSには、情報「PASTEL」にアクセスする権限を有するユーザは「BLUE」「INDIGO」「VIOLET」または「PASTEL」に付随する任意の行にアクセスしうるということが分かる。これらの機能によって、この種のセキュリティ機構は特別のビューまたは述語を用いてデータにアクセスするアプリケーション・プログラムを必要とすることなく実現することが可能になる。
以上、リレーショナル・データベース管理システムにおいて行レベルのセキュリティを実現する装置、製品、および方法を説明した。信ずべき点を挙げると、ここに開示した教示に鑑み、当業者は他の変更例、変形例、および置換例を想到しうる。したがって、理解すべき点を挙げると、そのような変更例、変形例、および置換例はすべて特許請求の範囲によって定義した本発明の範囲内のものであると信じる。また、ここでは特定の用語を使用したが、それらはここで明示的に別様に定義した場合を除き、その通常の、かつ慣例的な態様でのみ使用しており、限定を目的としていない。
複数のウェブ・サイト用のデータを管理する既存のデータベース管理システムを備えたウェブ・ホストを示す図である。 データベース・テーブル中のデータから成るある行へのユーザのアクセスを制限する既存の方法で使用するデータベース・テーブル、ビューを作成するためのSQLステートメント、そのビュー、およびクエリをそれぞれ示す図である。 強制アクセス制御を可能にする行レベルのアクセス制御をサポートする読み取り強制セキュリティ実行ユニットと書き込み強制セキュリティ実行ユニットを有するデータベース管理システムを備えたアクセス制御システムを示すブロック図である。 図3に示すアクセス制御システムがサポートしている階層型のセキュリティ機構の一例を示す図である。 図4に示すセキュリティ階層を採用した、クエリ、データベース・テーブル、およびセキュリティ機構を示す図である。 行レベルの強制アクセス制御を実現する際に、図3に示すデータベース管理システムにおいてキャッシュを使用して性能を改善する様子を示す図である。 行レベルの強制アクセス制御を実現しているデータベース管理システムに照会するフローチャートを示す図である。 行レベルの強制アクセス制御を実現しているデータベース管理システムに照会するフローチャートを示す図である。 行を更新する要求を送付し、行レベルの強制アクセス制御を実現しているデータベース管理システムにおいて当該行を更新するフローチャートを示す図である。 行を更新する要求を送付し、行レベルの強制アクセス制御を実現しているデータベース管理システムにおいて当該行を更新するフローチャートを示す図である。 行を更新する要求を送付し、行レベルの強制アクセス制御を実現しているデータベース管理システムにおいて当該行を更新するフローチャートを示す図である。
符号の説明
10 ウェブ・サーバ
12 ウェブ・サイト
14 ネットワーク
16 クライアント
18 DBMS
20 クエリ・プロセッサ
22 データ・マネージャ
24 データ
26 ユーザ・テーブル(USER.TABLE)
28 ライン
30 セキュリティ・テーブル(SECURITY.TABLE)
32 ユーザ・ビュー(USER.VIEW )
34 クエリの一例
36 読み取り強制セキュリティ・ユニット
38 書き込み強制セキュリティ・ユニット
40 アプリケーション
42 RED
44 ORANGE
46 YELLOW
48 GREEN
50 BLUE
52 INDIGO
54 VIOLET
56 SUNSET
58 PASTEL
60 RAINBOW
62 クエリ
64 セキュリティ機構
66 キャッシュ
68 ユーザが出すSQLクエリ
70 データ・マネージャ/強制セキュリティ・ユニット

Claims (9)

  1. リレーショナル・データベースへのアクセスを制御する方法であって、データ・マネージャおよびデータベースを備えたデータベース管理システム内で使用するための装置に、
    前記データベースに属すデータを求めるユーザの要求をクライアントからするステップであって、前記要求はデータベース操作を実行する要求およびユーザのセキュリティ・ラベルを含む、前記受信するステップと、
    前記要求に含まれている前記ユーザのセキュリティ・ラベルに基づいてユーザのセキュリティ情報を確認するステップと、
    前記ユーザの要求に応答して、データ記憶装置中の前記データベース中のテーブルから、前記データベース操作を満たす行を検索するステップであって、前記行はセキュリティ・ラベルを備えている、前記検索するステップと、
    前記検索された行のセキュリティ・ラベルに基づいて該検索された行用のそれぞれの行のセキュリティ情報を確認するステップであって、前記行のセキュリティ・ラベルに対応する表のセキュリティ情報用のキャッシュを検査するステップを含む、前記確認するステップと、
    前記ユーザのセキュリティ情報および前記検索された行のセキュリティ情報に基づいて前記ユーザが前記行にアクセスすることを許可されているか否かを、前記検索された行について判断するステップと、
    前記ユーザがアクセスすることを許可されている前記行を前記クライアントに返すステップと
    実行させることをみ、
    前記ユーザのセキュリティ・ラベルが、前記検索された行のセキュリティ・ラベルによって示されるセキュリティ・レベル以上のアクセスの程度を有するセキュリティ・レベルに対応し、且つ前記検索された行のセキュリティ・ラベルが、前記ユーザのセキュリティ・ラベルに対応するセキュリティ・カテゴリ群の適正なサブセットであるセキュリティ・カテゴリ群に対応する場合にだけ、前記ユーザは前記検索された行にアクセスしうるように許可されていると判断される、
    前記方法。
  2. 前記ユーザのセキュリティ・ラベルは、セキュリティ・レベル群から成る階層中に配置された複数のセキュリティ・ラベルのうちの1つであり、又は
    前記行のセキュリティ・ラベルは、セキュリティ・レベル群から成る階層中に配置された複数の行のセキュリティ・ラベルのうちの1つである、請求項1に記載の方法。
  3. データの前記行を含む前記テーブルは、データベースへのユーザアクセスを制限するためのアクセス制御情報を備えている、請求項1又は2に記載の方法。
  4. データ・マネージャおよびデータベースを備えたデータベース管理システム内で使用するための装置において、前記装置はユーザが前記データベース中に保持されているデータから成る行について要求された操作を実行しうるように許可さているか否かを判断し、前記ユーザはユーザのセキュリティ・ラベルに関連付けられており、及び前記行は行のセキュリティ・ラベルを備えている、前記装置であって、
    セキュリティ・レベル群から成る階層をその中に記録したユーザ・セキュリティ・ユニットであって、前記ユーザのセキュリティ・ラベルは、前記階層中に配置された複数のセキュリティ・ラベルのうちの1つである、前記ユーザ・セキュリティ・ユニットと、
    前記ユーザ・セキュリティ・ユニットに接続され、かつ、前記データ・マネージャと前記データベースとの間に接続された読み取りセキュリティ・ユニットであって、前記ユーザのセキュリティ・ラベルが、前記検索された行のセキュリティ・ラベルによって示されるセキュリティ・レベル以上のアクセスの程度を有するセキュリティ・レベルに対応し、且つ前記検索された行のセキュリティ・ラベルが、前記ユーザのセキュリティ・ラベルに対応するセキュリティ・カテゴリ群の適正なサブセットであるセキュリティ・カテゴリ群に対応する場合にだけ、前記ユーザは前記検索された行にアクセスしうるように許可されていると判断される、前記読み取りセキュリティ・ユニットと
    を備えている、前記装置。
  5. 前記データ・セキュリティ・ユニットに接続され、かつ、前記データ・マネージャと前記データベースとの間に接続された書き込みセキュリティ・ユニットを備えており、前記書き込みセキュリティ・ユニットは、前記要求された操作が行を更新する操作である場合に前記行のセキュリティ・ラベルを前記ユーザのセキュリティ・ラベルと同一の値に設定する、請求項4に記載の装置。
  6. 前記書き込みセキュリティ・ユニットは、前記ユーザがより低いレベルのセキュリティ・ラベルを備えた行を更新するしうるように許可されている場合であり、かつ、前記より低いレベルのセキュリティ・ラベル用に指定されたセキュリティ・カテゴリ群が、前記ユーザのセキュリティ・ラベルに関連付けられたセキュリティ・カテゴリ群の適正なサブセットである場合に、前記行のセキュリティ・ラベルを前記ユーザのセキュリティ・レベルよりも低いレベルに設定する、請求項5に記載の装置。
  7. データの前記行を含む前記テーブルは、データベースへのユーザアクセスを制限するためのアクセス制御情報を備えている、請求項4〜6のいずれか1項に記載の装置。
  8. キャッシュされたセキュリティ・ラベルに関連付けられたセキュリティ情報用のキャッシュをさらに含み、前記読み取りセキュリティ・ユニットは、前記行のセキュリティ・ラベルが前記キャッシュされたセキュリティ・ラベルと合致する場合に、前記キャッシュ中の前記セキュリティ情報を使用する、請求項4〜7のいずれか1項に記載の装置。
  9. 請求項1〜3のいずれか1項に記載の方法の各ステップを前記装置に実行させるコンピュータ・プログラム。
JP2004533614A 2002-09-04 2003-09-02 リレーショナル・データベースへのアクセスを制御する方法 Expired - Lifetime JP4398371B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/233,397 US7240046B2 (en) 2002-09-04 2002-09-04 Row-level security in a relational database management system
PCT/GB2003/003795 WO2004023375A1 (en) 2002-09-04 2003-09-02 Row level based access control to a relational database

Publications (2)

Publication Number Publication Date
JP2006502472A JP2006502472A (ja) 2006-01-19
JP4398371B2 true JP4398371B2 (ja) 2010-01-13

Family

ID=31977232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004533614A Expired - Lifetime JP4398371B2 (ja) 2002-09-04 2003-09-02 リレーショナル・データベースへのアクセスを制御する方法

Country Status (6)

Country Link
US (5) US7240046B2 (ja)
JP (1) JP4398371B2 (ja)
CN (1) CN100444180C (ja)
AU (1) AU2003260770A1 (ja)
TW (1) TWI249111B (ja)
WO (1) WO2004023375A1 (ja)

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7669051B2 (en) * 2000-11-13 2010-02-23 DigitalDoors, Inc. Data security system and method with multiple independent levels of security
US9311499B2 (en) * 2000-11-13 2016-04-12 Ron M. Redlich Data security system and with territorial, geographic and triggering event protocol
US20030028514A1 (en) * 2001-06-05 2003-02-06 Lord Stephen Philip Extended attribute caching in clustered filesystem
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
JP4467257B2 (ja) * 2002-06-28 2010-05-26 株式会社日立製作所 データベース管理方法および装置並びにその処理プログラム
US7240046B2 (en) * 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
US7136856B2 (en) * 2002-12-04 2006-11-14 International Business Machines Corporation Multi-level security profile refresh
US7711750B1 (en) 2004-02-11 2010-05-04 Microsoft Corporation Systems and methods that specify row level database security
US7661141B2 (en) * 2004-02-11 2010-02-09 Microsoft Corporation Systems and methods that optimize row level database security
US20050188421A1 (en) * 2004-02-24 2005-08-25 Arbajian Pierre E. System and method for providing data security
US20050192939A1 (en) * 2004-02-27 2005-09-01 International Business Machines Corporation System and method for providing classification security in a database management system
US7302708B2 (en) * 2004-03-11 2007-11-27 Harris Corporation Enforcing computer security utilizing an adaptive lattice mechanism
US7200595B2 (en) * 2004-03-29 2007-04-03 Microsoft Corporation Systems and methods for fine grained access control of data stored in relational databases
US7490347B1 (en) * 2004-04-30 2009-02-10 Sap Ag Hierarchical security domain model
GB2414089A (en) * 2004-05-07 2005-11-16 Paul Pickering Adding temporal characteristics to an existing database
US7860875B2 (en) * 2004-05-26 2010-12-28 International Business Machines Corporation Method for modifying a query by use of an external system for managing assignment of user and data classifications
US20050289342A1 (en) * 2004-06-28 2005-12-29 Oracle International Corporation Column relevant data security label
US7783308B2 (en) * 2004-07-06 2010-08-24 Sony Ericsson Mobile Communications Ab Method of and apparatus for zone dependent content in a mobile device
US7720858B2 (en) * 2004-07-22 2010-05-18 International Business Machines Corporation Query conditions-based security
WO2007001328A2 (en) * 2004-07-29 2007-01-04 Infoassure, Inc. Information-centric security
US20060031184A1 (en) * 2004-08-04 2006-02-09 Periyaswamy Senthil K Service request module
US7657925B2 (en) * 2004-10-14 2010-02-02 Oracle International Corporation Method and system for managing security policies for databases in a distributed system
US20060136361A1 (en) * 2004-12-22 2006-06-22 Microsoft Corporation Extensible, customizable database-driven row-level database security
US7562092B2 (en) * 2004-12-22 2009-07-14 Microsoft Corporation Secured views for a CRM database
US8095962B2 (en) * 2005-02-17 2012-01-10 At&T Intellectual Property I, L.P. Method and system of auditing databases for security compliance
US7370050B2 (en) * 2005-02-28 2008-05-06 Microsoft Corporation Discoverability and enumeration mechanisms in a hierarchically secure storage system
US7832003B2 (en) * 2005-04-28 2010-11-09 Microsoft Corporation Walled gardens
US8326877B2 (en) 2005-05-04 2012-12-04 Microsoft Corporation Region-based security
US7676470B2 (en) * 2005-07-26 2010-03-09 International Business Machines Corporation Self discovering adaptive security system and method
US20070038662A1 (en) * 2005-08-04 2007-02-15 Peter Bendel Method and system for managing external routines in a database management system
US20070073673A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for content management security
US7953734B2 (en) * 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) * 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US20070083554A1 (en) * 2005-10-12 2007-04-12 International Business Machines Corporation Visual role definition for identity management
US20070118527A1 (en) * 2005-11-22 2007-05-24 Microsoft Corporation Security and data filtering
US9135304B2 (en) 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US7774355B2 (en) * 2006-01-05 2010-08-10 International Business Machines Corporation Dynamic authorization based on focus data
JP4396643B2 (ja) * 2006-01-23 2010-01-13 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、インターフェース情報公開プログラムおよびインターフェース情報公開方法
US8938473B2 (en) * 2006-02-23 2015-01-20 Oracle America, Inc. Secure windowing for labeled containers
US7720863B2 (en) * 2006-03-17 2010-05-18 Microsoft Corporation Security view-based, external enforcement of business application security rules
SG138498A1 (en) * 2006-06-29 2008-01-28 Nanyang Polytechnic Configurable multi-lingual advisory system and method thereof
US20080005115A1 (en) * 2006-06-30 2008-01-03 International Business Machines Corporation Methods and apparatus for scoped role-based access control
US20080010239A1 (en) * 2006-07-10 2008-01-10 Sap Ag Systems and methods of managing product tracking data
US7639629B2 (en) * 2006-07-28 2009-12-29 Microsoft Corporation Security model for application and trading partner integration
US8020213B2 (en) * 2006-08-01 2011-09-13 International Business Machines Corporation Access control method and a system for privacy protection
JP4977536B2 (ja) * 2006-08-11 2012-07-18 株式会社リコー 情報処理装置、情報取得方法および情報取得プログラム
US8676845B2 (en) * 2006-08-22 2014-03-18 International Business Machines Corporation Database entitlement
US8402017B2 (en) * 2006-12-08 2013-03-19 International Business Machines Corporation Method for altering database views dependent on rules
US8027993B2 (en) * 2006-12-28 2011-09-27 Teradota Us, Inc. Techniques for establishing and enforcing row level database security
US8127133B2 (en) * 2007-01-25 2012-02-28 Microsoft Corporation Labeling of data objects to apply and enforce policies
JP2008234286A (ja) * 2007-03-20 2008-10-02 Dainippon Printing Co Ltd データベースシステム、データベースサーバ、プログラム、及び、記録媒体
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
JP2008257478A (ja) * 2007-04-04 2008-10-23 Internatl Business Mach Corp <Ibm> 検証対象文字列の格納位置出力装置、方法、及びコンピュータ・プログラム
CN100498792C (zh) * 2007-06-08 2009-06-10 北京神舟航天软件技术有限公司 数据库表行级数据的自主访问控制方法
US8065329B2 (en) * 2007-06-18 2011-11-22 Oracle International Corporation Query optimization on VPD protected columns
US20090024570A1 (en) * 2007-07-20 2009-01-22 Oracle Internatonal Corporation User defined query rewrite mechanism
US7809751B2 (en) * 2007-08-27 2010-10-05 Sap Ag Authorization controlled searching
US8078595B2 (en) * 2007-10-09 2011-12-13 Oracle International Corporation Secure normal forms
US8234299B2 (en) * 2008-01-11 2012-07-31 International Business Machines Corporation Method and system for using fine-grained access control (FGAC) to control access to data in a database
US8566909B2 (en) * 2008-02-01 2013-10-22 Oracle International Corporation Row-level security with expression data type
US7890530B2 (en) * 2008-02-05 2011-02-15 International Business Machines Corporation Method and system for controlling access to data via a data-centric security model
US20090265624A1 (en) * 2008-04-18 2009-10-22 Reiji Fukuda Electronic forms preparing and managing system, electronic forms preparing and managing program, and program storing memory media
TWI389536B (zh) 2008-11-07 2013-03-11 Ind Tech Res Inst 階層式金鑰為基礎之存取控制系統與方法,以及其認證金鑰交換方法
WO2011030324A1 (en) * 2009-09-09 2011-03-17 Varonis Systems, Inc. Enterprise level data management
US10229191B2 (en) 2009-09-09 2019-03-12 Varonis Systems Ltd. Enterprise level data management
US8386448B2 (en) * 2009-11-30 2013-02-26 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing a generic database security application using virtual private database functionality with a common security policy function
US20110153644A1 (en) * 2009-12-22 2011-06-23 Nokia Corporation Method and apparatus for utilizing a scalable data structure
CN101860526B (zh) * 2009-12-22 2012-10-03 中国航空工业集团公司第六三一研究所 综合化航空电子系统多级访问控制方法
US9401893B2 (en) * 2009-12-29 2016-07-26 International Business Machines Corporation System and method for providing data security in a hosted service system
US9965507B2 (en) * 2010-08-06 2018-05-08 At&T Intellectual Property I, L.P. Securing database content
EP2453368B1 (en) * 2010-11-12 2017-05-31 Accenture Global Services Limited Custom web services data link layer
CN102480385B (zh) * 2010-11-26 2014-10-22 北京启明星辰信息技术股份有限公司 数据库安全保护方法和装置
US20120209856A1 (en) * 2010-12-21 2012-08-16 Daniel Mckee System and method for organizing, accessing and modifying data
US8983985B2 (en) * 2011-01-28 2015-03-17 International Business Machines Corporation Masking sensitive data of table columns retrieved from a database
US8510335B2 (en) 2011-02-14 2013-08-13 Protegrity Corporation Database and method for controlling access to a database
US20120278334A1 (en) * 2011-04-29 2012-11-01 John Abjanic Database System
CN102236766B (zh) * 2011-05-10 2014-04-09 桂林电子科技大学 安全的数据项级数据库加密方法
CN102413198A (zh) * 2011-09-30 2012-04-11 山东中创软件工程股份有限公司 一种基于安全标记的访问控制方法和相关系统
US8930410B2 (en) 2011-10-03 2015-01-06 International Business Machines Corporation Query transformation for masking data within database objects
CN102495989A (zh) * 2011-12-21 2012-06-13 北京诺思恒信科技有限公司 一种基于主体标记的访问控制方法及系统
CN102810139B (zh) * 2012-06-29 2016-04-06 宇龙计算机通信科技(深圳)有限公司 数据安全操作方法及通信终端
US8925105B2 (en) * 2012-08-27 2014-12-30 Dassault Systemes Americas Corp. Indexed security for use with databases
US9087209B2 (en) * 2012-09-26 2015-07-21 Protegrity Corporation Database access control
US9275112B2 (en) * 2012-11-09 2016-03-01 Microsoft Technology Licensing, Llc Filtering views with predefined query
CN103023986B (zh) * 2012-11-27 2016-01-13 中国电信股份有限公司 一种对多用户提供rdbms服务的系统和方法
US9069817B2 (en) 2012-11-28 2015-06-30 International Business Machines Corporation Database row access control
JP5597692B2 (ja) * 2012-12-27 2014-10-01 日本電信電話株式会社 データ要求システム及びそのアクセス制御方法
US9460172B2 (en) 2013-03-13 2016-10-04 Sas Institute Inc. Method to reduce large OLAP cube size using cell selection rules
US9195841B2 (en) 2013-03-15 2015-11-24 Sap Se Automated and delegated model-based row level security
CN104077694B (zh) * 2013-03-27 2018-04-06 阿里巴巴集团控股有限公司 用户权益信息处理方法及系统
US10038726B2 (en) * 2013-06-12 2018-07-31 Visa International Service Association Data sensitivity based authentication and authorization
CN104601325B (zh) * 2013-10-31 2018-03-16 华为技术有限公司 数据加密方法、数据解密方法、装置、设备及系统
GB2522918A (en) 2014-02-11 2015-08-12 Ibm Adaptive access control in relational database system
CA2966537C (en) * 2014-11-05 2022-05-24 Ab Initio Technology Llc Database security
US10223542B2 (en) 2014-12-10 2019-03-05 International Business Machines Corporation Intelligent database with secure tables
US9792454B2 (en) * 2015-01-16 2017-10-17 Protegrity Corporation Record level data security
WO2016183550A1 (en) 2015-05-14 2016-11-17 Walleye Software, LLC Dynamic table index mapping
US10733162B2 (en) * 2015-07-30 2020-08-04 Workday, Inc. Indexing structured data with security information
CN106469282A (zh) * 2015-08-21 2017-03-01 阿里巴巴集团控股有限公司 数据访问权限控制方法及装置
US9942237B2 (en) * 2015-08-28 2018-04-10 Bank Of America Corporation Determining access requirements for online accounts based on characteristics of user devices
US10205730B2 (en) 2015-09-29 2019-02-12 International Business Machines Corporation Access control for database
CN105208042A (zh) * 2015-10-15 2015-12-30 黄云鸿 一种资源安全访问方法及系统
US9530023B1 (en) 2015-12-21 2016-12-27 Vinyl Development LLC Reach objects
KR101905771B1 (ko) * 2016-01-29 2018-10-11 주식회사 엔오디비즈웨어 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 서버와 이의 작동 방법
US10248805B2 (en) * 2016-05-13 2019-04-02 Bank Of America Corporation Database security tool
JP6705695B2 (ja) * 2016-05-19 2020-06-03 株式会社日立製作所 ファイル管理システム及び方法
US10621370B2 (en) 2016-05-27 2020-04-14 Intel Corporation Methods and apparatus to provide group-based row-level security for big data platforms
WO2017221049A1 (en) * 2016-06-21 2017-12-28 Fondation De L'institut De Recherche Idiap A data-network connected server, a device, a platform and a method for conducting computer-executable experiments
US10277561B2 (en) 2016-07-22 2019-04-30 International Business Machines Corporation Database management system shared ledger support
US10880661B2 (en) 2016-11-16 2020-12-29 Sonova Ag Method of controlling access to hearing instrument services
JP2018109838A (ja) * 2016-12-28 2018-07-12 富士通株式会社 情報処理装置、情報処理システム、プログラム、及び情報処理方法
US10546021B2 (en) 2017-01-30 2020-01-28 Sap Se Adjacency structures for executing graph algorithms in a relational database
US10394855B2 (en) * 2017-01-30 2019-08-27 Sap Se Graph-modeled data processing in a relational database
JP2020514935A (ja) * 2017-03-15 2020-05-21 ファウナ, インク.Fauna, Inc. データベース用の方法及びシステム
US11182496B1 (en) 2017-04-03 2021-11-23 Amazon Technologies, Inc. Database proxy connection management
US11392603B1 (en) 2017-04-03 2022-07-19 Amazon Technologies, Inc. Database rest API
US11106540B1 (en) 2017-04-03 2021-08-31 Amazon Technologies, Inc. Database command replay
US11500824B1 (en) * 2017-04-03 2022-11-15 Amazon Technologies, Inc. Database proxy
US10885134B2 (en) 2017-05-12 2021-01-05 International Business Machines Corporation Controlling access to protected information
US9922204B1 (en) * 2017-07-19 2018-03-20 Vinyl Development LLC Reach objects with comparison techniques
CN107480556A (zh) * 2017-08-07 2017-12-15 成都牵牛草信息技术有限公司 基于列值对统计列表操作权限进行分别授权的方法
CN109409120B (zh) * 2017-08-18 2021-12-10 中国科学院信息工程研究所 一种面向Spark的访问控制方法及系统
US10866943B1 (en) 2017-08-24 2020-12-15 Deephaven Data Labs Llc Keyed row selection
US11429745B2 (en) * 2017-10-30 2022-08-30 Visa International Service Association Data security hub
RU2676223C1 (ru) * 2017-11-16 2018-12-26 Общество с ограниченной ответственностью "Научно-технический центр РЕЛЭКС" Способ проведения разделения объектов базы данных на основе меток конфиденциальности
GB2569605A (en) * 2017-12-21 2019-06-26 Sita Inf Networking Computing Usa Inc System, device and method for processing data
CN108874863B (zh) * 2018-04-19 2022-03-25 华为技术有限公司 一种数据访问的控制方法及数据库访问装置
US11244063B2 (en) * 2018-06-11 2022-02-08 Palantir Technologies Inc. Row-level and column-level policy service
US20200065507A1 (en) * 2018-08-21 2020-02-27 Hcl Technologies Limited System and method for providing access to a user based on a multi-dimensional data structure
US11327933B2 (en) * 2019-02-15 2022-05-10 International Business Machines Corporation Migrating a multi-level secured database
CN110324326B (zh) * 2019-06-20 2020-12-22 中国科学院信息工程研究所 一种基于业务安全标记的网络数据传输控制方法及装置
CN110427744B (zh) * 2019-06-20 2021-07-13 中国科学院信息工程研究所 一种支持业务安全标记的身份管理方法及系统
CN110427770B (zh) * 2019-06-20 2021-04-20 中国科学院信息工程研究所 一种支持业务安全标记的数据库访问控制方法及系统
CN110427747B (zh) * 2019-06-20 2021-12-14 中国科学院信息工程研究所 一种支持业务安全标记的身份鉴别方法及装置
US11675920B2 (en) * 2019-12-03 2023-06-13 Sonicwall Inc. Call location based access control of query to database
CN111339507A (zh) * 2020-02-24 2020-06-26 杭州数梦工场科技有限公司 一种访问请求处理的方法、系统、设备及可读存储介质
CN111523098A (zh) * 2020-04-15 2020-08-11 支付宝(杭州)信息技术有限公司 数据权限管理方法及装置
US11868349B2 (en) * 2020-05-05 2024-01-09 International Business Machines Corporation Row secure table plan generation
US12072882B2 (en) * 2020-05-05 2024-08-27 International Business Machines Corporation Database query processing
US11405401B2 (en) * 2020-05-21 2022-08-02 Adp, Inc. Determining and applying assurance levels for application operations security
CN111813803B (zh) * 2020-07-02 2023-07-21 上海达梦数据库有限公司 语句块执行计划的生成方法、装置、设备和存储介质
US11397826B2 (en) 2020-10-29 2022-07-26 Snowflake Inc. Row-level security
US11704306B2 (en) 2020-11-16 2023-07-18 Snowflake Inc. Restricted views to control information access in a database system
US12013961B2 (en) * 2022-05-18 2024-06-18 Sap Se Resource-efficient row-level security in database systems
CN115168741A (zh) * 2022-07-05 2022-10-11 上海鼎捷移动科技有限公司 关联事务推送与管理系统及其方法
CN116186767B (zh) * 2023-01-12 2023-10-03 北京万里开源软件有限公司 一种数据库中行级标记方法与装置
CN118070344B (zh) * 2024-04-25 2024-08-13 浪潮云信息技术股份公司 基于敏感标记的关系数据库权限控制方法及装置、介质、设备

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398645B1 (en) 1989-05-15 1997-08-06 International Business Machines Corporation System for controlling access privileges
US5446903A (en) * 1993-05-04 1995-08-29 International Business Machines Corporation Method and apparatus for controlling access to data elements in a data processing system based on status of an industrial process by mapping user's security categories and industrial process steps
US5572673A (en) * 1993-12-01 1996-11-05 Sybase, Inc. Secure multi-level system for executing stored procedures
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
GB9402935D0 (en) 1994-02-16 1994-04-06 British Telecomm A method for controlling access to a database
JP3070896B2 (ja) * 1994-04-22 2000-07-31 シャープ株式会社 情報検索装置
US5729730A (en) * 1995-03-28 1998-03-17 Dex Information Systems, Inc. Method and apparatus for improved information storage and retrieval system
US5649182A (en) * 1995-03-17 1997-07-15 Reitz; Carl A. Apparatus and method for organizing timeline data
US6134549A (en) * 1995-03-31 2000-10-17 Showcase Corporation Client/server computer system having personalizable and securable views of database data
US5751949A (en) * 1995-05-23 1998-05-12 Mci Corporation Data security system and method
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US5913037A (en) * 1996-07-03 1999-06-15 Compaq Computer Corporation Dynamic management information base manager
US5845068A (en) * 1996-12-18 1998-12-01 Sun Microsystems, Inc. Multilevel security port methods, apparatuses, and computer program products
US5963642A (en) * 1996-12-30 1999-10-05 Goldstein; Benjamin D. Method and apparatus for secure storage of data
AU6654798A (en) * 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions using a networked proxy server
US5822748A (en) * 1997-02-28 1998-10-13 Oracle Corporation Group by and distinct sort elimination using cost-based optimization
US5915086A (en) * 1997-04-03 1999-06-22 Oracle Corporation Hierarchical protection of seed data
US6044378A (en) * 1997-09-29 2000-03-28 International Business Machines Corporation Method and system for a federated digital library by managing links
US6044373A (en) * 1997-09-29 2000-03-28 International Business Machines Corporation Object-oriented access control method and system for military and commercial file systems
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
US6006234A (en) * 1997-10-31 1999-12-21 Oracle Corporation Logical groupings within a database
US6098075A (en) * 1997-12-16 2000-08-01 International Business Machines Corporation Deferred referential integrity checking based on determining whether row at-a-time referential integrity checking would yield the same results as deferred integrity checking
JP4116137B2 (ja) 1998-03-06 2008-07-09 富士通株式会社 電子データ交換システムにおけるデータ保護装置及び方法及び当該方法を実現するプログラムを記録した記録媒体
US6219790B1 (en) * 1998-06-19 2001-04-17 Lucent Technologies Inc. Centralized authentication, authorization and accounting server with support for multiple transport protocols and multiple client types
US6487552B1 (en) * 1998-10-05 2002-11-26 Oracle Corporation Database fine-grained access control
US6578037B1 (en) * 1998-10-05 2003-06-10 Oracle Corporation Partitioned access control to a database
US6446117B1 (en) * 1998-11-09 2002-09-03 Unisys Corporation Apparatus and method for saving session variables on the server side of an on-line data base management system
US6369840B1 (en) * 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6484180B1 (en) * 1999-08-02 2002-11-19 Oracle Corporation Accessing domain object data stored in a relational database system
US6286104B1 (en) * 1999-08-04 2001-09-04 Oracle Corporation Authentication and authorization in a multi-tier relational database management system
US6405212B1 (en) * 1999-09-27 2002-06-11 Oracle Corporation Database system event triggers
US7093137B1 (en) 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
WO2001048582A2 (en) * 1999-12-24 2001-07-05 Ravenpack Ag Method and device for presenting data to a user
US6820082B1 (en) * 2000-04-03 2004-11-16 Allegis Corporation Rule based database security system and method
US6922696B1 (en) * 2000-05-31 2005-07-26 Sri International Lattice-based security classification system and method
US6901346B2 (en) * 2000-08-09 2005-05-31 Telos Corporation System, method and medium for certifying and accrediting requirements compliance
US6775668B1 (en) * 2000-09-11 2004-08-10 Novell, Inc. Method and system for enhancing quorum based access control to a database
US20020062218A1 (en) * 2000-11-20 2002-05-23 Carolyn Pianin Method and system for providing property management services in an on-line computing evironment
JP2002182983A (ja) 2000-12-13 2002-06-28 Sharp Corp データベースへのアクセス制御方法、データベース装置、リソースへのアクセス制御方法、情報処理装置
US20020085405A1 (en) 2000-12-28 2002-07-04 Gerhard Mueller Memory architecture with controllable bitline lengths
US20020095405A1 (en) * 2001-01-18 2002-07-18 Hitachi America, Ltd. View definition with mask for cell-level data access control
US6711579B2 (en) * 2001-04-20 2004-03-23 Sree Ayyanar Spinning And Weaving Mills Limited Data storage schema independent programming for data retrieval using semantic bridge
US6606627B1 (en) * 2001-05-08 2003-08-12 Oracle Corporation Techniques for managing resources for multiple exclusive groups
US6931411B1 (en) * 2001-05-30 2005-08-16 Cryptek, Inc. Virtual data labeling system and method
US7124192B2 (en) * 2001-08-30 2006-10-17 International Business Machines Corporation Role-permission model for security policy administration and enforcement
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

Also Published As

Publication number Publication date
US20040044655A1 (en) 2004-03-04
WO2004023375A1 (en) 2004-03-18
AU2003260770A1 (en) 2004-03-29
JP2006502472A (ja) 2006-01-19
US7464080B2 (en) 2008-12-09
WO2004023375A8 (en) 2004-06-03
US20070244898A1 (en) 2007-10-18
US20090030907A1 (en) 2009-01-29
US20170053133A1 (en) 2017-02-23
CN100444180C (zh) 2008-12-17
US9514328B2 (en) 2016-12-06
TWI249111B (en) 2006-02-11
CN1729469A (zh) 2006-02-01
US20090043775A1 (en) 2009-02-12
US9870483B2 (en) 2018-01-16
TW200412515A (en) 2004-07-16
US8478713B2 (en) 2013-07-02
AU2003260770A8 (en) 2004-03-29
US7240046B2 (en) 2007-07-03

Similar Documents

Publication Publication Date Title
JP4398371B2 (ja) リレーショナル・データベースへのアクセスを制御する方法
US8122484B2 (en) Access control policy conversion
US7673323B1 (en) System and method for maintaining security in a distributed computer network
US7197764B2 (en) System for and methods of administration of access control to numerous resources and objects
US8973157B2 (en) Privileged access to managed content
US6289458B1 (en) Per property access control mechanism
US7124192B2 (en) Role-permission model for security policy administration and enforcement
US8370388B2 (en) Mandatory access control list for managed content
US6606627B1 (en) Techniques for managing resources for multiple exclusive groups
US7865959B1 (en) Method and system for management of access information
US8812554B1 (en) Method and system for storing shared data records in relational database
KR100628426B1 (ko) 애플리케이션 기능으로의 액세스를 선택적으로 정의하는시스템 및 방법
KR101101085B1 (ko) 데이터 아이템의 구역 기반 보안 관리
US8181243B2 (en) Computer readable medium for resolving permission for role activation operators
US8095557B2 (en) Type system for access control lists
US20120131646A1 (en) Role-based access control limited by application and hostname
US20030200467A1 (en) System and method for incremental refresh of a compiled access control table in a content management system
JP2003280990A (ja) 文書処理装置及び文書を管理するためのコンピュータプログラム
US8316051B1 (en) Techniques for adding multiple security policies to a database system
US7657925B2 (en) Method and system for managing security policies for databases in a distributed system
Rjaibi et al. A multi-purpose implementation of mandatory access control in relational database management systems
US20030200443A1 (en) System and method for configurable binding of access control lists in a content management system
US7185357B1 (en) Method and mechanism for implementing synonym-based access control
Tari Using agents for secure access to data in the Internet
van Staden The use of a virtual machine as an access control mechanism in a relational database management system.

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20051018

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060711

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090729

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090729

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090731

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: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091013

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4398371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

EXPY Cancellation because of completion of term