特許第6376734号(P6376734)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許6376734データベースを管理する装置、データベースの制御方法およびプログラム
<>
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000002
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000003
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000004
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000005
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000006
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000007
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000008
  • 特許6376734-データベースを管理する装置、データベースの制御方法およびプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6376734
(24)【登録日】2018年8月3日
(45)【発行日】2018年8月22日
(54)【発明の名称】データベースを管理する装置、データベースの制御方法およびプログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180813BHJP
   G06F 21/62 20130101ALI20180813BHJP
【FI】
   G06F12/00 512
   G06F12/00 537Z
   G06F21/62 327
【請求項の数】8
【全頁数】18
(21)【出願番号】特願2013-167887(P2013-167887)
(22)【出願日】2013年8月12日
(65)【公開番号】特開2015-36868(P2015-36868A)
(43)【公開日】2015年2月23日
【審査請求日】2015年11月27日
【審判番号】不服2017-5204(P2017-5204/J1)
【審判請求日】2017年4月12日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】山田 雅俊
【合議体】
【審判長】 千葉 輝久
【審判官】 ▲吉▼田 耕一
【審判官】 山田 正文
(56)【参考文献】
【文献】 特表2006−513499(JP,A)
【文献】 特開2006−164268(JP,A)
【文献】 特開2011−59254(JP,A)
【文献】 特開2006−277179(JP,A)
【文献】 特開2002−342376(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
データベースを管理する装置であって、
データベース・オブジェクトを格納したオブジェクト格納部と、
データの読み出し要求に基づいて、前記オブジェクト格納部に格納された前記データベース・オブジェクトに対する処理を実行する処理実行部と、
前記処理実行部が実行するデータの読み出し処理に関して、読み出し要求における読み出し対象の項目の指定の仕方を特定した適用条件と実行する処理を規定した規則とを対応付けて保持するルール記憶部と、
前記読み出し要求における読み出し対象の項目の指定の仕方が前記ルール記憶部に保持された前記適用条件に適合する場合に、データに対するアクセス主体のアクセス権限に関わらず、当該適用条件に対応付けられた前記規則にしたがって、前記処理実行部が実行する処理を変更するルール適用部と、
を備える、装置。
【請求項2】
前記ルール記憶部に保持された前記適用条件には、1または複数の項目を指定した一の適用条件と、当該一の適用条件で指定された項目の少なくとも一部と同一の項目を含み当該一の適用条件とは異なる組み合わせの複数の項目を指定した他の一の適用条件とが含まれ、当該一の適用条件に対応付けられた前記規則および当該他の一の適用条件に対応付けられた前記規則は、相異なる処理を規定する規則である、請求項1に記載の装置。
【請求項3】
前記ルール記憶部に保持された前記規則には、前記読み出し要求において指定された項目が所定の前記適用条件に適合する場合に、当該項目のデータに代えて当該項目のデータが特定のデータと一致しているか否かの判定結果を処理結果として出力する規則が含まれる、請求項1に記載の装置。
【請求項4】
前記ルール記憶部に保持された前記適用条件には、前記読み出し要求の条件に合致するデータの量が所定量よりも多いという適用条件が含まれ、当該適用条件に対応付けられた前記規則には、当該データに代えて当該データが存在することを示す情報を出力する規則が含まれる、請求項1に記載の装置。
【請求項5】
前記ルール記憶部に保持された前記適用条件には、前記読み出し要求の条件に合致するデータの量が所定量よりも多いという適用条件が含まれ、当該適用条件に対応付けられた前記規則には、当該データに代えて当該データの数を処理結果として出力する規則が含まれる、請求項1に記載の装置。
【請求項6】
データベースに対するアクセスを制御する方法であって、
受け付けたデータの読み出し要求における読み出し対象の項目の指定の仕方が、予め定められた読み出し要求における読み出し対象の項目の指定の仕方を特定した適用条件に適合するか否かを判断するステップと、
前記読み出し要求に基づいてデータベースに格納されているデータベース・オブジェクトに対する処理を実行するステップと、
データに対するアクセス主体のアクセス権限に関わらず、前記適用条件に対応付けて定められた規則に基づいて、当該適用条件に適合した前記読み出し要求に基づく処理の実行により得られた処理結果を変換するステップと、
を含む、方法。
【請求項7】
データベースに対するアクセスを制御する方法であって、
受け付けたデータの読み出し要求における読み出し対象の項目の指定の仕方が、予め定められた読み出し要求における読み出し対象の項目の指定の仕方を特定した適用条件に適合するか否かを判断するステップと、
前記適用条件に対応付けて定められた規則に基づいて、当該適用条件に適合した前記読み出し要求に基づく処理を変換するステップと、
前記読み出し要求により要求された処理に関して、当該読み出し要求が前記適用条件に適合しない場合は、データに対するアクセス主体のアクセス権限にしたがい、当該読み出し要求に基づいてデータベースに格納されているデータベース・オブジェクトを読み出す処理を実行し、当該読み出し要求が前記適用条件に適合する場合は、データに対するアクセス主体のアクセス権限に関わらず、当該データベースに格納されているデータベース・オブジェクトに対して前記規則に基づいて変換された処理を実行するステップと、
を含む、方法。
【請求項8】
データベースを管理するコンピュータを、
受け付けたデータの読み出し要求における読み出し対象の項目の指定の仕方が、予め定められた読み出し要求における読み出し対象の項目の指定の仕方を特定した適用条件に適合するか否かを判断する手段と、
前記適用条件に適合すると判断された読み出し要求に基づく処理に関して、当該適用条件に対応付けて定められた規則に基づいて、当該読み出し要求に基づく処理を変換する手段と、
前記適用条件に適合しない前記読み出し要求に関しては、データに対するアクセス主体のアクセス権限にしたがい、当該読み出し要求に基づいてデータベースに格納されているデータベース・オブジェクトを読み出す処理を実行し、前記適用条件に適合した前記読み出し要求に関しては、データに対するアクセス主体のアクセス権限に関わらず、当該データベースに格納されているデータベース・オブジェクトに対して前記規則に基づいて変換された処理を実行する手段と、
前記適用条件に適合すると判断された読み出し要求に基づく処理に関して、当該適用条件に対応付けて定められた規則に基づいて、当該処理の実行により得られた処理結果を変換する手段として、
機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データへのアクセス制御に特徴を有するデータベース、その制御方法およびプログラムに関する。
【背景技術】
【0002】
一般に、データベース・システムにおけるデータのアクセス制御は、データベースのアカウントに対して設定されるアクセス権限の制御や、検索結果として得られるデータ・セットに対するフィルタリングなどを組み合わせて実現されている。アカウントに対して設定されるアクセス権限により、アカウントごとに、アクセスが許容される対象であるデータベース・オブジェクト(データ、テーブル、レコードあるいはカラム等のデータやデータの集合、以下、単に「オブジェクト」と呼ぶ)と、許容される操作内容(読み出し、書き込み、更新)が特定される。
【0003】
文献記載の従来技術として、例えば特許文献1に開示されたシステムは、複数のデータベース表にデータを格納すると共にその表からデータを取り出すためのデータベース管理システムを含み、このデータベース表内のデータは、データベース表に格納されているプライバシーパラメーターにしたがって制御可能にアクセスすることができるものである。また、このシステムは、データベース管理システムインターフェースを含み、このインターフェースは、データベース管理システムに作動上結合されており、プライバシーパラメーターにしたがってデータベース表内のデータへのアクセスを制御するものである。また、このシステムは、監査モジュールを含み、このモジュールは、データベース管理システムインターフェースと通信できるように結合されており、データベース管理システム内のデータプライバシーパラメーターが有効に適用できるようにするものである。
【0004】
また、特許文献2に開示された従来技術は、ユーザ属性などの属性情報に基づいたデータベースアクセス制御において、属性情報が変更された場合の管理負荷を軽減しながら、データベースへアクセスするデータアクセスプログラムの性能の低下を防止するものである。この従来技術において、コンテキスト記憶部は、属性管理サーバから取得したデータオブジェクトにアクセスするユーザなどに関する属性情報を記憶する。また、ポリシー関数記憶部は、コンテキスト記憶部が記憶する属性情報に基づいて制御条件を生成するポリシー関数を記憶する。関数実行部は、ユーザがデータアクセスプログラムでデータオブジェクトにアクセスする場合、ポリシー関数を実行する。制御条件付加部は、ポリシー関数によって生成された制御条件をデータアクセスプログラムに付加する。実行部は、制御条件を付加したデータアクセスプログラムを実行する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−112796号公報
【特許文献2】特開2007−18309号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のデータベース・システムにおけるアクセス制御は、主としてアカウントに対するデータへのアクセス権限の設定によって実現されていた。そのため、アカウントに設定されたアクセス権限に基づいてデータへのアクセスが行われた場合は、アクセス権限自体は正当なものであるため、アクセスの態様に関わらず、制限することができなかった。そのため、例えば、通常は同時に読み出す必要のない大量の情報を読み出すというような異常なアクセスを制限することが困難であった。
【0007】
本発明は、このような課題に鑑み、アカウントの権限に依存しない高度なアクセス制御を実現することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するため、本発明は、次のような装置として実現される。この装置は、データベースを管理する装置であって、データベース・オブジェクトを格納したオブジェクト格納部と、処理要求に基づいて、オブジェクト格納部に格納されたデータベース・オブジェクトに対する処理を実行する処理実行部と、この処理実行部による処理の態様に基づく適用条件とこの処理の内容を変更するための規則とを対応付けて保持するルール記憶部と、処理要求に基づく処理の態様がルール記憶部に保持された適用条件に適合する場合に、適合した適用条件に対応付けられた規則にしたがって、処理実行部が実行する処理の内容を変更するルール適用部と、を備える。
より詳細には、ルール適用部は、処理要求に基づく処理の態様が所定の適用条件に適合し、適合した適用条件に対応する規則が前記処理実行部による処理の結果を出力しないように変更する規則である場合、処理実行部によるこの処理要求に基づく処理の実行を取り消す。
さらに詳細には、ルール適用部は、読み出し項目が指定されたデータの読み出し要求に基づく読み出し処理の態様が所定の適用条件に適合し、適合した適用条件に対応する規則が特定の項目のデータ読み出し結果を出力しないように変更する規則である場合、処理実行部によるこのデータの読み出しを行わないように処理要求に基づく処理を変更する。
また、ルール適用部は、処理要求に基づく処理の態様が所定の適用条件に適合する場合に、適合した適用条件に対応する規則に基づき、処理実行部による処理の結果として得られたデータに替えて、データに関する情報を出力する。
さらにまた、ルール適用部は、処理要求に基づく処理の態様が所定の適用条件に適合する場合に、適合した適用条件に対応する規則に基づき、処理実行部による処理の結果として得られたデータのうち、予め定められた量を超えるデータを削除して出力する。
【0009】
また、本発明は、次のような方法としても実現される。この方法は、データベースに対するアクセスを制御する方法であって、受け付けた処理要求に基づく処理が予め定められた処理の態様に基づく適用条件に適合するか否かを判断するステップと、処理要求に基づいてデータベースに格納されているデータベース・オブジェクトに対する処理を実行するステップと、処理が適合した適用条件に対応付けて定められた規則に基づいて、処理の実行により得られた処理結果に対する変換処理を行うステップと、を含む。
【0010】
あるいは、この方法は、データベースに対するアクセスを制御する方法であって、受け付けた処理要求に基づく処理が予め定められた処理の態様に基づく適用条件に適合するか否かを判断するステップと、処理が適合した適用条件に対応付けて定められた規則に基づいて、処理要求に対する変換処理を行うステップと、適用条件に適合しない処理要求に関しては、この処理要求に基づいてデータベースに格納されているデータベース・オブジェクトに対する処理を実行し、適用条件に適合した処理要求に関しては、変換された処理要求に基づいてデータベースに格納されているデータベース・オブジェクトに対する処理を実行するステップと、を含む。
【0011】
さらにまた、本発明は、コンピュータを制御して上述した装置の各機能を実現するプログラム、あるいは、コンピュータに上記の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【0012】
本発明によれば、アカウントの権限に依存しない高度なアクセス制御を実現することができる。
【図面の簡単な説明】
【0013】
図1】本実施形態が適用されるデータベース・システムの機能構成の一例を示す図である。
図2】本実施形態のデータベース・システムを構成するのに好適なハードウェア構成例を示す図である。
図3】オブジェクトである表の一例を示す図である。
図4】アクセス規則の一例を示す図である。
図5】本実施形態のデータベース・システムにおける処理実行部およびルール適用部の処理手順を説明するフローチャートである。
図6】本適用例において処理対象となるオブジェクトである表「顧客テーブル」の構成例を示す図である。
図7】本適用例において用いられるアクセス規則の構成例を示す図である。
図8】他の適用例において用いられるアクセス規則の構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
【0015】
<システム構成>
図1は、本実施形態が適用されるデータベース・システムの機能構成の一例を示す図である。図1に示す本実施形態のデータベース・システム(サーバ)100は、情報記憶手段として、オブジェクト格納部110と、アカウント情報記憶部120と、ルール情報記憶部130とを備える。また、処理の実行手段として、ログイン制御部140と、処理実行部150と、ルール適用部160とを備える。
【0016】
オブジェクト格納部110には、表やビュー表等のオブジェクトが格納されている。オブジェクト格納部110に格納されるオブジェクトは、既存のデータベース・システムにおいて扱われる一般的なオブジェクトと同様である。
【0017】
アカウント情報記憶部120には、オブジェクト格納部110に格納されたオブジェクトへのアクセス権限を設定したアカウントの情報が保持されている。アカウント情報記憶部120に保持される情報は、既存のデータベース・システムにおけるアカウント情報と同様であり、例えば、各アカウントに対して、アクセスが許容されるオブジェクトと、許容される操作内容が設定される。
【0018】
ルール情報記憶部130には、オブジェクト格納部110に格納されたオブジェクトへのアクセス規則が保持されている。ルール情報記憶部130に保持されるアクセス規則は、アカウント情報記憶部120に保持されるアカウントに設定されたアクセス権限とは異なり、オブジェクトに対する処理の仕方を規定するものである。具体的には、規則の適用条件としての処理の内容と、適用条件に適合する処理の結果に対する実行規則とが対応付けられている。したがって、アカウントによるアクセス権限の内容に関わらず(言い換えれば、誰の処理要求であっても)、ルール情報記憶部130に記憶されたアクセス規則に従った態様でしか、オブジェクトに対する処理を行うことができない。具体的なアクセス規則の内容およびアクセス規則の処理要求への適用の詳細については後述する。
【0019】
ログイン制御部140は、クライアントからのログイン要求を受け付け、ユーザ認証を行う。具体的には、例えば、ログイン要求からアカウント名とパスワードを取得し、アカウント情報記憶部120に保持されているアカウント情報と照合し、正当なアカウントであることが確認されたならば、ログインを許可する。この機能は、既存のデータベース・システム等におけるログイン制御の機能と同様である。
【0020】
処理実行部150は、ログインしたクライアントからの処理要求を受け付け、受け付けた処理要求に基づき、オブジェクト格納部110に格納されたオブジェクトに対する処理を実行する。具体的には、アカウントに設定されたアクセス権限の範囲で、オブジェクトに対する読み出し、書き込み、更新などの操作を行う。なお、処理要求は、ネットワーク等を介して接続された外部のクライアント装置から受信することもできるし、データベース・システム100の入力デバイス(キーボード等)をオペレータが操作することにより入力することもできる。
【0021】
ルール適用部160は、処理実行部150が実行する処理(クライアントからの処理要求に基づく処理)が、ルール情報記憶部130に保持されているアクセス規則の適用条件に適合する処理か否かを判断する。そして、アクセス規則の適用条件に適合する処理であった場合は、その適用条件に対応する実行規則に基づいて処理要求に係る処理の内容を変換する。これにより、処理実行部150は、アクセス規則に従った態様でオブジェクトに対する処理を行うこととなる。ルール適用部160の機能および動作の詳細については後述する。
【0022】
<システムのハードウェア構成例>
図2は、本実施形態のデータベース・システム100を構成するのに好適なハードウェア構成例を示す図である。ここでは、コンピュータに適用する場合について説明する。図2に示すコンピュータは、演算手段であるCPU(Central Processing Unit)10aと、主記憶手段であるメモリ10cを備える。また、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)10g、ネットワーク・インターフェイス10f、ディスプレイ装置を含む表示機構10d、音声機構10h、キーボードやマウス等の入力デバイス10i等を備える。
【0023】
図2に示す構成例では、メモリ10cおよび表示機構10dは、システム・コントローラ10bを介してCPU10aに接続されている。また、ネットワーク・インターフェイス10f、磁気ディスク装置10g、音声機構10hおよび入力デバイス10iは、I/Oコントローラ10eを介してシステム・コントローラ10bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【0024】
なお、図2は、本実施形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施形態は、オブジェクトへの処理要求を受け付けてオブジェクトに対する処理を行うデータベース・システムとして機能する情報処理装置に広く適用できるものであり、図示の構成においてのみ本実施例が実現されるのではない。
【0025】
図2において、磁気ディスク装置10gにはOSのプログラムやアプリケーション・プログラムが格納されている。そして、これらのプログラムがメモリ10cに読み込まれてCPU10aに実行されることにより、本実施形態におけるログイン制御部140、処理実行部150およびルール適用部160の各機能が実現される。また、オブジェクト格納部110、アカウント情報記憶部120およびルール情報記憶部130は、メモリ10cや磁気ディスク装置10g等の記憶手段により実現される。
【0026】
<アクセス規則の適用プロセス>
次に、ルール適用部160によるアクセス規則の適用プロセスについて説明する。図3は、オブジェクトである表の一例を示す図である。図4は、アクセス規則の一例を示す図である。
【0027】
図3に示す例では、表「Table1」には、「Col1」、「Col2」、「Col3」の3列に各々データが格納されている。また、図4に示す例では、処理要求としてデータの読み出し要求が行われた場合に関するアクセス規則として、3種類の適用条件と実行規則とが規定されている。具体的には、規則aは、「Table1」に対し、「Col1」と「Col2」の値を指定して読み出し要求が行われたことを適用条件として、「Table1」における「Col1」、「Col2」、「Col3」のデータを読み出すことを規定する。規則bは、「Table1」に対し、「Col1」の値のみを指定して読み出し要求が行われたことを適用条件として、「Table1」における「Col1」および「Col3」のデータのみを読み出し、「Col2」のデータは読み出さずにマスクする(隠す)ことを規定する。規則cは、「Table1」に対し、いずれの列の値も指定せずに読み出し要求が行われたことを適用条件として、「Table1」におけるデータの読み出し結果を出力しない(エラーとする)ことを規定する。
【0028】
ここで、次の3種類のSQL文によるデータの読み出し要求が行われたものとする。
要求1:SELECT * FROM Table1 WHERE Col1='A1' AND Col2='A2'
要求2:SELECT * FROM Table1 WHERE Col1='A1'
要求3:SELECT * FROM Table1
【0029】
要求1は、「Col1」の値が「A1」であり、「Col2」の値が「A2」である行のデータの読み出し要求である。この場合、アクセス規則を適用することなく、単に処理実行部150がこの読み出し要求に基づく処理を行ったとすると、「Col1」の値が「A1」であり、「Col2」の値が「A2」である行のデータが読み出される。そして、処理結果として、「A1、A2、A3」が得られる。一方、図4に示すアクセス規則では、この要求1は、規則aの適用条件に適合する。したがって、「Col1」の値が「A1」であり、「Col2」の値が「A2」である行において、「Col1」、「Col2」、「Col3」のデータが読み出される。これにより、処理結果として、アクセス規則が適用されなかった場合と同様に、「A1、A2、A3」が得られる。
【0030】
要求2は、「Col1」の値が「A1」である行のデータの読み出し要求である。この場合、アクセス規則を適用することなく、単に処理実行部150がこの読み出し要求に基づく処理を行ったとすると、「Col1」の値が「A1」である行のデータが読み出される。そして、処理結果として、「A1、A2、A3」が得られる。一方、図4に示すアクセス規則では、この要求2は、規則bの適用条件に適合する。したがって、「Col1」の値が「A1」である行において、「Col1」および「Col3」のデータが読み出され、「Col2」のデータはマスクされる(意味のない出力値「XX」が付与される)。これにより、処理結果として、「A1、XX、A3」が得られる。
【0031】
要求3は、いずれの列の値も指定せずに行われた読み出し要求である。この場合、アクセス規則を適用することなく、単に処理実行部150がこの読み出し要求に基づく処理を行ったとすると、「Table1」の全ての行のデータが読み出される。そして、処理結果として、「A1、A2、A3、B1、B2、B3、C1、C2、C3」が得られる。一方、図4に示すアクセス規則では、この要求3は、規則cの適用条件に適合する。したがって、上記の処理結果は出力されず、処理結果は「ERROR」となる。
【0032】
以上のように、処理要求に基づく処理の内容が本実施形態によるアクセス規則の適用条件に適合する場合、実行規則に基づいて処理の内容が変換されるため、アクセス規則が適用されない場合とは異なる処理結果が得られる。また、要求1と要求2とを比較すると、アクセス規則が適用されない場合は同じ処理結果が得られるのに対し、要求1の処理に対して適用される実行規則(規則a)と要求2の処理に対して適用される実行規則(規則b)とが異なるため、アクセス規則が適用されることによって異なる処理結果が得られる。ここで、上記のアクセス規則は、処理要求に基づく処理の内容(どのような条件でデータの読み出しが要求されたか)のみに基づいて適用される。すなわち、処理要求を行ったクライアントのアカウントに設定されたアクセス権限の内容に関わらず、処理要求の内容がアクセス規則の適用条件に適合すれば、上記のような処理の変換が行われる。
【0033】
なお、上記の例では、要求2に対して「Col2」のデータの読み出しを行わず、要求3に対して「Table1」の全てのデータの読み出しを行わないこととしたが、データの読み出しは実行し、処理結果の出力において該当するデータを提示しないようにしても良い。詳しくは後述するが、ルール適用部160による処理を、処理実行部150による処理の前に行うか、後に行うかによって、上記の制御内容が異なる。
【0034】
また、上記の例では、データの読み出し処理を対象とし、処理要求に基づけば読み出し対象となるデータのうち、一部または全てのデータの読み出しを行わないという処理の変換を行った。本実施形態では、アクセス規則を定義することによって、上記の例の他に、様々な処理の変換を実現することができる。例えば、図3および図4を参照して説明した上記の例では、「Table1」のみを指定して行われた読み出し要求に対し、データの読み出しを行わずに処理結果を「ERROR」としたが、同様の読み出し要求を受け付けたことを適用条件として、「Col3」のデータのみ(すなわち、一部のデータのみ)読み出しを行わないという実行規則を規定しても良い。この場合、上記の要求3が行われると、処理結果は、「A1、A2、B1、B2、C1、C2」となる。なお、ここでは、読み出さなかった「Col3」のデータに対してマスク(意味のない出力値「XX」の付与)も行っていない。
【0035】
また、読み出したデータの出力やデータの読み出し処理を取り消すような変換だけでなく、読み出したデータに替えてそのデータに関する情報(属性情報等)を出力するように処理を変換することもできる。例えば、「Table1」のみを指定して行われた読み出し要求に対し、「Col3」のデータ(すなわち、一部のデータ)については、特定の値(例えば、「A3」)と一致しているか否かの判定結果を処理結果として出力するという実行規則を規定しても良い。この場合、上記の要求3が行われると、処理結果は、「A1、A2、Yes、B1、B2、No、C1、C2、No」となる。
【0036】
また、「Table1」のみを指定して行われた読み出し要求に対し、「Col3」のデータ(すなわち、一部のデータ)については、データの値の一部(例えば、下3桁)のみを処理結果として出力するという実行規則を規定しても良い。例として、「A3」=「12345」、「B3」=「67890」、「C3」=「98765」とする。この場合、上記の要求3が行われると、処理結果は、「A1、A2、345、B1、B2、890、C1、C2、765」となる。
【0037】
また、「Col1」の値のみを指定して行われた読み出し要求に対してはデータの読み出しを行わないという実行規則を規定すると共に、「Col1」および「Col2」の値を指定して行われた読み出し要求に対してはデータの読み出しを行うという実行規則を規定しても良い。この場合、上記の要求1が行われると、処理結果は、「A1、A2、A3」となり、上記の要求2が行われると、データの読み出しは行われない。
【0038】
また、「Col1」および「Col2」のデータを同時に読み出すための読み出し要求に対しては、データの読み出しを行わないという実行規則を規定しても良い。この場合、上記の要求3が行われると、「Col1」のデータおよび「Col2」のデータの読み出しが要求されることになるので、データの読み出しは行われない。これに対し、「Col1」および「Col3」のデータの読み出し要求が行われると、処理結果は、「A1、A3、B1、B3、C1、C3」となる。同様に、「Col2」および「Col3」のデータの読み出し要求が行われると、処理結果は、「A2、A3、B2、B3、C2、C3」となる。
【0039】
この他、例えば、読み出し要求の条件に合致するデータの量(例えば行の数)が所定量までであれば読み出しを行うが、所定量を超える場合には読み出しを行わないという実行規則を規定することができる。また、この場合、所定量を超えてデータの読み出しが行われない場合には、適合したデータの数を処理結果として報知するという実行規則を規定しても良い。また、特定の値のデータを読み出す要求が行われた場合に、そのデータを読み出すのではなく、その値のデータが存在することを報知するという実行規則を規定しても良い。さらに、データの読み出し処理だけでなく、データの書き込み処理や更新処理に対して適用条件および実行規則を定義しても良い(例えば、所定数以上のデータを同時に書き込む処理は実行しない等)。このように、本実施形態では、データベース・システム100により管理するデータの種類やデータベース・システム100の運用条件、仕様等に応じて、様々なアクセス規則を適宜定義して用いることが可能である。
【0040】
ところで、ルール適用部160によるアクセス規則の適用は、原則的には、処理実行部150による処理が行われた後に行うことができる。一方、規則の適用条件および実行規則の内容によっては、処理実行部150による処理が行われる前に行うことができる場合もある。例えば、図3に示した規則cのように、適用条件に適合した読み出し要求に関してデータの読み出し結果を出力しないというアクセス規則が規定されている場合を考える。この場合、その適用条件に適合する読み出し要求に基づくデータの読み出しは無用なので、処理実行部150による処理(データの読み出し)の前にアクセス規則を適用して処理要求を変換し、処理自体を実行しない方が効率的である。一方で、所定数以上のデータが読み出されたことを適用条件として実行規則に基づく処理結果の変換が行われる場合を考える。この場合、データを読み出した後でなければ適用条件に適合するか否か(所定数以上のデータを読み出したか否か)を判断することができない。したがって、この場合は処理実行部150による処理が行われた後にアクセス規則を適用して処理結果を変換しなければならない。したがって、個々のアクセス規則ごとに、適用条件および実行規則の内容に応じて、処理実行部150による処理の前に適用するか、後に適用するかを設定することが望ましい。
【0041】
<データベース・システムの動作>
図5は、本実施形態のデータベース・システム100における処理実行部150およびルール適用部160の処理手順を説明するフローチャートである。初期状態として、クライアントのログイン処理が既に済んでいるものとする。また、この動作例では、処理実行部150による処理に先立って適用するアクセス規則と、処理実行部150による処理の後に適用するアクセス規則の両方が規定されているものとする。
【0042】
図5に示すように、データベース・システム100が、クライアントからSQL文等による処理要求を受け付けると(ステップ501)、ルール適用部160は、受け付けた処理要求に関して、処理実行部150による処理の実行前に適用するアクセス規則の適用条件に適合するか否かを判断する(ステップ502)。そして、処理要求が適合する適用条件が存在する場合は、その適用条件に対応する実行規則を適用し、処理要求の内容を変換する(ステップ503)。
【0043】
この後、処理実行部150は、処理要求(ステップ503で実行規則が適用された場合は、変換後の処理要求)に基づき処理を実行する(ステップ504)。次に、ルール適用部160は、処理実行部150による処理の結果に基づいて、この処理要求がアクセス規則の適用条件に適合するか否かを判断する(ステップ505)。そして、処理要求が適合する適用条件が存在する場合は、その適用条件に対応する実行規則を適用し、処理結果の内容を変換する(ステップ506)。そして、処理実行部150は、得られた処理結果(ステップ506で実行規則が適用された場合は、変換後の処理結果)を出力する(ステップ507)。
【0044】
<適用例1>
次に、本実施形態のさらに詳細な適用例を説明する。図6は、本適用例において処理対象となるオブジェクトである表「顧客テーブル」の構成例を示す。また、図7は、本適用例において用いられるアクセス規則の構成例を示す。図6に示す「顧客テーブル」には、「顧客番号」、「氏名」、「住所」、「電話番号」、「性別」、「誕生日」、「収入」、「カード番号」、「パスワード」の各列に各々データが格納されている。また、図7に示すアクセス規則において、規則1〜規則4は、列の指定に関して適用条件が設定されており、規則5〜規則7は、処理結果のデータサイズ(個数)に基づいて適用条件が設定されている。
【0045】
図7に示すアクセス規則について、さらに具体的に説明する。規則1は、「顧客テーブル」を対象として「顧客番号」および「パスワード」の値が指定された読み出し要求に関して(適用条件)、「パスワード」の値を「NULL」(非表示)とする実行規則が規定されている。規則2は、「顧客テーブル」を対象として「顧客番号」の値が指定された読み出し要求に関して(適用条件)、「電話番号」の値をマスク(意味のない値を付与)し、「収入」、「カード番号」および「パスワード」の値を「NULL」(非表示)とする実行規則が規定されている。規則3は、「顧客テーブル」を対象として「住所」の値が指定された読み出し要求に関して(適用条件)、「顧客番号」、「氏名」、「カード番号」および「パスワード」の値を「NULL」(非表示)とする実行規則が規定されている。規則4は、「顧客テーブル」を対象として全てのデータを読み出す読み出し要求に関して(適用条件)、処理を実行しない(処理結果は「ERROR」)とする実行規則が規定されている。したがって、規則1〜規則4については、処理実行部150による処理の実行前に、処理要求に対してルール適用部160によるアクセス規則の適用を行って、上記の「NULL」値を出力する項目については、データの読み出し自体を行わないように処理を変更することができる。
【0046】
また、規則5は、処理結果としてデータ・セット(「顧客テーブル」の行)が1以上取得されたときは(適用条件)、そのデータ・セットにおける「パスワード」の値を「NULL」(非表示)とする実行規則が規定されている。規則6は、処理結果としてデータ・セットが3以上取得されたときは(適用条件)、そのデータ・セットにおける「顧客番号」、「氏名」、「カード番号」および「パスワード」の値を「NULL」(非表示)とし、「電話番号」の値をマスク(意味のない値を付与)する実行規則が規定されている。規則7は、処理結果としてオブジェクト「電話番号」、オブジェクト「顧客テーブル」を対象とするデータ・セットの読み出しにおいて、取得(出力)可能なデータ・セットの最大数を3とする実行規則が規定されている。したがって、規則5〜規則7については、処理実行部150による処理の実行後に、処理結果に対してルール適用部160によるアクセス規則の適用を行って、読み出されたデータの削除や置き換えを行うように処理を変更することができる。
【0047】
なお、本適用例では、無用な処理の実行や重複実行を避けて処理効率を向上するため、重複して適用可能なアクセス規則に関しては、最も適合性の高いアクセス規則のみを適用する。適合性の高いアクセス規則とは、他のアクセス規則における適用条件の項目(条件項目)を包含し、かつより多くの条件項目が処理要求に合致するアクセス規則である。例えば、図7に示すアクセス規則において、規則1の条件項目は規則2の条件項目を包含し、より多くの条件項目を有するため、規則1に適合する処理要求は、必ず規則2にも適合する。このような場合に、規則1のみを適用し、規則2は適用しない。これは、複数のアクセス規則が適合する場合に、処理結果として取得されるデータ・セットの数がより小さくなるアクセス規則を優先することを意味する。
【0048】
また、本適用例では、上記とは別に、適用条件が適合した場合に処理を行わない(または処理結果を出力しない)とするアクセス規則を最も優先的に適用し、取得(出力)可能なデータ・セットの最大数を規定するアクセス規則を次に優先させて適用する。すなわち、図7に示す例では、規則4の適用を最優先とし、次に規則7の適用を優先させる。
【0049】
ここで、次のSQL文による処理要求が行われた場合を考える。
要求4:SELECT * FROM 顧客 WHERE 顧客番号=0001 AND パスワード=AAAA;
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「顧客番号」および「パスワード」の値が指定されている。
【0050】
図7を参照して、上記の要求4が適合するアクセス規則を調べると、規則1、規則2、規則4が適合する。ただし、ここでは規則1の適合性が最も高いので、規則1のみを適用し、規則2、規則4は不適用とする。また、処理実行部150による処理の結果によっては、規則5〜規則7が適合する可能性がある。
【0051】
次に、処理実行部150が要求4に基づく処理を実行すると、図6における「顧客番号」=「0001」のデータ・セットが取得される。このデータ・セットは1行なので、規則6、規則7の適用条件は適合しないため、規則6および規則7は適用されない。一方、規則5の適用条件は適合するので、この処理結果に対して、規則1および規則5が適用される。これにより処理結果は、
「0001、安○いちご、東京都、03−1234−0001、女、1月1日、600万、1234−5678−0001、(NULL)」
となる。すなわち、処理実行部150による処理結果から「パスワード」の値が「NULL」(非表示)に変更された。
【0052】
次に、次のSQL文による処理要求が行われた場合を考える。
要求5:SELECT * FROM 顧客WHERE 顧客番号=0002;
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「顧客番号」の値が指定されている。
【0053】
図7を参照して、上記の要求5が適合するアクセス規則を調べると、規則2、規則4が適合する。ただし、ここでは規則2の適合性が高いので、規則2のみを適用し、規則4は不適用とする。また、処理実行部150による処理の結果によっては、規則5〜規則7が適合する可能性がある。
【0054】
次に、処理実行部150が要求5に基づく処理を実行すると、図6における「顧客番号」=「0002」のデータ・セットが取得される。このデータ・セットは1行なので、規則6、規則7の適用条件は適合しないため、規則6および規則7は適用されない。一方、規則5の適用条件は適合するので、この処理結果に対して、規則2および規則5が適用される。これにより処理結果は、
「0002、石○次郎、東京都、03−XXXX−XXXX、男、2月2日、(NULL)、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から「電話番号」がマスクされ、「収入」、「カード番号」および「パスワード」の値が「NULL」(非表示)に変更された。
【0055】
次に、次のSQL文による処理要求が行われた場合を考える。
要求6:SELECT * FROM 顧客WHERE 住所=神奈川県;
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「住所」の値が指定されている。
【0056】
図7を参照して、上記の要求6が適合するアクセス規則を調べると、規則3、規則4が適合する。ただし、ここでは規則3の適合性が高いので、規則3のみを適用し、規則4は不適用とする。また、処理実行部150による処理の結果によっては、規則5〜規則7が適合する可能性がある。
【0057】
次に、処理実行部150が要求6に基づく処理を実行すると、図6における「顧客番号」=「0006」のデータ・セットが取得される。このデータ・セットは1行なので、規則6、規則7の適用条件は適合しないため、規則6および規則7は適用されない。一方、規則5の適用条件は適合するので、この処理結果に対して、規則3および規則5が適用される。これにより処理結果は、
「(NULL)、(NULL)、神奈川県、03−1234−0006、男、6月6日、1000万、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から「顧客番号」、「氏名」、「カード番号」および「パスワード」の値が「NULL」(非表示)に変更された。
【0058】
次に、次のSQL文による処理要求が行われた場合を考える。
要求7:SELECT * FROM 顧客WHERE 住所=東京都;
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「住所」の値が指定されている。
【0059】
図7を参照して、上記の要求7が適合するアクセス規則を調べると、規則3、規則4が適合する。ただし、ここでは規則3の適合性が高いので、規則3のみを適用し、規則4は不適用とする。また、処理実行部150による処理の結果によっては、規則5〜規則7が適合する可能性がある。
【0060】
次に、処理実行部150が要求7に基づく処理を実行すると、図6における「顧客番号」=「0001」、「0002」、「0005」、「0007」のデータ・セットが取得される。このデータ・セットは4行なので、まず規則7が適用され、4行目の「顧客番号」=「0007」のデータ・セットが削除される。次に、規則5および規則6の適用条件はいずれも適合するので、この処理結果に対して、規則3、規則5および規則6が適用される。これにより処理結果は、
「(NULL)、(NULL)、東京都、03−XXXX−XXXX、女、1月1日、600万、(NULL)、(NULL);
(NULL)、(NULL)、東京都、03−XXXX−XXXX、男、2月2日、500万、(NULL)、(NULL);
(NULL)、(NULL)、東京都、03−XXXX−XXXX、男、5月5日、500万、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から1行分のデータ・セットが削除され、「顧客番号」、「氏名」、「カード番号」および「パスワード」の値が「NULL」(非表示)に変更され、「電話番号」がマスクされた。
【0061】
次に、次のSQL文による処理要求が行われた場合を考える。
要求8:SELECT * FROM 顧客;
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、いずれの列の値も指定されていない。
【0062】
図7を参照して、上記の要求8が適合するアクセス規則を調べると、規則4が適合する。また、処理実行部150による処理の結果によっては、規則5〜規則7が適合する可能性がある。ここでは、規則4が適合しているので、この規則4が最優先で適用される。なお、規則4の適用は、処理実行部150による処理の実行に先立って行われる。したがって、処理実行部150による処理は実行されず、処理結果は「ERROR」となる。
【0063】
<適用例2>
次に、本実施形態の他の適用例を説明する。本適用例において処理対象となるオブジェクトは、図6に示した表「顧客テーブル」を用いる。また、図8は、本適用例において用いられるアクセス規則の構成例を示す。図8に示すアクセス規則において、規則8〜規則10は、列の指定に関して適用条件が設定されている。
【0064】
図8に示すアクセス規則について、さらに具体的に説明する。規則8は、「顧客テーブル」を対象として「住所」の値が指定された読み出し要求に関して(適用条件)、「住所」と「性別」以外の全ての列の値を「NULL」(非表示)とする実行規則が規定されている。規則9は、「顧客テーブル」を対象として「性別」の値が「男」に指定された読み出し要求に関して(適用条件)、「収入」以外の全ての列の値を「NULL」(非表示)とする実行規則が規定されている。規則10は、「顧客テーブル」を対象として「性別」の値が「女」に指定された読み出し要求に関して(適用条件)、「誕生日」以外の全ての列の値を「NULL」(非表示)とする実行規則が規定されている。
【0065】
ここで、次のSQL文による処理要求が行われた場合を考える。
要求9:SELECT * FROM 顧客 WHERE 住所='東京';
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「住所」の値が指定されている。図8を参照して、上記の要求9が適合するアクセス規則を調べると、規則8が適合する。
【0066】
次に、処理実行部150が要求9に基づく処理を実行すると、図6における「顧客番号」=「0001」、「0002」、「0005」、「0007」のデータ・セットが取得される。この結果に対して規則8が適用されるので、処理結果は、
「(NULL)、(NULL)、東京都、(NULL)、女、(NULL)、(NULL)、(NULL)、(NULL);
(NULL)、(NULL)、東京都、(NULL)、男、(NULL)、(NULL)、(NULL)、(NULL);
(NULL)、(NULL)、東京都、(NULL)、男、(NULL)、(NULL)、(NULL)、(NULL);
(NULL)、(NULL)、東京都、(NULL)、女、(NULL)、(NULL)、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から「住所」および「性別」以外の全ての値が「NULL」(非表示)に変更された。
【0067】
次に、次のSQL文による処理要求が行われた場合を考える。
要求10:SELECT * FROM 顧客 WHERE 性別='男';
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「性別」の値が「男」に指定されている。図8を参照して、上記の要求10が適合するアクセス規則を調べると、規則9が適合する。
【0068】
次に、処理実行部150が要求10に基づく処理を実行すると、図6における「顧客番号」=「0002」、「0003」、「0004」、「0005」、「0006」のデータ・セットが取得される。この結果に対して規則9が適用されるので、処理結果は、
「(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、500万、(NULL)、(NULL);
(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、800万、(NULL)、(NULL);
(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、450万、(NULL)、(NULL);
(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、500万、(NULL)、(NULL);
(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、1000万、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から「収入」以外の全ての値が「NULL」(非表示)に変更された。
【0069】
次に、次のSQL文による処理要求が行われた場合を考える。
要求11:SELECT * FROM 顧客 WHERE 性別='女';
このSQL文を解析すると、処理の種類はデータの読み出し(SELECT)であり、データ読み出し対象の列は指定されておらず、処理対象のオブジェクトは「顧客テーブル」であり、「性別」の値が「女」に指定されている。図8を参照して、上記の要求11が適合するアクセス規則を調べると、規則10が適合する。
【0070】
次に、処理実行部150が要求11に基づく処理を実行すると、図6における「顧客番号」=「0001」、「0007」のデータ・セットが取得される。この結果に対して規則10が適用されるので、処理結果は、
「(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、1月1日、(NULL)、(NULL)、(NULL);
(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、7月7日、(NULL)、(NULL)、(NULL)」
となる。すなわち、処理実行部150による処理結果から「誕生日」以外の全ての値が「NULL」(非表示)に変更された。
【0071】
以上、本発明の実施形態について説明したが、本発明の具体的な構成は、上記の実施形態には限定されない。例えば、アクセス対象のオブジェクトは、上記の例で説明した表やそのデータ構成に限定されない。また、アクセス規則を上記の例以外にも様々に設定し得ることは上述した通りである。その他、上記の実施形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれる。
【符号の説明】
【0072】
100…データベース・システム、110…オブジェクト格納部、120…アカウント情報記憶部、130…ルール情報記憶部、140…ログイン制御部、150…処理実行部、160…ルール適用部
図1
図2
図3
図4
図5
図6
図7
図8