(57)【要約】【課題】  顧客データベースにアクセスする際の、アクセス権限をユーザの属性および顧客データの属性の両面から設定でき、かつ、そのようなユーザのアクセス権限管理を容易に行なうことのできる顧客データベースのアクセス制御方法または装置を提供する。【解決手段】  ユーザの属性により分けられたユーザグループごとにアクセス権限を設定する代わりに、アクセス許可テーブルとアクセス禁止テーブルを用い、このアクセス許可および禁止テーブルは、ユーザIDをキーにしてレコードを作成することにより、ユーザごとのアクセス権限を決定する。さらに、アクセス許可テーブルとアクセス禁止テーブルは、データベースに記録されている様々なデータが特定の値の範囲に該当するかどうかにより、そのユーザがそのデータにアクセスできるかどうかを設定する。【選択図】      図４
2005293196.tif 000002
【特許請求の範囲】
【請求項１】
データベースにアクセスするユーザの情報を管理するユーザテーブルと、データベースに対してユーザのアクセス許可情報を管理するアクセス許可テーブルと、データベースに対してユーザのアクセス禁止情報を管理するアクセス禁止テーブルと、データベース管理者からの入力を受付けこれらのテーブルを管理するテーブル設定部と、
ユーザからのデータ検索要求を受付け、このデータ検索要求に対して、その検索条件に合致し、かつ、前記アクセス許可テーブルの指定によりそのユーザがアクセス許可されている範囲のデータであって、かつ、前記アクセス禁止テーブルの指定によりそのユーザがアクセスを禁じられている範囲のデータでないものだけを、前記データベースの検索結果としてユーザに結果を返すアクセス制御部と、
を備えたデータベースアクセス制御装置。
【請求項２】
請求項１に記載のアクセス制御装置において、前記アクセス許可テーブルは、データベースへのアクセスを許可された登録ユーザを識別する情報と、
前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドについて、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを許可するフィールドデータの値の範囲を指定する値、との対応を記録したものであるデータベースアクセス制御装置。
【請求項３】
請求項１に記載のアクセス制御装置において、前記アクセス禁止テーブルは、データベースへのアクセスを許可された登録ユーザを識別する情報と、
前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドについて、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを禁止するフィールドデータの値の範囲を指定する値と、の対応を記録したものであるデータベースアクセス制御装置。
【請求項４】
顧客情報データベースと、ユーザが使用するアクセス端末と、データベース管理者が使用する権限設定端末と、請求項１から請求項３のいずれか一項に記載のデータベースアクセス制御装置とを接続して構成される顧客情報データベースシステム。
【請求項５】
データベースシステムのデータベースアクセス制御方法であって、
データベースへのアクセスを許可された登録ユーザを識別する情報と、
前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドについて、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを許可するかまたは禁止するフィールドデータの値の範囲を指定する値、との対応を記録したアクセス条件設定テーブルを設けて、データベースユーザのアクセス権限を、このデータベースが扱うレコードの特定の属性の値によってそのレコードに記録されているデータに対する参照、更新、登録、削除を含む操作の種類を許可するかしないかとして定めることができることを特徴とするデータベースアクセス制御方法。
【請求項６】
コンピュータに組み込むことによりコンピュータを請求項１から請求項５のいずれか一項に記載のアクセス制御装置として動作させる一連の命令を記述したコンピュータプログラム。
【請求項７】
コンピュータに組み込むことによりコンピュータを請求項１から請求項５のいずれか一項に記載のアクセス制御装置として動作させる一連の命令を記述したコンピュータプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセス制御装置およびアクセス制御方法に関する。特に、顧客情報を管理するデータベースシステムに用いられるような、高いセキュリティを維持する必要のあるデータベースシステムにおいて、きめ細かいアクセス管理を行う必要があるシステムに有用な技術である。
【背景技術】
【０００２】
ＩＴ技術の発達により、様々な分野で、様々な情報がデジタルデータとして蓄積され、コンピュータの利用に供されている。顧客サービスの向上や販売促進のために、顧客の個人情報、購買（取引）履歴情報などを記録管理する顧客情報データベースを構築し、ネットワークを介して多数のクライアント装置からこのデータベースに記録されている顧客情報にアクセスできるようなシステムを活用している企業も珍しくない。このような顧客情報データベースシステムは、個人情報を扱う典型的な情報システムであって、セキュリティの維持が特に求められるが、外部に対するセキュリティだけではなく、インサイダー（企業内部の者）に対するセキュリティも重要である。後者を一定水準に確保するために、データベースシステムの重要な機能の一つとして、アクセス権限の管理機能がある。
【０００３】
ここでアクセス権限とは、データベースを構成し、アクセスの対象となる各レコードに対し、レコードに記録されているデータの読み出し、書き換え、新規登録、削除をそのユーザが認められているかどうかということ、あるいはそれを定めた情報のことである。
【０００４】
このようなアクセス権限の管理機能は、ユーザごとに効率的にかつ柔軟に管理できることが望ましい。ここで「ユーザ」とは一般に、データベースにアクセス可能なユーザの意味であるが、顧客情報データベースシステムの場合には、顧客情報データベースを管理する事業者（企業）の役職員、従業員、またはアルバイト等それに準じる者の意味となる。特許文献１には、アクセス権限の管理機能をユーザごとに効率的にかつ柔軟に管理できる仕組みを設けたデータ管理装置あるいはデータベースシステムが開示されている。
【特許文献１】特開２００３−３００２９号公報（図１−４）
【０００５】
顧客情報データベースシステムの場合においては、例えば、ユーザの属性（所属・役職・業務内容など）により、データベース上のデータへのアクセス制御を行う場合、特許文献１に記載のデータ管理装置を適用するならば、ユーザの属性ごとにグループを構成し、グループごとにアクセス権限を設け、グループに所属するユーザのデータベースへのアクセス制御を行う方法をとることになる。
【０００６】
図１にそのような従来技術のデータベースシステム１の構成を示す。データベースシステム１は、特許文献１に記載のシステムであって、顧客情報データベース２０、アクセス制御装置１０、ユーザが使用するアクセス端末３０、データベース管理者が使用する権限設定端末４０により構成される。
【０００７】
アクセス制御装置１０は、ユーザ情報と所属グループ情報を管理するユーザテーブル１２、グループごとのアクセス権限を管理するグループ権限テーブル１３、両テーブルを管理するテーブル設定部１４、ユーザからのデータ要求に対してアクセス権限を考慮してデータベースを検索し結果を返すアクセス制御部１１で構成される。アクセス制御装置１０は、例えば、サーバータイプのコンピュータで構成する。ユーザテーブル１２、グループ権限テーブル１３は、そのようなサーバーコンピュータに内蔵される記憶装置上に構成される。なお、データベースシステム１におけるユーザーテーブル１２およびグループ権限テーブル１３の一例は、特許文献１の図２および図３に示されている。アクセス制御部１１およびテーブル設定部１４は、サーバコンピュータ上で動作するアプリケーションプログラムである。アクセス制御部１１は、ユーザテーブル１２、グループ権限テーブル１３を参照し、顧客情報データベース２０に対して実際にＳＱＬコマンドを発行する。
【０００８】
今仮に、図２のような、顧客テーブル２１と取引状況テーブル２２により顧客データを管理する顧客情報データベース２０を想定する。データベースにアクセスするユーザのユーザテーブル１２、グループ権限テーブル１３は例えば、図３のようになる。ユーザにはユーザを一意に決定付けるユーザIDが付与され、各グループにはグループを一意に決定付けるグループIDが付与される。ユーザは必ずいずれかのグループに所属することとし、ユーザテーブルのレコードには所属するグループのグループIDが登録される。例えば、図３のユーザ9003は、ユーザーテーブル１２によれば、グループIDが「Ｂ」なので、グループ権限テーブル１３のグループID「Ｂ」の記述により、顧客情報データベースに登録されたデータのうち、会社所在地が神奈川にある顧客の情報のみアクセスすることができる。
【０００９】
次に、図１に基づき従来技術のデータベースシステム１処理動作について簡単に解説する。
【００１０】
＜アクセス制御部＞ユーザは、アクセス端末３０から自分のユーザIDおよびアクセスしたい情報の検索条件を入力する。アクセス制御部１１は、ユーザIDを基にユーザテーブル１２からユーザの所属グループIDを検索し、グループIDを基にグループ権限テーブル１３に指定されたアクセス権限を取得し、ユーザが入力した検索条件にさらにアクセス権限に合致した範囲内を表す検索条件を加えた検索条件で顧客情報データベース２０に対してＳＱＬコマンドを発行する。従って、結局、ユーザが入力した検索条件でヒットしたデータのうち、アクセス権限を与えられているデータのみがアクセス端末３０に表示される。
【００１１】
＜テーブル設定部＞テーブル設定部１４は、権限設定者が権限設定端末４０から操作し、ユーザテーブル１２に対するユーザ追加・削除・所属グループID変更を含むユーザ情報変更と、グループ権限テーブル１３に対するアクセス権限グループの追加・削除・変更と、権限情報の追加・削除・変更を行なう。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
製品メーカーや流通業者、印刷会社等が商品カタログ用のデータを蓄積する場合などの一般的なデータベースシステムの場合には、ユーザーの属性（その製品の購買者、材料仕入れ部門担当者、製造部門担当者、販売部門担当者など）により蓄積データに対するアクセス権限を定めればセキュリティを確保するという目的はおおむね達成される。したがって、ユーザのグループを定義し、このグループごとにアクセス権限を設定するというデータベースシステム１のアクセス権限管理の仕方で、このようなデータベースシステムに対するデータベース管理上の要求仕様は満足される。あるいは、特許文献１の図４に記載されているように、データベースに含まれるデータの種別ごとにそれらのデータに対する許可される操作の種類を定めることとしてアクセス権限を設定することで要求仕様は満足される。
【００１３】
しかしながら、顧客氏名・住所情報などの個人情報を扱う顧客情報データベースへのアクセス制御においては、ユーザ（この場合企業の内部者である）のグループ毎のアクセス権限設定や、データの種別ごとにそれらのデータに対する許可される操作の種類を定めるという権限設定では不十分である場合がある。電話番号などの個人情報は、いったん漏洩するとその個人に著しい不利益を及ぼす場合があるため、よりきめ細かいアクセス制限を必要とする場合があるからである。
【００１４】
しかし、データベースへのアクセス制御をユーザのグループごとに行う方法では、ユーザに対し細かく柔軟なアクセス制御を行おうとすると、所属ユーザが少人数のグループが多数作成されるため、グループ数が増え、アクセス制御およびグループ権限設定変更などの管理負荷が増大するという問題がある。
【００１５】
また、グループごとのアクセス制御方式の潜在的な問題として、
１）ユーザおよびグループ情報の追加変更が行われる際、ユーザテーブル１２とグループ  権限テーブル１３の二箇所の修正が必要であること、
２）権限設定処理中にユーザが意思決定を行う必要があり権限設定処理が完全に自動化で  きないこと
の２点が別の問題としてある。２）の処理の自動化を妨げている理由は、ユーザおよびグループ情報の追加変更において、ユーザに付加したいアクセス権限と全く同じ権限を持つグループが既に存在するかチェックし、存在する場合は既存グループを利用するか、新規にグループを作成するかなどの判断をユーザが行わなければならないためである。また、このようなチェックをしない場合は、同じアクセス権限を持つグループが複数出現しグループ権限テーブルが冗長になる問題がある。
【００１６】
本発明は、このような従来技術の問題点を考慮して発明されたものであって、
顧客情報データベースにアクセスする際の、アクセス権限をユーザの属性および顧客データの属性の両面から設定でき、かつ、そのようなユーザのアクセス権限管理を容易に行なうことのできる顧客情報データベースのアクセス制御装置またはアクセス制御方法を提供することを課題とする。
【課題を解決するための手段】
【００１７】
本発明では、ユーザをグループに分けグループごとにアクセス権限を管理する手法ではなく、各ユーザに対して個別にアクセス権限を付与する手法でアクセス権限の設定・管理を行う。グループ権限テーブルの代わりに、アクセス許可テーブルとアクセス禁止テーブルを用い、このアクセス許可および禁止テーブルは、例えば、ユーザIDをキーにしてレコードを作成することにより、ユーザごとのアクセス権限を決定する。さらに、アクセス許可テーブルとアクセス禁止テーブルは、データベースに記録されている様々なデータが特定の値の範囲に該当するかどうかにより、そのユーザがそのデータにアクセスできるかどうかを設定できるようにする。
【００１８】
すなわち上記課題を解決する本願の第１の発明は、
データベースにアクセスするユーザの情報を管理するユーザテーブルと、データベースに対してユーザのアクセス許可情報を管理するアクセス許可テーブルと、データベースに対してユーザのアクセス禁止情報を管理するアクセス禁止テーブルと、データベース管理者からの入力を受付けこれらのテーブルを管理するテーブル設定部と、
ユーザからのデータ検索要求を受付け、このデータ検索要求に対して、その検索条件に合致し、かつ、前記アクセス許可テーブルの指定によりそのユーザがアクセス許可されている範囲のデータであって、かつ、前記アクセス禁止テーブルの指定によりそのユーザがアクセスを禁じられている範囲のデータでないものだけを、前記データベースの検索結果としてユーザに結果を返すアクセス制御部と、を備えたデータベースアクセス制御装置である。
【００１９】
ここで、前記データベースアクセス制御装置において、前記アクセス許可テーブルは、前記データベースにアクセスできる登録ユーザを識別する情報と、前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドをフィールドとして含み、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを許可するフィールドデータの値の範囲を指定する値、との対応を記録したものである。
【００２０】
また、前記データベースアクセス制御装置において、前記アクセス禁止テーブルは、前記データベースにアクセスできる登録ユーザを識別する情報と、前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドをフィールドとして含み、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを禁止するフィールドデータの値の範囲を指定する値、との対応を記録したものである。
【００２１】
上記課題を解決する本願の第２の発明は、顧客情報データベースと、ユーザが使用するアクセス端末と、データベース管理者が使用する権限設定端末と、第１の発明に係るデータベースアクセス制御装置とを接続して構成される顧客情報データベースシステムである。
【００２２】
上記課題を解決する本願の第３の発明は、データベースシステムのデータベースアクセス制御方法であって、データベースへのアクセスを許可された登録ユーザを識別する情報と、
前記データベースを構成するいずれかのアクセス対象レコードの１つ以上の特定のフィールドについて、そのフィールドの値としてそのフィールドの観点で前記アクセス対象レコードへのアクセスを許可するかまたは禁止するフィールドデータの値の範囲を指定する値、との対応を記録したアクセス条件設定テーブルを設けて、データベースユーザのアクセス権限を、このデータベースが扱うレコードの特定の属性の値によってそのレコードに記録されているデータに対する参照、更新、登録、削除を含む操作の種類を許可するかしないかとして定めることを特徴とするデータベースアクセス制御方法である。
【００２３】
ここでアクセス条件設定テーブルとは、アクセス許可テーブルおよびアクセス禁止テーブルを総称したテーブルである。あるいは、フィールドデータの値の範囲を指定する値と、その値の指定する範囲がアクセス許可範囲なのか、アクセス禁止範囲なのかを表す符号とを対にして記録することで、１つのテーブルでアクセス許可、アクセス禁止の２テーブルの役割を兼ねるように構成してもよい。
【００２４】
第３の発明に係るデータベースを含むデータベースシステムのデータベースアクセス制御方法においては、前記データベースユーザのアクセス権限を、個々のユーザごとに定めてもよい。
【００２５】
上記課題を解決する本願の第４の発明は、コンピュータに組み込むことによりコンピュータを第１の発明に係るデータベースアクセス制御装置として動作させる一連の命令を記述したコンピュータプログラムである。
【００２６】
上記課題を解決する本願の第５の発明は、コンピュータに組み込むことによりコンピュータを第１の発明に係るデータベースアクセス制御装置として動作させる一連の命令を記述したコンピュータプログラムを記録したコンピュータ可読な記録媒体である。
【発明の効果】
【００２７】
ユーザごとにアクセス権限を管理することにより、ユーザをいくつかのグループに分け、グループごとに権限管理を行う従来方式に比べ、他ユーザや所属情報に影響されることなく自由に権限の付加・削除を行えるため、最適なユーザグループを探す必要がなく、権限設定処理が容易となり、権限管理負荷を削減することができる。また、ユーザテーブルとグループ権限テーブルの２つの主キーを用いていた従来のアクセス制御方法に比べ、アクセス権限を１つのキーで取得・変更・追加・削除することができ、アクセス制御および権限設定処理が単純化される。また、アクセス対象レコードの特定の属性データの値によってアクセス権限を制御できるので、特に厳重に管理すべきデータへのアクセスをユーザ個別に設定できるので、インサイダーに対するセキュリティ水準を高度に保つことができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を用いて本発明の実施の形態を説明する。図４は本発明の一実施形態に係るデータベースシステム２の全体構成図である。データベースシステム２は、顧客情報データベース２０、アクセス制御装置１０、ユーザが使用するアクセス端末３０、データベース管理者が使用する権限設定端末４０により構成される。この基本構成は、従来技術で説明したデータベースシステム１と同じである。アクセス制御装置１０は通常サーバーコンピュータで実現する。このアクセス制御装置１０は、顧客情報データベース２０にアクセスするユーザのユーザ情報を管理するユーザテーブル１２と、顧客情報データベース２０に対しユーザごとのアクセス許可情報を管理するアクセス許可テーブル１５と、顧客情報データベース２０に対しユーザごとのアクセス禁止情報を管理するアクセス禁止テーブル１６と、これらのテーブルを管理するテーブル設定部１４と、ユーザからのデータ検索要求に対してアクセス権限を考慮してデータベースを検索し結果を返すアクセス制御部１１で構成される。
【００２９】
権限設定者は権限設定端末４０を使用し、テーブル設定部１４を経由してユーザテーブル１２、アクセス許可テーブル１５、アクセス禁止テーブル１６のレコード追加・更新・削除を行い、ユーザとユーザに与えられたアクセス権限を設定し管理する。
【００３０】
顧客情報データベース２０を閲覧するユーザはアクセス端末３０からアクセス制御部１１へデータ要求を行い、アクセス権限に応じて閲覧可能なデータを閲覧できる。また、アクセス権限に応じて、顧客情報データベース２０のデータ更新や削除・追加なども行うことができる。
【００３１】
ここで、後の説明を理解しやすくするために、顧客情報データベース２０は図５に示すように、顧客を一意に決定する顧客IDと個人情報・企業情報を含む顧客の属性情報などを管理する顧客テーブル２１０と、取引情報や明細情報を管理する取引情報テーブル２２０、また各企業宛てに電子ドキュメントなどを配信する際の配信履歴を管理する配信文書管理テーブル２３０などで構成されるものとする。顧客テーブル２１０と、取引情報テーブル２２０、配信文書管理テーブル２３０などは親子関係にあり、顧客IDなどをキーにしてリンク付けされているものとする。（なお、一般の様々な顧客情報データベースにおいては、顧客テーブル２１０のみで、子にあたるテーブルがない顧客情報データベースも存在する。）
【００３２】
また、以下の実施形態の説明では、ユーザテーブル１２、アクセス許可テーブル１５、アクセス禁止テーブル１６は１つのデータベースとして構成されたものとして説明する。以下の説明では、ユーザテーブル１２、アクセス許可テーブル１５、アクセス禁止テーブル１６を実現するデータベースを「ユーザ管理データベース」と呼ぶことにする。
図６は、ユーザテーブル１２、アクセス許可テーブル１５、アクセス禁止テーブル１６のスキーマ例を示す図である。ユーザテーブル１２には、ユーザを一意に識別するためのユーザIDの他、ユーザ氏名や所属部署・役職などの属性情報が登録される。アクセス許可テーブル１５には、ユーザIDと各ユーザがアクセス可能な顧客情報の条件を示したアクセス許可情報が登録される。アクセス許可情報は、フィールド名に顧客情報データベースのフィールド名を指定し、フィールドの値にアクセス可能な条件を指定する。アクセス許可条件の意味するところはフィールドのデータ型により異なる。当該フィールドが文字列型であれば実データとアクセス許可条件として指定された値の部分一致比較がなされ、一致とされる場合、そのデータへのアクセスが許可される。当該フィールドが数値型であればアクセス許可条件として指定された値はアクセス可能な数値範囲の下限値を意味する。日付型であればアクセス許可条件として指定された値はアクセス許可期間の開始値を意味する。
【００３３】
アクセス禁止テーブル１６は、ユーザIDと各ユーザに対するアクセス禁止条件を示したアクセス禁止情報が登録される。アクセス禁止情報は、フィールド名に顧客情報データベースのフィールド名を指定し、フィールドの値にアクセス禁止条件を指定する。アクセス禁止条件はフィールドのデータ型により異なり、当該フィールドが文字列型であれば実データとアクセス禁止条件として指定された値の部分一致比較がなされ、一致とされる場合、そのデータへのアクセスが禁じられる。当該フィールドが数値型であればアクセス禁止条件として指定された値はアクセスを禁じる数値範囲の下限値を意味する。日付型であればアクセス禁止条件として指定された値はアクセス禁止期間の開始値を意味する。また、両テーブルとも値が空の場合はそのフィールドに対するアクセス許可・禁止条件は存在しないものとする。
【００３４】
次に、アクセス制御部１１の動作およびアクセス許可・禁止条件の制御について解説する。例えば、図６のユーザ9001のアクセス許可条件は、「所在地」が「東京」の顧客となっており、また、アクセス禁止条件は、「平均取引金額」が「500,000円以上」の顧客となっている。ユーザは、アクセス許可条件を満足し、かつアクセス禁止条件に該当しない顧客情報にアクセスできる。したがって、ユーザ9001は顧客IDが0002、0003、0006の顧客の情報のみアクセスできる。顧客IDが0001、0004、および0005は平均取引金額が500,000円以上であるのでアクセスできない。
【００３５】
次に、アクセス許可条件とアクセス禁止条件の両方が指定されている場合のアクセス制御について説明する。例えば、図中のユーザ9002のアクセス許可条件は「所在地」が「東京」の顧客であり、また、アクセス禁止条件は「文書種別」が「契約書」となっている。この場合、ユーザ9002は、顧客IDが0001〜0006の顧客の顧客テーブル２１０、取引テーブル２２０の情報にはアクセスできるが、配信文書管理テーブル２３０の個々のレコードのうちの文書種別が「契約書」となっているレコードについては、IDが0001〜0006の顧客に関するものであってもアクセスできない。
【００３６】
次に、アクセス制御部１１、テーブル設定部１４の動作を説明する。なお、アクセス制御装置１０を使用するために、ユーザID、パスワードなどを使った認証が考えられるが、ここでは認証の手順については、よく知られた手順を用いるだけなので特に記述しない。
【００３７】
図７はアクセス制御部１１の動作の流れを説明するブロック図である。まず、ユーザは、自分のユーザIDおよび閲覧したい情報の検索条件を入力し、アクセス制御部に送信する（Ｓ１０）。すると、アクセス制御部１１は、アクセス端末３０から送りつけられたユーザからのデータ要求を受付ける（Ｓ１２）。次に、アクセス制御部１１は、受付けたユーザIDをキーとしてアクセス許可テーブル１５およびアクセス禁止テーブル１６を参照しユーザのアクセス権限を取得する（Ｓ１４）。アクセス制御部１１は、ステップＳ１２で受付けた要求データの検索条件に従って、顧客情報データベース２０を検索し、抽出したデータからさらにステップＳ１４で取得したユーザのアクセス権限に該当するデータ、すなわち、アクセス許可テーブルでアクセスを許可されたデータでありかつアクセス禁止テーブルによりアクセス禁止データに該当していないデータ、を選択する（Ｓ１６）。アクセス制御部１１は、最終選択結果を、受付けた検索要求に対する検索結果としてアクセス端末３０に表示する。また、検索条件に該当するデータがない場合、および、最終選択結果には該当データがない場合はその旨をアクセス端末に表示する（Ｓ１８）。
【００３８】
ステップＳ１６にて、アクセス制御部１１から顧客情報データベース２０に、発行されるＳＱＬ文は、次のようなものとなる。
Slect  ＊ from 検索対象テーブル
where ユーザが入力する検索条件
and ユーザのアクセス許可条件
and （ユーザのアクセス禁止条件）の論理否定
または、上記「ユーザが入力する検索条件」を記述する必要がない場合は下記となる。
Slect  ＊ from 検索対象テーブル
where ユーザのアクセス許可条件
and （ユーザのアクセス禁止条件）の論理否定
【００３９】
例えば、図６のユーザ9001が、取引状況テーブルの、取引年フィールド値が2001である全レコードを取得する際は、
Slect  ＊ from 取引状況テーブル
where 取引状況テーブル.取引年='2001'
and 顧客テーブル.所在地='東京'
and 顧客テーブル.平均取引金額<500000 
というＳＱＬ文を発行する。
【００４０】
また、例えば、図６のユーザ9002が、配信文書管理テーブルの全レコードを取得する際は、
Slect  ＊ from 配信文書管理テーブル
where 顧客テーブル.所在地='東京'
and 配信文書管理テーブル.文書種別<>'契約書'
というＳＱＬ文を発行する。尚<>はnot equal  の意味である。
【００４１】
次にテーブル設定部１４について説明する。テーブル設定部１４は、ユーザテーブル１２に対してユーザの追加・削除・属性情報の変更と、アクセス許可テーブル１５・アクセス禁止テーブル１６に対してアクセス権限の追加・変更・削除を行う。この処理は権限設定者が権限設定端末４０から行う。特にグループによるアクセス権限管理がないため、権限設定者はユーザの所属グループや既存グループにどのようなアクセス権限が割り当てられているかなどを考慮する必要はない。従って、テーブル設定の処理中にユーザによる意思決定が必要であった従来方法と違い、権限設定処理がほぼ自動化されユーザの負荷を軽減できる。
【００４２】
テーブル設定部の動作として、ユーザ追加・ユーザのアクセス権限変更・複数ユーザのアクセス権限一括変更を例にとり、それぞれ処理フローを図８から図１０に示す。また参考として、同じ動作を従来方式で行った場合の処理フローの例を図１５から図１７に示す。
【００４３】
図８に沿ってユーザ追加の処理を説明する。権限設定者は、追加するユーザのユーザ情報とアクセス許可・禁止情報を権限設定端末４０より入力する（Ｓ２０）。テーブル設定部１４は、入力されたユーザ情報・アクセス許可・禁止情報を受付ける（Ｓ２２）。テーブル設定部１４は、受付けたデータの内容チェックを行い、データの不備やオペレーションミスがないかなどを確認する（Ｓ２４）。例えばアクセス制限のために指定されるフィールド（レコードの属性項目）の種類に対してデータの型や指定された値の範囲が適正かどうかなどを確認する。テーブル設定部１４は、ステップＳ２２において入力データが正しいと判断された場合、各テーブルにレコードを追加する（Ｓ２６）。
【００４４】
例として、図６のテーブルに新規ユーザ9003を追加する場合は、権限設定者はステップＳ２０において、権限設定端末40から、例えば、次のような情報を入力する。
ユーザテーブル        ユーザID：9003
姓：高橋
所属：社員
アクセス許可テーブル  ユーザID：9003
所在地：神奈川
アクセス禁止テーブル  ユーザID：9003
平均取引金額：500000
【００４５】
そうすると、テーブル設定部１４は、ステップＳ２６において、ユーザ管理データベースに対して次のような３つのＳＱＬ文を発行する。
Insert into ユーザテーブル (ユーザID,姓,所属) value ('9003','高橋','社員')
Insert into アクセス許可テーブル (ユーザID,所在地) value ('9003','神奈川')
Insert into アクセス禁止テーブル (ユーザID,平均取引金額,文書種別) 
value ('9003',500000,NULL)
【００４６】
図１５は、比較のため、図１に示した従来技術のデータベースシステム１の構成において、図８と同様のユーザ追加の処理を説明するフローチャートである。
【００４７】
図１５では、まず、権限設定者は、追加するユーザのユーザ情報とアクセス権限情報を権限設定端末４０より入力する（Ｓ３０）。テーブル設定部１４は、入力されたユーザ情報・アクセス権限情報を受付ける（Ｓ３２）。テーブル設定部１４は、受付けたデータの内容チェックを行い、データの不備やオペレーションミスがないかなどを確認する（Ｓ３４）。
この場合のアクセス権限情報とは、特許文献１の図４に記載されるような、素材データや書誌データあるいは訂正指示データなどのデータベースが扱うデータの種類ごとに、参照、書き換え、新規登録、削除が行えるかどうかといった観点から特徴付けられるものである。
次に、テーブル設定部１４は、特許文献１の図３に記載されるようなグループ権限テーブル１３を参照して、指定されたアクセス権限情報と同一のアクセス権限を持つ既存のユーザグループがあるかどうか検索する（Ｓ３６）。そのような既存グループが存在する場合は、そのグループをユーザに通知する。ない場合はその旨を通知する（Ｓ３８）。既存グループがある場合は、ユーザは、そのうちの一つのユーザグループを選択する（Ｓ４０）。そして、選択されたユーザグループの情報をユーザテーブルに更新するするとともにユーザグループの記録自体も更新する（Ｓ５２）。既存グループがない場合は、ユーザは、新規グループの登録要求を行なう（Ｓ４２）。テーブル設定部１４は、ユーザからの新規グループ登録要求を受け、グループ名の重複チェック、権限内容のチェックを行い（Ｓ４４，Ｓ４６）、問題なければ、新規グループ名を登録し、新規グループをグループ権限テーブルに追加登録する（Ｓ４８、Ｓ５０）。テーブル設定部１４は、新設されたユーザグループの情報をユーザテーブルに更新する（Ｓ５２）。
【００４８】
図８と図１５を比較すれば、データベースシステム２における処理のほうがユーザ追加処理を単純に行なえることがわかる。
【００４９】
次に、図９に沿ってユーザの権限を変更する処理を説明する。権限設定者は、変更するユーザのユーザIDと変更後の権限情報を権限設定端末４０より入力する（Ｓ６０）。テーブル設定部１４は、入力された変更対象ユーザID、アクセス許可・禁止情報を受付ける（Ｓ６２）。テーブル設定部１４は、受付けたデータの内容チェックを行い、データの不備やオペレーションミスがないかなどを確認する（Ｓ６４）。テーブル設定部１４は、ステップＳ６２において入力データが正しいと判断された場合、アクセス許可テーブル１５・アクセス禁止テーブル１６の該当レコードを変更する（Ｓ６６）。
【００５０】
例として、図６のテーブルにおいてユーザ9002のユーザ情報を更新する場合は、権限設定者はステップＳ６０において、権限設定端末４０から、ユーザID：9002を入力する。すると、
ユーザテーブル        ユーザID：9002
姓：鈴木
所属：社員
アクセス許可テーブル  ユーザID：9002
所在地：東京
アクセス禁止テーブル  ユーザID：9002
文書種別：契約書
が、権限設定端末４０に表示される。そこで、例えば、アクセス禁止条件に、平均取引金額500000円（以上）という条件を追加し、同時に、文書種別によるアクセス禁止条件を削除する場合は、ステップＳ６０にて、表示されたアクセス禁止テーブルの「文書種別：契約書」という表示を削除し、変わりに、「平均取引金額：500000」と入力する。この結果ステップＳ６６において、
Update アクセス禁止テーブル set 平均取引金額=500000, 文書種別=NULL 
where  ユーザID='9002'
というＳＱＬ文がテーブル設定部１４よりユーザ管理データベースに対して発行される。
【００５１】
図１６は、比較のため、図１に示した従来技術のデータベースシステム１の構成において、図９と同様のユーザの権限を変更する処理を説明するフローチャートである。
【００５２】
まず、権限設定者は、変更するユーザのユーザIDと変更後の権限情報を権限設定端末４０より入力する（Ｓ７０）。テーブル設定部１４は、入力されたユーザID・アクセス権限情報を受付ける（Ｓ７２）。次に、テーブル設定部１４は、変更指定されたアクセス権限情報と同一のアクセス権限を持つ既存のユーザグループがあるかどうかグループ権限テーブル１３を検索する（Ｓ７４）。そのような既存グループが存在する場合は、そのグループをユーザに通知する。ない場合はその旨を通知する（Ｓ７６）。既存グループがある場合は、ユーザは、そのうちの一つのユーザグループを選択する（Ｓ７８）。そして、選択されたユーザグループの情報をユーザテーブルに更新するとともにユーザグループの記録自体も更新する（Ｓ９０）。既存グループがない場合は、ユーザは、新規グループの登録要求を行なう（Ｓ８０）。テーブル設定部１４は、ユーザからの新規グループ登録要求を受け、グループ名の重複チェック、権限内容のチェックを行い（Ｓ８２，Ｓ８４）、問題なければ、新規グループ名を登録し（Ｓ８６）、新規グループをグループ権限テーブルに追加登録する（Ｓ８８）。テーブル設定部１４は、新設されたユーザグループの情報をユーザテーブルに更新する（Ｓ９０）。
【００５３】
図９と図１６を比較すれば、データベースシステム２における処理のほうがユーザ権限変更処理を単純に行なえることがわかる。
【００５４】
従来方式（データベースシステム１）のグループ単位によるアクセス権限管理を行なう利点は、一度に複数ユーザの権限を変更できることである。データベースシステム２では、グループによるアクセス権限管理を行なわないが、にもかかわらず、一度に複数のユーザの権限変更を次のように行なうことができる。
【００５５】
図１０に沿って複数ユーザの権限を一括変更する処理を説明する。権限設定者は、権限設定端末４０にて変更対象ユーザをユーザIDや属性情報により検索する（Ｓ１００）。テーブル設定部１４は、入力されたユーザの検索条件を受付ける（Ｓ１０２）。テーブル設定部１４は、ユーザテーブル１２を検索し該当ユーザを取得し、権限設定端末４０に該当ユーザ一覧を表示する（Ｓ１０４）。権限設定者は、権限設定端末４０にて変更対象ユーザを選択し、アクセス権限の変更指示を入力する（Ｓ１０６）。テーブル設定部１４は、入力された変更対象ユーザとアクセス権限の変更指示を受付ける（Ｓ１０８）。テーブル設定部１４は、受付けたデータの内容チェックを行い、データの不備やオペレーションミスがないかなどを確認する（Ｓ１１０）。テーブル設定部１４は、ステップＳ１１０において入力データが正しいと判断された場合、アクセス許可テーブル１５・アクセス禁止テーブル１６の該当レコードを変更する（Ｓ１１２）。
【００５６】
以上、データベースシステム２におけるユーザ追加処理、ユーザ権限変更処理をデータベースシステム１と比較しながら説明した。以下の実施例では、本発明に係るアクセス制御装置１０を利用することで、ユーザごとに柔軟な権限設定が設定が可能となることを顧客情報データベース２０およびアクセス許可テーブル１５・アクセス禁止テーブル１６のスキーマを例にとり説明する。
【実施例１】
【００５７】
＜カスタマセンターでの利用例＞図５に示す顧客情報データベース２０へのカスタマセンターにおけるアクセス権限を考える。カスタマセンターでは複数のオペレータ（以降ユーザと記述）がおり、顧客企業の所在地により担当が分かれているものとする。また、ユーザの役職（社員／アルバイト）により顧客企業の情報へのアクセスが制限されるものとする。このような場合のアクセス許可テーブル１５・アクセス禁止テーブル１６を図１１に示す。例えば、ユーザ9001は顧客テーブルの「所在地」フィールドの値が「東京」の全顧客の情報にアクセスできる。また、ユーザ9004の場合は、「所在地」フィールドが「東京」の顧客で、かつ、取引状況テーブルの「取引金額」フィールドの値が「2,000,000円未満」の顧客の情報にアクセスできる。
【実施例２】
【００５８】
＜営業所での利用例＞図５に示す顧客情報データベース２０への企業間取引を扱う営業所での利用におけるアクセス権限を考える。図１２は、取引先企業との取引金額により営業担当者が変わるような利用方法におけるアクセス許可・禁止テーブルのスキーマ例を示す図である。
【００５９】
図１２では、ユーザごとにアクセス権限可能な領域を決めており、例えば、ユーザ9001〜9003は「取引金額」が「5,000,000円以上」の顧客企業の情報にアクセスでき、ユーザ9004、9005はアクセス禁止テーブル１６の取引金額の設定により「取引金額」が「5,000,000円以上」の顧客企業の情報にアクセスできない。また、この営業所に勤めるアルバイト（ユーザID 9006〜9007）は、アクセス禁止テーブル１６の取引金額の設定により「取引金額」が「2,000,000円以上」の顧客企業の情報にはアクセスできない。また、「取引金額」が「2,000,000円未満」の顧客企業の情報にはアクセスできるが、それらの顧客情報の中でも「文書種別」が「契約書」になっている情報についてはアクセスできない。
【００６０】
このように、ユーザのスキルや役職に合わせ、顧客情報データベースへのアクセス権限を細かく制御できる。
【実施例３】
【００６１】
＜代理店や営業所での利用例＞図１４に示す顧客情報データベース２０への保険などの代理店や営業所での利用におけるアクセス権限を考える。代理店や営業所では営業担当者が各自担当する顧客が決まっているため、顧客テーブル２０の情報に担当営業IDが付加されている。担当営業IDは図１３に示すユーザIDに対応しているものとし、顧客に対し必ず１人の担当営業がつくことを表す。また、担当営業は複数の顧客を担当する。図１３のユーザテーブルでは、代理店や営業所が階層的な役職で構成されることがわかる。
【００６２】
このように組織が階層的になっている場合、一般社員である営業担当者は各自の担当顧客の情報のみアクセスできればよいが、営業担当者の上長は、部下となる営業担当者の情報にアクセスできる必要がある。階層構造が深くなっても、このアクセスの仕組は変わらない。
【００６３】
例えば、営業所が関東、東北などの地区ごとにあり、地区内にある各都道府県の顧客を営業所の各部が担当する構成になっていたとする。役職が一般社員である営業担当者9001は、顧客テーブルの「担当営業ID」が「9001」である顧客の情報のみ閲覧できる。また、営業担当者9001、9002の上長である課長9701は自分の部下の情報を閲覧する必要があるため、アクセス許可テーブル１５の内容は図１３に示すように、「ユーザＩＤ」9701に対して「担当営業ＩＤ」が9001のレコードと9002のレコードの２つを記録する。
【００６４】
さらに各部の部長は自部門が担当するすべての顧客の情報を閲覧可能とするために、顧客情報テーブルの所在地フィールドが、自部門が担当する都道府県名となっている。ユーザ9901については、所在地フィールドに東京と記したレコードと、神奈川と記したレコードが記録されている。このことによりユーザ9901である「高橋所長」は東京および神奈川の営業所が担当するすべての顧客の情報を閲覧可能である。
【００６５】
以上、データベースシステム２を説明することにより本発明に係るアクセス制御装置を詳細に述べた。また、アクセス制御装置の説明を通して、本発明に係るアクセス制御方法も述べられた。データベースシステム２のアクセス許可テーブル１５およびアクセス禁止テーブル１６の説明において、アクセス許可（禁止）情報は、「フィールド名に顧客情報データベースのフィールド名を指定し、フィールドの値にアクセス可能な（アクセスを禁じる）条件を指定する。当該フィールドが数値型であればアクセス許可（禁止）条件として指定された値はアクセス可能な（アクセスを禁じる）数値範囲の下限値を意味する。」と説明したが、本発明の趣旨は、このようにテーブル１５および１６を構成し利用することに限定するものではない。本発明のアイデアは、データベースに記録されるデータの値自体によってもユーザのアクセス権限を管理できるようにしようというものであるから、例えば、図６のアクセス禁止テーブルの平均取引額に設定する値は、上限値と下限値の対を設定するようにして、この二つの値で定まる範囲をアクセス禁止として扱うようにアクセス制御部１１を構成してもよい。
【００６６】
また、アクセス許可テーブルとアクセス禁止テーブルは、いずれか１つだけであってもよい。また、フィールドデータの値の範囲を指定する値と、その値の指定する範囲がアクセス許可範囲なのか、アクセス禁止範囲なのかを表す符号とを対にして記録することで、１つのテーブルでアクセス許可、アクセス禁止の２テーブルの役割を兼ねるように構成してもよい。このような構成上の差異は、本発明の趣旨から逸脱するものではない。
【００６７】
また、あるユーザについてのアクセス許可条件およびアクセス禁止条件を、データベースシステム２で説明したように、ユーザIDを指定して個々のユーザ毎に定めても良いが、アクセス許可テーブルおよびアクセス禁止テーブルを、ユーザのグループごとに、アクセス対象レコードの特定のフィールドの値によってアクセス可能かどうかを規定するテーブルとして定義することもできる。このような定義に基づくデータベースシステムの構成においても、データベースに記録されているデータの値によって、そのデータを含むレコードにアクセスするユーザを制限できるという本発明の一つの特徴が実現される。
【図面の簡単な説明】
【００６８】
【図１】一般的な従来技術のデータベースシステム１の構成を示す図である。
【図２】顧客テーブル２１と取引状況テーブル２２により顧客データを管理する顧客情報データベース２０
【図３】ユーザテーブル１２、グループ権限テーブル１３のスキーマ例を示す図である。
【図４】本発明の一実施形態に係るデータベースシステム２の全体構成図である。
【図５】顧客データベース２０のスキーマ例を示す図である。
【図６】ユーザテーブル１２、アクセス許可テーブル１５、アクセス禁止テーブル１６のスキーマ例を示す図である。
【図７】アクセス制御部１１の動作の流れを説明するブロック図である。
【図８】ユーザ追加の処理を説明する図である。
【図９】ユーザの権限を変更する処理を説明する図である。
【図１０】複数ユーザの権限を一括変更する処理を説明する図である。
【図１１】実施例１におけるアクセス許可テーブル１５・アクセス禁止テーブル１６を説明する図である。
【図１２】実施例２におけるアクセス許可テーブル１５・アクセス禁止テーブル１６を説明する図である。
【図１３】実施例３におけるユーザテーブル、アクセス許可テーブルを説明する図である。
【図１４】実施例３における顧客情報データベース２０のスキーマを説明する図である。
【図１５】従来技術のデータベースシステム１の構成において、図８と同様のユーザ追加の処理を説明するフローチャートである。
【図１６】従来技術のデータベースシステム１の構成において、図９と同様のユーザの権限を変更する処理を説明するフローチャートである。
【符号の説明】
【００６９】
１    データベースシステム
２    データベースシステム
１０  アクセス制御装置
１１  アクセス制御部
１２  ユーザテーブル
１３  グループ権限テーブル
１４  テーブル設定部
１５  アクセス許可テーブル
１６  アクセス禁止テーブル
２０  顧客情報データベース
３０  アクセス端末
４０  権限設定端末
【図１】
2005293196.tif 000003
【図２】
2005293196.tif 000004
【図３】
2005293196.tif 000005
【図４】
2005293196.tif 000006
【図５】
2005293196.tif 000007
【図６】
2005293196.tif 000008
【図７】
2005293196.tif 000009
【図８】
2005293196.tif 000010
【図９】
2005293196.tif 000011
【図１０】
2005293196.tif 000012
【図１１】
2005293196.tif 000013
【図１２】
2005293196.tif 000014
【図１３】
2005293196.tif 000015
【図１４】
2005293196.tif 000016
【図１５】
2005293196.tif 000017
【図１６】
2005293196.tif 000018