説明

データベース管理方法、データベース管理装置、及びデータベース管理プログラム

【課題】機密情報を秘匿し、保護するデータベース管理方法を提供する。
【解決手段】データベース管理装置において、データベースに格納される機密情報に対するアクセスを管理するデータベース管理方法であって、データベース管理装置は、データベースに対するアクセス要求を受け付けるデータベース管理システムと、データベースの定義情報であるディクショナリとを格納し、ディクショナリは、データが格納される表を構成する列の属性に列に格納されるデータが機密情報であるか否かを示すための機密識別属性を含み、データベース管理装置は、データベースに格納されたデータの取得要求を受け付け、受け付けられたデータの取得要求を解析し、要求されたデータが格納される列の機密識別属性を参照し、要求されたデータが機密情報であるか否かを判定し、要求されたデータが格納される列に機密情報が含まれる場合には、列の射影を禁止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースを管理する技術に関し、機密情報の漏洩を防止する技術に関する。
【背景技術】
【0002】
データベースに格納された機密情報の漏洩を防止する技術としては、データベース利用者に対してアクセス権限を付与することによって機密情報に対するアクセスを制限する技術と、機密情報自体を暗号化する技術が開示されている。
【0003】
アクセス権限を付与する技術とは、アクセス対象のデータベースの表又は列などの資源に対して参照又は更新する権限を利用者に付与する方法である。そして、データベース管理システムは、アクセス権限を付与されていない利用者によるデータアクセスを禁止する。データベース管理システムは、事前に登録されたパスワードなどによって許可された利用者か否かを識別する。したがって、パスワードが漏洩しない限り、データベースに格納された機密情報の漏洩を防ぐことができる。特許文献1には、ユーザ認証処理によって認証されたユーザに対して機密情報を提供する情報処理システムが開示されている。
【0004】
また、機密情報自体を暗号化する技術とは、利用者に指定された暗号鍵によって、第三者に認識されない形式に機密情報自体を変換(暗号化)する技術である。暗号化された機密情報は、暗号鍵を用いて元の情報に変換(復号化)することができる。このため、暗号鍵が漏洩しない限り、機密情報の漏洩を防ぐことができる。アクセス権限を付与する技術と組み合わせることによって、パスワードが盗まれて、機密情報をデータベース管理システムから読み出されたとしても、容易に復号化できないため、より強固に情報漏洩を防止できる。
【0005】
特許文献2には、機密情報である個人情報のデータベースにおいて、各個人を識別する個人コードのみを暗号化して格納することによって、データの復号化による処理性能の劣化を抑制しながら情報漏洩を防ぐ技術が開示されている。
【特許文献1】特開2006−134019号公報
【特許文献2】特開平11−272681号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された技術では、ユーザ認証処理におけるパスワードが漏洩しない限り、機密情報の漏洩を防ぐことができる。一方、パスワードが漏洩してしまえば、機密情報に対するアクセスが可能となってしまう。
【0007】
また、特許文献2に開示された技術では、暗号鍵が漏洩してしまった場合には、機密情報が漏洩してしまうおそれがある。さらに、個人コード自体を比較する場合、コードが暗号化されているため、直接比較することができず、特に、類似する情報に類似するコードを割り当てる場合など、暗号化されたコード自体に意味を有する場合には、必要なデータを抽出できない場合がある。また、比較するために随時復号化すると、処理性能が悪化してしまうおそれがある。
【0008】
そこで、本発明は、前述した問題を鑑みてなされたものであり、設定されたアクセス権によらずに、機密情報を秘匿することを目的とする。また、機密情報の暗号化せずに利用可能とすることで、処理性能の悪化を防止することを目的とする。
【課題を解決するための手段】
【0009】
本発明の代表的な一形態では、プロセッサと、前記プロセッサに接続されるメモリと、データベースが格納される記憶装置とを備えるデータベース管理装置において、前記データベースに格納されるデータに含まれる機密情報に対するアクセスを管理するデータベース管理方法であって、前記メモリは、前記データベースに対するアクセス要求を受け付けるデータベース管理システムを記憶し、前記記憶装置は、前記データベースの定義情報であるディクショナリを格納し、前記ディクショナリは、前記データが格納される表を構成する列の属性を含み、前記列の属性は、当該列に格納されるデータが機密情報であるか否かを示すための機密識別属性を含み、前記プロセッサは、前記データベースに格納されたデータの取得要求を受け付け、前記受け付けられたデータの取得要求を解析し、前記要求されたデータが格納される列の機密識別属性を参照し、前記要求されたデータが機密情報であるか否かを判定し、前記要求されたデータが格納される列に機密情報が含まれる場合には、前記列の射影を禁止する。
【発明の効果】
【0010】
本発明の一形態によれば、データベース管理システムに対して、機密情報が格納された列を機密情報属性に設定することによって、当該列の射影操作が禁止され、機密情報の情報漏洩を防止することができる。したがって、機密情報を暗号化して格納する必要がないため、復号化による性能低下を防止することができる。
【発明を実施するための最良の形態】
【0011】
本発明は、データベースに格納された表に含まれる機密情報が格納された列(フィールド)を秘匿しながら利用可能とする技術である。以下に説明する実施形態として、第1の実施形態では、商品の分類情報を機密情報とする例を説明する。具体的には、書籍を販売するショッピングサイトの書籍検索システムについて説明する。
【0012】
第2の実施形態では、コミュニティシステムにおける、同年代の同じ趣味をもった会員を探す機能を実現する仕組みについて説明する。このとき、個人情報に該当する情報を利用者に開示することなく、所期の目的を達成することができる。
【0013】
(第1の実施形態)
第1の実施形態では、書籍検索システムに本発明を適用する。書籍検索システムは、顧客に対して、好みの書籍と類似するなど関連した書籍の情報を提供することによって、次の購買に繋げる。
【0014】
書籍検索システムは、書籍の名称、値段、書籍のジャンルコードなどをデータベースによって管理する。書籍検索システムは、データベース管理システムに対し、任意の書籍名称に基づいて、類似又は関連する書籍名称を検索する。例えば、著者が「シェイクスピア」の書籍を購入した場合、「シェイクスピア」と同じイギリス文学者「アーサー・コナン・ドイル」の著書である「シャーロックホームズの冒険」を類似した書籍として検索し、顧客が好む書籍の候補として提供する。
【0015】
ジャンルコードは、ジャンルコード自体に著者などの書籍の情報を含まなくても、類似又は関連するジャンルの書籍に対して、類似するジャンルコードを割り当てることによって、書籍間の類似性及び関連性を判定することができる。また、ジャンルコードは、著者などのデータとともに、書籍の内容などに基づいて定めることによって、より精度が向上する。第1の実施形態のジャンルコードは、サービスを提供する企業が世界中の書籍1つ1つを評価して設定するものとなっている。
【0016】
第1の実施形態の書籍検索システムは、ジャンルコードに基づいて、利用者の好みに応じた書籍を選択することが可能となっている。したがって、各書籍の類似性及び関連性を的確に表したジャンルコードを定めることによって、顧客の好みに合致した書籍の情報を提供することができ、より充実したサービスを提供できる。特に、精度の高いジャンルコードは、サービス提供企業の機密情報に値する重要な情報となる。
【0017】
また、書籍検索システムを開発する企業は、ジャンルコードを実際に設定するサービス提供企業と異なる場合がある。このとき、サービス提供企業は、書籍検索システムを開発するためにシステムを開発する企業にジャンルコードを提供する必要がある。システムを開発する企業には、機密保持義務が課されるが、ジャンルコードそのものが流出したり、システムの開発関係者によってジャンルコードに関するノウハウが流出するおそれがある。
【0018】
そこで、第1の実施形態の書籍検索システムでは、データベース管理者であっても、機密情報であるジャンルコードを直接参照できないようにシステムを構成する。また、ジャンルコードそのものを取得することは禁止されるが、類似又は関連する書籍を検索するために、間接的にジャンルコードを利用する手段を提供する。
【0019】
以下、書籍検索システムにおいて、本発明を実施するための最良の形態を、図面に基づいて詳細に説明する。
【0020】
図1は、本発明の第1の実施形態のデータベース管理システムのハードウェア構成を示す図である。データベース管理システムは、データベース管理装置100及び端末150を含む。データベース管理装置100及び端末150は、ネットワーク190を介して接続される。
【0021】
データベース管理装置100は、データを格納し、端末150からの要求に応じた処理を実行する。端末150は、利用者からの入力を受け付けて、データベース管理装置100に処理を要求する。
【0022】
データベース管理装置100は、CPU110、メモリ115、ハードディスク装置(160、170)、及びインターフェース180を含む。CPU110は、メモリ115に格納されたプログラムを実行する。
【0023】
メモリ115は、ハードディスク装置(160、170)などに格納されたプログラム又はデータを格納する。メモリ115は、ユーザアプリケーション(User APplication;以下、「UAP」)120、データベース管理システム130、及びオペレーティングシステム140を格納する。
【0024】
UAP120は、業務処理が定義されたプログラムであって、CPU110によって実行される。データベース管理システム130は、ハードディスク装置170に格納されたデータベースを管理する。データベース管理システム130が管理するデータベースは、必要に応じてUAP120にアクセスされる。UAP120及びデータベース管理システム130は、オペレーティングシステム140上で実行される。
【0025】
ハードディスク装置170は、データ及び当該データのインデックス情報などを含むデータベースを格納する。ハードディスク装置160は、ハードディスク装置170に格納されたデータベースのディクショナリを格納する。ディクショナリとは、データベースのテーブル構造、列定義、インデックス定義などを含むデータベース設計仕様である。ディクショナリは、データベースを参照又は更新する際に必要とされる。ディクショナリの詳細については、図2にて後述する。
【0026】
第1の実施形態では、ハードディスク装置160及び170は、データベース管理装置100に含まれる形態としているが、外部のストレージ装置にデータベース及びディクショナリを格納し、ネットワーク190を経由して接続してもよい。
【0027】
また、データベースにアクセスする端末150は、データベース管理装置100に含まれていてもよい。例えば、携帯端末のメモリにデータベース及びディクショナリを記録し、当該携帯端末の入力装置からUAP120を起動し、メモリに格納されたデータベースにアクセスしてもよい。
【0028】
図2は、本発明の第1の実施形態の表定義文の一例と、ディクショナリを生成する手順を示す図である。
【0029】
ディクショナリは、列を含む表名、列名、データ型などを含み、本発明の第1の実施形態のディクショナリでは、さらに、格納される情報が機密情報であるか否かを示す「機密情報格納有無」フィールドを含む。「機密情報格納有無」は、格納される情報が機密情報であれば、「Y」が格納され、機密情報でなければ、「N」が格納される。また、機密情報格納列の列属性「機密情報格納有無」の値を「Y」から「N」に変更することも禁止される。
【0030】
続いて、ディクショナリを生成する手順を簡単に説明する。ディクショナリは、表を生成する定義系SQLを作成し、データベース管理システム130で実行することによって生成される。生成されたディクショナリは、ハードディスク装置160に格納される。
【0031】
定義系SQL200は、列名及び当該列のデータ型などの一般的なオプションが指定されるとともに、当該列に機密情報格納有無を指定するパラメータが指定される。なお、機密情報格納有無が指定されない列は、機密情報としてではなく、通常の情報を格納する列として定義される。
【0032】
表210は、定義されるパラメータの定義を示す表である。定義系SQL200において、ジャンルコードの列に指定されたパラメータ「P1」は、値として「Y」又は「N」が格納されることが値212に定義される。また、パラメータ「P1」に設定される値の意味が、意味213に格納されている。
【0033】
定義系SQL200が実行されることによって生成されたディクショナリは、ディクショナリ表220に示すように構成される。ディクショナリ表220は、表名221、列名222、データ型223、及び機密情報格納有無224などを含む。
【0034】
SQL200に示す表1の表定義文では、「ジャンルコード」列の定義情報としてパラメータ名「P1」(211)に「Y」を指定することによって、「ジャンルコード」列が機密情報格納列であることを示している。
【0035】
したがって、SQL200によって定義された表1の列情報は、ディクショナリ表220の機密情報格納有無224の欄に「Y」が格納される。すなわち、SQL200によって定義された表1には、「ジャンルコード」列には機密情報を格納し、「書籍ID」列と「書籍名」列、及び「著者名」列には機密情報でないデータを格納する。
【0036】
図3は、本発明の第1の実施形態のデータベース管理システム130が表を定義する処理の手順を示す図である。
【0037】
データベース管理システム130は、まず、UAP120から定義系SQL200を受け付ける(500)。続いて、データベース管理システム130は、受信したSQLに基づいて、表定義処理を実行する(510)。
【0038】
次に、データベース管理システム130は、表定義で指定された各列に対して、以下の処理を繰り返す(520)。まず、定義される表の各列が機密情報格納列に指定されているか否かを判定する(521)。列に機密情報文字列の指定がなされている場合には(521の結果が「Y」)、図2に示した列データを管理するディクショナリ表220の該当列データに対して、機密情報格納有無224の値を「Y」に設定する(522)。また、列に機密情報文字列の指定がなされていない場合には(521の結果が「N」)、機密情報格納有無224の値を「N」に設定する(523)。以上の処理によって、データ検索時に機密情報格納列であるか否かを判定することが可能となる。
【0039】
図4は、本発明の第1の実施形態のデータベース管理システム130が表の定義を変更する処理の手順を示す図である。
【0040】
データベース管理システム130は、まず、UAP120から定義変更SQL(ALTER TABLE文)を受け付ける(600)。
【0041】
次に、データベース管理システム130は、表定義変更操作の種類を判定する(620)。データベース管理システム130が受け付けた処理が「列の追加」ならば、通常の変更処理を実行する(621)。なお、621の処理では、機密情報格納列を追加することも可能であり、改めて表定義からやり直すことなく、機密情報格納列を追加することができる。したがって、機密情報格納列を追加する場合であっても、変更に伴う影響を少なくすることができ、運用コストの増大を防ぐことができる。
【0042】
データベース管理システム130は、受け付けた処理が「列属性の変更」ならば、機密情報格納有無224の属性を「Y」から「N」に変更する処理であるか否かを判定する(622)。機密情報格納有無224の属性を「Y」から「N」に変更する処理であるとき(622の結果が「Y」)、変更を許可しない(624)。また、機密情報格納有無224の属性を「Y」から「N」に変更する処理でなければ、受け付けた処理を実行する(625)。以上の処理によって、機密情報格納列に格納されているデータが機密情報格納列オプションを変更することによって、利用者に情報漏洩することを防ぐことができる。
【0043】
なお、データベース管理システム130は、受け付けた処理が「列の追加」又は「列属性の変更」でなければ(620の結果が「その他」)、機密情報格納列に対する処理に影響しないため、受け付けた処理を実行する(623)。
【0044】
図5A及び図5Bは、本発明の第1の実施形態のデータベース管理システム130がデータを検索する処理の手順を示すフローチャートである。
【0045】
図5Aは、本発明の第1の実施形態のデータ検索処理に含まれるSQL構文解析処理の手順を示すフローチャートである。
【0046】
データベース管理システム130は、まず、SQL受信処理を実行し(300)、UAP120からデータを検索するSQLを受け付ける(301)。
【0047】
次に、データベース管理システム130は、300の処理で受信したSQLに対して、SQL構文解析処理を実行する(320)。SQL構文解析処理320では、まず、300の処理で受信したSQLを解析する(321)。具体的には、受信したSQLに含まれるキーワード及び識別子を抽出し、文法的に正しいか否かを判定する。受信するSQLの具体例は、図6にて後述する。
【0048】
データベース管理システム130は、受信したSQLの解析が終了すると、射影列に機密情報格納列が含まれているか否かを判定する(322)。具体的には、ディクショナリ表220の機密情報格納有無224の値を参照することによって判定する。
【0049】
データベース管理システム130は、射影列に機密情報格納列が含まれている場合には(322の結果が「Y」)、解析結果を異常と判定し(323)、構文エラー処理を実行する(324)。このように、射影列に機密情報格納列が含まれている場合には、構文エラーとして処理することによって、利用者が機密情報を参照することを防止できる。
【0050】
データベース管理システム130は、射影列に機密情報格納列が含まれていない場合には(322の結果が「N」)、SQL問合せの条件式に機密情報格納列が指定されているか否かを判定する(325)。SQL問合せの条件式とは、射影するデータを抽出する検索条件である。具体的には、322の処理と同様に、ディクショナリ表220の機密情報格納有無224の値を参照することによって判定する。SQL問合せの条件式に機密情報格納列が指定されていない場合には(325の結果が「N」)、解析結果を正常と判定する(327)。
【0051】
データベース管理システム130は、SQL問合せの条件式に機密情報格納列が指定されている場合には(325の結果が「Y」)、さらに、機密情報格納列の値が直接指定されているか否かを判定する(326)。機密情報格納列の値が直接指定されている場合には(326の結果が「Y」)、解析結果を異常と判定し(329)、構文エラー処理を実行する(330)。機密情報格納列の値の射影を禁止しても、条件式で直接指定することが可能であれば、機密情報格納列の値を推測することが可能であるからである。
【0052】
データベース管理システム130は、機密情報格納列の値が直接指定されていない場合には(326の結果が「N」)、解析結果を正常と判定する(328)。機密情報格納列の値が直接指定されていない場合とは、例えば、副問合せの結果同士を比較する場合などである。SQLの条件式において、機密情報格納列同士を比較する場合には、検索結果から利用者が機密情報格納列の値を推測することは困難である。
【0053】
図5Bは、本発明の第1の実施形態のデータ検索処理に含まれるデータの取得処理及び返却処理の手順を示す図である。
【0054】
データベース管理システム130は、320のSQL構文解析処理が終了すると、次にデータの取得処理を実行する(340)。データベース管理システム130は、SQL構文解析処理の結果を参照し(341)、結果が正常の場合には(341の結果が「正常」)、受信したSQLに基づいて、データを取得する(342)。SQL構文解析処理の結果が異常の場合には(341の結果が「異常」)、そのままデータの取得処理を終了する。
【0055】
データベース管理システム130は、340のデータの取得処理が終了すると、UAP120に抽出されたデータを応答する(360)。まず、データベース管理システム130は、SQL構文解析処理の結果を参照し(361)、結果が正常の場合には(361の結果が「正常」)、UAP120に検索結果として342の処理で取得したデータを送信する(362)。一方、SQL構文解析処理の結果が異常の場合には(361の結果が「異常」)、UAP120に検索結果として構文エラーである旨を通知する。
【0056】
このようにして、本発明は、機密情報格納列のデータが利用者に漏洩することなく、安全に、かつ、柔軟な検索結果を利用者に提供できる。
【0057】
図6は、本発明の第1の実施形態の書籍検索システムの動作を説明する図である。図5A及び図5Bのフローチャートの処理と対比させながら、具体的に書籍検索システムの動作について説明する。
【0058】
SQL1からSQL4(401〜404)は、書籍情報が格納されたデータベースからデータを抽出する命令を含む。UAP120は、データベース管理システム130にSQL1からSQL4を送信し、データの取得を要求する。データベース管理システム130は、受信したSQLを処理し、ディクショナリ及びデータベースを参照して必要な情報を抽出する。このとき、SQLが不正である場合には、UAP120にエラーが応答される。
【0059】
ここで、第1の実施形態において、UAP120がSQL1からSQL4(401〜404)をデータベース管理システム130に送信し、データを取得する処理について説明する。なお、UAP120から直接SQLを送信せずに、予め定義されたストアドプロシージャを実行することによってデータを取得することも可能である。
【0060】
まず、UAP120がSQL1(401)をデータベース管理システム130に送信したときの処理について説明する。
【0061】
データベース管理システム130は、SQL1(401)を受信すると、まず、SQL問合せの射影列に機密情報格納列が指定されているか否かを判定する(322)。ディクショナリ表(420)を参照すると、「ジャンルコード」列は、機密情報格納列であるため、322の判定結果は「Y」となる。したがって、データベース管理システム130は、解析結果を「異常」と判定し(323)、構文エラー処理を実行し(324)。UAP120に構文エラーを通知する(411)。
【0062】
このように、SQL問合せにおける機密情報格納列の射影を禁止し、機密情報であるジャンルコードの漏洩を防止することができる。
【0063】
次に、UAP120がSQL2(402)をデータベース管理システム130に送信したときの処理について説明する。
【0064】
データベース管理システム130は、SQL2(402)を受信すると、まず、SQL問合せの射影列に機密情報格納列が指定されているか否かを判定する(322)。ディクショナリ表(420)を参照すると、「書籍名」列は、機密情報格納列ではないため、322の判定結果は「N」となる。
【0065】
続いて、データベース管理システム130は、SQL問合せの条件式(WHERE句)に機密情報格納列が指定されているか否かを判定する(325)。ディクショナリ表(420)を参照すると、「ジャンルコード」列は機密情報格納列であるため、325の判定結果は「Y」となる。この場合、SQL問合せの結果から機密情報格納列の値を推測される可能性があるため、さらに、SQL問合せの条件式の比較対象の値が機密情報格納列の検索結果であるか否かを判定する(326)。換言すると、SQL問合せの条件式の比較対象が、機密情報格納列を射影列としたSQL副問合せであるか否かを判定する。
【0066】
SQL2(402)は、SQL問合せの条件式(WHERE句)の機密情報格納列「ジャンルコード」の比較対象として、「ジャンルコード」を射影列に指定したSQL副問合せが指定されている。「ジャンルコード」列は機密方法格納列であるが、副問合せで射影された列同士を直接比較しているため、326の判定結果は「Y」となり、SQL構文解析結果を「正常」となる(328)。そして、データベース管理システム130は、UAP120に取得したデータ(412)を送信する(362)。
【0067】
第1の実施形態のデータベース管理システム130では、機密情報格納列同士を比較するなどの機密情報格納列の値を直接使用しない場合に限って、SQLの条件式に指定することができる。したがって、機密情報格納列のデータの漏洩を防止しながら、機密情報格納列のデータを利用した検索を安全に行なうことができる。
【0068】
次に、UAP120がSQL3(403)をデータベース管理システム130に送信したときの処理について説明する。
【0069】
データベース管理システム130は、SQL3(403)を受信すると、まず、SQL問合せの射影列に機密情報格納列が指定されているか否かを判定する(322)。ディクショナリ表(420)を参照すると、「書籍名」列は、機密情報格納列ではないため、322の判定結果は「N」となる。
【0070】
続いて、データベース管理システム130は、SQL問合せの条件式(WHERE句)に機密情報格納列が指定されているか否かを判定する(325)。ディクショナリ表(420)を参照すると、「ジャンルコード」列は機密情報格納列であり、SQL3(403)には、ジャンルコードが条件式に含まれているため、325の判定結果は「Y」となる。
【0071】
さらに、SQL問合せの条件式の比較対象の値が機密情報格納列の検索結果であるか否かを判定する(326)。換言すると、SQL問合せの条件式の比較対象が、機密情報格納列を射影列としたSQL副問合せであるか否かを判定する。SQL3(403)は、SQL問合せの条件式(WHERE句)の機密情報格納列「ジャンルコード」の比較対象として、「1400」という値を指定しているため、326の判定結果は「N」となる。ジャンルコードが直接指定されたSQLの実行を許可すると、SQL問合せの結果から機密情報格納列の値を推測される可能性があるため、SQL3(403)の実行は禁止される。そして、データベース管理システム130は、SQL構文解析結果を「異常」と判定し(329)、構文エラー処理を実行する(330)。
【0072】
以上のように、第1の実施形態のデータベース管理システム130では、SQL問合せの条件式において、機密情報格納列の値を直接指定することを禁止することによって、検索結果から利用者が機密情報格納列の値を推測することを防ぐことができる。
【0073】
最後に、UAP120がSQL4(404)をデータベース管理システム130に送信したときの処理について説明する。
【0074】
データベース管理システム130は、SQL4(404)を受信すると、まず、SQL問合せの射影列に機密情報格納列が指定されているか否かを判定する(322)。ディクショナリ表(420)を参照すると、「書籍名」列は、機密情報格納列ではないため、322の判定結果は「N」となる。
【0075】
続いて、データベース管理システム130は、SQL問合せの条件式(WHERE句)に機密情報格納列が指定されているか否かを判定する(325)。ディクショナリ表(420)を参照すると、「著者名」列は機密情報格納列でないため、325の判定結果は「N」となり、SQL構文解析結果を「正常」と判定する(327)。そして、データベース管理システム130は、UAP120に取得したデータ(412)を送信する(362)。
【0076】
以上のように、第1の実施形態のデータベース管理システム130では、機密情報格納列に関係しない検索は、従来どおり実行することができる。
【0077】
第1の実施形態によれば、データベース管理システムに対して、ジャンルコード格納列のアクセス属性を機密情報属性に設定することで、当該列の射影操作が禁止され、ジャンルコードの情報漏洩を阻止できる。
【0078】
また、第1の実施形態によれば、一度ジャンルコード格納列に設定した機密情報属性を、変更することができないため、仮にデータベース管理者のパスワードが盗まれたとしても、ジャンルコードの情報漏洩を阻止できる。
【0079】
さらに、第1の実施形態によれば、上記機密情報属性であるジャンルコード格納列を、データベース問合せ(SQLのSelect文)の条件式(Where句)に指定することで、ジャンルコードに間接的にアクセスできる。つまり、ある任意の書籍名称がもつジャンルコードに近い、別の書籍名称を検索できるようになる。
【0080】
第1の実施形態によれば、条件式(Where句)において、比較対象とする値が、機密情報列であるジャンルコード格納列の検索結果(射影列に機密情報列を指定した副問合せの結果)の場合のみ、アクセスできるようになる。つまり、任意のジャンルコードを条件式の比較対象とする値に指定して、書籍名称を検索することによってジャンルコードの情報が漏洩することを防ぐことができる。
【0081】
第1の実施の形態のデータベース管理システムでは、書籍だけでなく音楽情報を格納するデータベースに対しても同様に適用することができる。音楽情報の場合には、ジャンルコードを、歌手又は作曲者、演奏者などの要素をさらに加味して設定することができる。
【0082】
また、音楽再生機能を有するカーナビゲーションシステムなどに当該音楽情報のデータベースを組み込んでもよい。カーナビゲーションシステムが楽曲をダウンロードする機能を有している場合には、利用者の好みの楽曲を選曲し、提案する機能を実装することができる。
【0083】
このとき、本発明を適用することによって、最初にシステムにデータを入力するときにジャンルコードの所有者が入力すれば、その後は、音楽情報のデータベースにアクセスするソフトウェアの開発者に対しても、機密情報を秘匿することができる。なお、機密情報を含むデータの入力は、ネットワークを介して行なうことも可能だが、この場合には、暗号化して通信する必要がある。
【0084】
また、ジャンルコードを暗号化して格納する必要がないため、処理性能の劣化を抑えることができる。特に、迅速な応答を要求される組込みデータベースの検索には有効となる。なお、特に高速な応答が求められないアプリケーションであれば、暗号化した上で、本発明を適用することによって、さらに機密情報を強固に秘匿することができる。
【0085】
(第2の実施形態)
第2の実施形態では、個人情報の保護に本発明を適用する。例えば、コミュニティシステムにおいて、対象の会員の個人情報を利用者に開示することなく、同年代かつ同じ趣味の会員、又は、さらに近くに住む会員を探す機能などを提供する。
【0086】
図7Aは、第2の実施形態のコミュニティシステムの会員情報テーブル710のデータの一例を示す図である。会員情報テーブル710は、名前、年代、住所、及び趣味に関する情報を含む。
【0087】
会員情報テーブル710に格納される情報は、個人を特定する情報及びプライバシーに関する情報を含む。したがって、会員情報テーブル710の内容を、むやみに公開すべきでない。
【0088】
図7Bは、第2の実施形態のコミュニティシステムの会員情報テーブル710のディクショナリ表720である。
【0089】
第2の実施の形態では、図7Bを参照すると、年代及び趣味が機密情報に指定されている。会員情報テーブル710の年代及び趣味は、機密情報格納有無の値が「Y」となっている。
【0090】
また、名前及び住所は、機密情報に指定されていないが、これらの情報を機密情報としてもよい。また、名前の代わりに、ニックネームを別途登録し、名前を機密情報とすることもできる。住所は、詳細な情報ではなく、おおまかな地域を格納しているため、機密情報としていないが、詳細な情報を入力する場合には、機密情報とすればよい。
【0091】
以上のように、会員情報テーブル710を構築することによって、例えば、年代及び趣味に基づいて検索することによって、利用者が自分と年代が近く、似た趣味をもつ会員を検索することができる。
【0092】
具体的には、年代は、同年代又は前後の年代を近い年代とし、趣味は、画一的に判断することが困難であるため、あらかじめ似た趣味を特定できる手順を定義しておく。例えば、似た趣味をグループ分けして定義することによって、同じグループに属する趣味を似た趣味と定義することができる。
【0093】
さらに、「I」さんが、自分と年代が近く、似た趣味をもつ友人を検索する場合には、「I」さんの年代が「30代前半」であるため、「20代後半」、「30代前半」及び「30代後半」の年代の会員が検索対象となる。さらに、趣味が「ビデオ鑑賞」であるため、似た趣味として「映画鑑賞」などが検索対象となる。そして、これらの条件を満たす会員を検索すると、年代が「30代後半」であって、趣味が「映画鑑賞」である「S」さんが検索される。
【0094】
第2の実施形態は、コミュニティシステム以外にも、結婚相手仲介業における紹介者検索システムに適用することが可能である。第2の実施形態を適用した紹介者検索システムでは、個人情報を保護しながら効率よく条件に合致した相手を顧客に紹介することができる。
【0095】
第2の実施形態によれば、企業の資産である機密情報を秘匿するだけでなく、流出を防がなければならない個人情報を秘匿するために本発明を適用することができる。さらに、システム開発者に対しても、個人情報を秘匿することが可能となり、より強固に個人情報を保護することができる。
【図面の簡単な説明】
【0096】
【図1】本発明の第1の実施形態のデータベース管理システムのハードウェア構成を示す図である。
【図2】本発明の第1の実施形態の表定義文の一例と、ディクショナリを生成する手順を示す図である。
【図3】本発明の第1の実施形態のデータベース管理システムが表を定義する処理の手順を示す図である。
【図4】本発明の第1の実施形態のデータベース管理システムが表の定義を変更する処理の手順を示す図である。
【図5A】本発明の第1の実施形態の本発明の第1の実施形態の主にSQL構文解析処理の手順を示す図である。
【図5B】本発明の第1の実施形態の本発明の第1の実施形態のデータの取得処理及び返却処理の手順を示す図である。
【図6】本発明の第1の実施形態の書籍検索システムの動作を説明する図である。
【図7A】本発明の第2の実施形態の個人情報を格納した表のデータの一例を示す図である。
【図7B】本発明の第2の実施形態の個人情報を格納した表のディクショナリの一例を示す図である。
【符号の説明】
【0097】
100 データベース管理装置
110 CPU
115 メモリ
120 ユーザアプリケーション(UAP)
130 データベース管理システム
140 オペレーティングシステム
150 端末
160、170 ハードディスク装置

【特許請求の範囲】
【請求項1】
プロセッサと、前記プロセッサに接続されるメモリと、データベースが格納される記憶装置とを備えるデータベース管理装置において、前記データベースに格納されるデータに含まれる機密情報に対するアクセスを管理するデータベース管理方法であって、
前記メモリは、前記データベースに対するアクセス要求を受け付けるデータベース管理システムを記憶し、
前記記憶装置は、前記データベースの定義情報であるディクショナリを格納し、
前記ディクショナリは、前記データが格納される表を構成する列の属性を含み、
前記列の属性は、当該列に格納されるデータが機密情報であるか否かを示すための機密識別属性を含み、
前記プロセッサは、前記データベース管理システムを実行することによって、
前記データベースに格納されたデータの取得要求を受け付け、
前記受け付けられたデータの取得要求を解析し、
前記要求されたデータが格納される列の機密識別属性を参照し、前記要求されたデータが機密情報であるか否かを判定し、
前記要求されたデータが格納される列に機密情報が含まれる場合には、前記列の射影を禁止することを特徴とするデータベース管理方法。
【請求項2】
前記プロセッサは、前記列の属性の変更を受け付けた場合には、前記列の属性の変更が前記機密情報属性の変更であるか否かを判定し、前記受け付けた属性の変更が機密情報属性の変更である場合には、前記列の属性を変更しないことを特徴とする請求項1に記載のデータベース管理方法。
【請求項3】
前記プロセッサは、前記機密情報格納列に格納された値を比較する条件を含むデータの取得要求を受け付けることを特徴とする請求項1に記載のデータベース管理方法。
【請求項4】
前記プロセッサは、
前記受け付けられたデータの取得要求に、前記機密情報格納列に格納された値を比較する条件が含まれるか否かを判定し、
前記機密情報格納列に格納された値を比較する条件が、前記受け付けられたデータの取得要求に含まれる場合には、前記機密情報格納列に格納された値が、前記受け付けられたデータの取得要求によって指定された値と直接比較されるか否かを判定し、
前記機密情報格納列に格納された値が、前記受け付けられたデータの取得要求によって指定された値と直接比較される場合には、前記受け付けられたデータの取得要求に基づいてデータを取得しないことを特徴とする請求項3に記載のデータベース管理方法。
【請求項5】
前記プロセッサは、
前記受け付けられたデータの取得要求に、前記機密情報格納列に格納された値を比較する条件が含まれるか否かを判定し、
前記機密情報格納列に格納された値を比較する条件が、前記受け付けられたデータの取得要求に含まれる場合には、前記機密情報格納列に格納された値が、前記機密情報格納列に格納された値を抽出する問合せを実行することによって得られる値と比較されるか否かを判定し、
前記機密情報格納列に格納された値が、前記機密情報格納列に格納された値を抽出する問合せを実行することによって得られる値と比較される場合には、前記受け付けられたデータの取得要求に基づいてデータを取得することを特徴とする請求項3に記載のデータベース管理方法。
【請求項6】
データベースに格納されるデータに含まれる機密情報に対するアクセスを管理するデータベース管理装置であって、
プロセッサと、前記プロセッサに接続されるメモリと、前記データベースが格納される記憶装置とを備え、
前記メモリは、前記データベースに対するアクセス要求を受け付けるデータベース管理システムを記憶し、
前記記憶装置は、前記データベースの定義情報であるディクショナリを格納し、
前記ディクショナリは、前記データが格納される表を構成する列の属性を含み、
前記列の属性は、当該列に格納されるデータが機密情報であるか否かを示すための機密識別属性を含み、
前記プロセッサは、
前記データベースに格納されたデータの取得要求を受け付け、
前記受け付けられたデータの取得要求を解析し、
前記要求されたデータが格納される列の機密識別属性を参照し、前記要求されたデータが機密情報であるか否かを判定し、
前記要求されたデータが格納される列に機密情報が含まれる場合には、前記列の射影を禁止することを特徴とするデータベース管理装置。
【請求項7】
前記メモリは、前記データベースにアクセスするユーザアプリケーションプログラムをさらに記憶し、
前記プロセッサは、前記ユーザアプリケーションプログラムを実行することによって、商品販売業務処理を実行し、
前記データベースは、前記商品販売業務において販売される商品の情報と、前記商品の特性及び他の商品との関連性に基づいて設定されるジャンルコードと、を格納し、
前記ジャンルコードは、機密情報として格納され、
前記プロセッサは、前記商品の購入指示を受け付けた場合には、前記ジャンルコードに基づいて、前記購入された商品と関連性の高い商品を検索することを特徴とする請求項6に記載のデータベース管理装置。
【請求項8】
前記メモリは、前記データベースにアクセスするユーザアプリケーションプログラムをさらに記憶し、
前記プロセッサは、前記ユーザアプリケーションプログラムを実行することによって、複数の会員のコミュニケーションを図るコミュニケーションシステムを稼働させ、
前記データベースは、前記コミュニケーションシステムの会員の個人情報を格納し、
前記会員の個人情報は、機密情報として格納され、
前記プロセッサは、所定の条件を満たす会員の検索要求を受け付け、前記個人情報に基づいて、所定の条件を満たす会員を検索することを特徴とする請求項6に記載のデータベース管理装置。
【請求項9】
データベースに格納された機密情報に対するアクセスを管理するプログラムであって、
前記データベースに格納されたデータの取得要求を受け付ける手順と、
前記受け付けられたデータの取得要求を解析する手順と、
前記要求されたデータが格納される列の属性に含まれ、格納されたデータが機密情報であるか否かを示すための機密識別属性を参照し、前記要求されたデータが機密情報であるか否かを判定する手順と、
前記要求されたデータが格納される列に機密情報が含まれる場合には、前記列の取得を禁止する手順と、を計算機に実行させることを特徴とするデータベース管理プログラム。
【請求項10】
プロセッサと、前記プロセッサに接続されるメモリと、データベースが格納される記憶装置とを備えるデータベース管理装置において、前記データベースに格納されるデータに含まれる機密情報に対するアクセスを管理するデータベース管理方法であって、
前記メモリは、前記データベースに対するアクセス要求を受け付けるデータベース管理システムを記憶し、
前記記憶装置は、前記データベースの定義情報であるディクショナリを格納し、
前記ディクショナリは、前記データが格納される表を構成する列の属性を含み、
前記列の属性は、当該列に格納されるデータが機密情報であるか否かを示すための機密識別属性を含み、
前記プロセッサは、前記データベース管理システムを実行することによって、
前記データベースに格納されたデータの取得要求を受け付け、
前記受け付けられたデータの取得要求を解析し、
前記要求されたデータが格納される列の機密識別属性を参照し、前記要求されたデータが機密情報であるか否かを判定し、
前記要求されたデータが格納される列に機密情報が含まれる場合には、前記列に格納されたデータの取得を禁止することを特徴とするデータベース管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate


【公開番号】特開2008−134936(P2008−134936A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2006−322027(P2006−322027)
【出願日】平成18年11月29日(2006.11.29)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】