(57)【要約】      （修正有）【課題】データベース内のデータへのアクセスを制御するための方法及び装置を提供する。【解決手段】データベースの少なくとも一部を形成して形成されたデータベース（３３）のデータの少なくともいくつかが保安タグと関係するようにし、使用者識別名とそれに関係する使用者タグとの記憶構造（３５）を形成し、使用者タグとそれに関係する保安タグとの記憶構造（３４）を形成し、使用者タグとそれに関係する保安タグとの記憶構造（３４）から該使用者識別名の使用者タグに適した保安タグを判断して該保安タグと関係して形成されたデータベース（３３）のデータへのアクセスを認可することにより、少なくともデータのサブセットに対して該使用者識別名をマップすることで成る。【選択図】図８
2006277756.tif 000002
【特許請求の範囲】
【請求項１】
使用者によるデータベースへのアクセスを制御するための方法であって、データベースの少なくとも一部を形成して該形成されたデータベースのデータの少なくともいくつかが保安タグと関係するようにし、使用者識別名とそれに関係する使用者タグとの記憶構造を形成し、該使用者タグとそれに関係する保安タグとの記憶構造を形成し、該使用者タグとそれに関係する保安タグとの該記憶構造から該使用者識別名の使用者タグに適した保安タグ（単数又は複数）を判断して該保安タグと関係して形成されたデータベースのデータへのアクセスを認可することにより、少なくともデータのサブセットに対して該使用者識別名をマップすることで成る方法。
【請求項２】
データベース内に入力されたデータは、データを入力した使用者の使用者識別名の使用者タグに適した保安タグと関係する請求項１記載の方法。
【請求項３】
データベースと記憶構造の両方又はどちらか一方がテーブルである請求項１または２記載の方法。
【請求項４】
使用者によるデータベースへのアクセスを制御するための方法であって、データのデータベースとそれに関係する保安タグを創製し、識別名とそれに関係する識別名タグとの第１の記憶構造を創製し、識別名タグとそれに関係する保安タグとの第２の記憶構造を創製し、該第１の記憶構造から関係する識別名タグを判断し、かつ該第２の記憶構造から該判断された識別名タグに適した少なくとも１つの保安タグを判断してデータベースからその保安タグに適したデータを選択することにより、該識別名の少なくとも１つに適したデータベースに対する概要（ビュー）を創製することから成る方法。
【請求項５】
データベースが電気通信網データベースである請求項１ないし４のいずれか１つに記載の方法。
【請求項６】
使用者によるデータベースへのアクセスを制御するための装置であって：データベースの少なくとも一部を、形成されたデータベースのデータの少なくともいくつかが保安タグと関係するように形成するための手段と；使用者識別名とそれに関係する使用者タグとの記憶構造を形成するための手段と；使用者タグとそれに関係する保安タグとの記憶構造を形成するための手段と；使用者タグとそれに関係する保安タグとの記憶構造から使用者識別名の使用者タグに適した保安タグ（単数又は複数）を判断して使用者が保安タグ（単数又は複数）に関係して形成したデータベース内のデータにアクセスすることを認可することにより、データの少なくとも１つのサブセットに対する使用者識別名をマップするための手段とから成る装置。
【請求項７】
データベース内に入力されたデータを、該データを入力した使用者の使用者識別名の使用者タグに適した保安タグと関係付けるための手段から成る請求項６記載の装置。
【請求項８】
請求項６又は７記載の装置を含む電気通信網を管理するための装置。
【請求項９】
請求項１ないし５のいずれか１つに記載の方法によりアクセスされるデータの組。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータベースへのアクセスを制御するための方法及び装置に関する。
【背景技術】
【０００２】
データベースシステムでは、多数の使用者（ユーザ）がシステムと対話をしてデータベースを利用することができるようにするのが普通である。このようなシステムはマルチ・ユーザシステムと呼ばれる。このようなシステムで問題が生ずるのはデータベースがある意味で敏感な情報もしくはデータを含む場合で、換言すれば、ある特定の使用者もしくは使用者の特定のクラス（級）の会員だけが情報もしくはデータを得られる場合である。このような場合、セキュリティ（保安）政策が実行されて、使用者のクラスに使用できるデータを制限するようにする。
【０００３】
複数の使用者を支えるデータベース管理システムの一例はＯＲＡＣＬＥ（登録商標）（Oracle社の登録商標）である。ＯＲＡＣＬＥはリレーショナル（関連付けされた）データベース管理システムである。リレーショナルデータベースでは唯１つの型式のデータ構造が存在し、これがデータの行と列の二次元構造であるテーブル（表）となっている。ストラクチャード・クェリィ・ランゲージ（ＳＱＬ：構造をもつ照会言語）がサブルーチン（procedural:手続き）によらない方法でデータベース内のデータにアクセスするために使用される。
【０００４】
データベース管理システム上で保安政策を実行する方法はたくさんある。例えば、１つの方法では、使用者の各クラスに中央データベース内に保持されているデータの一部である自分達のコピーを備え、これにはそのグループがアクセスするのに適したデータがコピーされている。この方法はレプリカ方法と呼ばれ、少なくともいくつかのデータが複数のコピー内に存在することになるためにデータが写しをとられることからこの名が付けられている。このような方法はメモリの使用という見地からは非常に効率が悪いことは明らかである。さらに、もしデータの１つのコピーの使用者が何らかの方法で、例えば特定のグループの使用者が値を更新することにより変更されるときは、他のグループにより保持されているそのデータの多数の別なコピーが更新されなければならなくなる。これは時間のかかることであり、システムが管理される方法が非常に正確で、例えばシステムが破壊した場合には一様な状態でデータを維持することを確実としなければならない。
【発明の開示】
【０００５】
この発明はデータベース内のデータに対する使用者によるアクセスを制御するための方法を提供するものであり、その構成は、データベースの少なくとも一部を形成して形成されたデータベースのデータの少なくともいくつかが保安タグと関係するようにし；使用者の識別名とそれに関係する使用者タグとの記憶構造を形成し；使用者タグとそれに関係する保安タグの記憶構造を形成し；使用者タグとそれに関係する保安タグの記憶構造から使用者識別名の使用者タグに適した保安タグ（単数又は複数）を判断しかつ該保安タグと関係して形成されたデータベースからのデータのアクセスを認可することにより、少なくともデータのサブセットに対して使用者識別名をマップすることで成る。
【０００６】
使用者タグと保安タグとの記憶構造を用意することにより、データベースの再形成や使用者名称と関係する使用者タグの変更を必要とせずに、記憶構造内の値の修正のみにより保安政策の変更が可能となる。保安タグというのは、関係するデータが保安分類といった特定の属性（アトリビュート）をもっていることを示すデータエントリィのことを意味する。それは数字、文字又は他のデータエントリィ（見出し項目）であってよい。例えば、木の形態、記録、セット（組）、テーブル（表）、あるいは他の記憶（格納）構造を指す。
【０００７】
この発明の第２の特徴によると、使用者によるデータベースへのアクセス制御のための方法が提供されており、その構成は、データとそれに関係する保安タグとのデータベースを創製し；識別名と識別名タグとの第１の記憶構造を創製し；識別子タグとそれに関係する保安タグとの第２の記憶構造を創製し；第１の記憶構造から関係する識別名タグを判断し、かつ第２の記憶構造から判断した識別名に適した少なくとも１つの保安タグを判断してデータベースから保安タグに関係するデータを選択することにより、少なくとも１つの識別名に適したデータベースに対する概要（ビュー）を創製し；ものとしている。
【０００８】
概要（ビュー）というのは、必要に応じて使用者により取扱い可能なデータのサブセット（副次の組）を意味する。ＳＱＬ内では、概要は使用者用に創製でき、ユーザ（使用者）がデータ内で操作を実行できるようにする。概要を定義するときにＳＱＬチェック・オプションを用意することによって、概要は保安状態として作られる。すなわち、使用者によってデータに対して作られた代替物はチェック・オプションが満足されない限りはデータベースに書き戻されない。このことは、使用者がデータベース内のデータに書込みアクセスをもつことがないが、データを読出すことと自分の使用のためだけにデータを処理することが許されているという場合にとくに有用である。
【０００９】
この発明にしたがって動作するシステムは使用者により共用されるデータの１つのコピーだけがあるようにしなければならず、これによって既知のレプリカ方法に関係する少なくともいくつかの問題を回避する。この問題は例えば記憶メモリの非効率性とか余分なデータ管理や処理時間の必要性といった問題である。
【００１０】
データベースの全部を保安のために形成する必要があるというのではないことに留意されたい。公開されてすべての使用者に開かれている部分があってもよい。
【００１１】
使用者識別名と使用者タグとの記憶構造と、使用者タグと保安タグとの記憶構造とは、少なくともある使用者が記憶構造の全部分にアクセスができないように形成できる。こうして、排除された使用者はどんな保安の度合を自分が備えているかを判断することが妨げられるのでシステムが透明さであるかのように考えられる。つまり、使用者は保安政策に気付かず、アクセスが中央データベースのあるところに対して拒否されていると信ずるに足る証拠を得ることができないということである。
【００１２】
この発明の別な特徴によると、使用者によるデータベースへのアクセスを制御するための装置が提供されている。その構成は：データベースの少なくとも一部を形成して、形成されたデータベースのデータの少なくともいくつかを保安タグと関係するように形成するための手段と；使用者識別名とそれに関係する使用者タグとの記憶構造を形成するための手段と；使用者タグとそれに関係する保安タグとの記憶構造を形成するための手段と；使用者タグとそれに関係する保安タグとの記憶構造から、使用者識別名の使用者タグに適した保安タグ（単数又は複数）を判断して、保安タグ（単数又は複数）に関係する形成したデータベースからのデータへ使用者がアクセスすることを認可することにより、データの少なくとも１つのサブセットに対する使用者識別名をマップするための手段とから成る。
【００１３】
この装置又は方法は雇用者記録とか電気通信網上の情報といった他の情報へのアクセスのために使用できる。この種の情報は網管理者（マネージャ）による電気通信網の形成に使用できる。この装置はまた、網管理機能とデータベース保安機能との両方を組合わせるために形成することができる。
【００１４】
この発明の特定の実施例を例としての目的で図面を参照して説明していく。
【発明を実施するための最良の形態】
【００１５】
図１について、データベースシステム１はＤＥＣ  Ｍｉｃｒｏ  ＶＡＸのようなよく知られた型式のメインフレーム計算機２を含む多数の素子が多数の使用者端末３，４，５に接続されて成り、各端末はＩＢＭ ＰＣのようなよく知られた型式のマイクロコンピュータで構成されている。接続はよく知られた同軸ケーブル６でされ、システム１の素子間の通信はよく知られた通信プロトコル、例えば伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）によって行われている。
【００１６】
使用者端末３，４，５は名目上同一である。各々はマイクロプロセッサ（μＰ）３ａ，４ａ，５ａ；メモリ３ｂ，４ｂ，５ｂ；入力／出力装置（Ｉ／Ｏ）３ｃ，４ｃ，５ｃ；バッファ３ｄ，４ｄ，５ｄ；ビジュアル表示ユニット（ＶＤＵ）３ｅ，４ｅ，５ｅ；及びキーボード３ｆ，４ｆ，５ｆを備える。
【００１７】
すぐ分かるように、メモリ３ｂ，４ｂ，５ｂはランダムアクセスメモリ、読出し専用メモリ、もしくはその両方の組合わせの形態をとることができる。メモリは半導体チップもしくはディスク（光又は磁気）としての固体形式又はこれらの形式の組合わせでよい。
【００１８】
形態はいずれであっても、メモリには多数の記憶位置があり、そこには特定のメモリが関係するマイクロプロセッサ３ａ，４ａ，５ａの動作を支配する命令が含まれることになる。マイクロプロセッサ３ａ，４ａ，５ａはメモリにアクセスして命令を取得する。端末の動作を支配するためのプログラムは多数の記憶位置に置かれた１組の命令としてメモリの内部に保持される。命令はヘキサデシマル（１６進法）数の形態をとることになる。
【００１９】
メモリはよく知られた方法でデータバスによりマイクロプロセッサとリンクされている。データバスはまた端末の他の要素とマイクロプロセッサとをリンクする。入力／出力（Ｉ／Ｏ）装置３ｃ，４ｃ，５ｃは端末とシステム内の他の計算機との間のインターフェースとして動作する。
【００２０】
各端末のキーボードとＶＤＵとは、既知の方法でバッハを介して端末のマイクロプロセッサと対話をする。集合して、これらのものがシステム及びシステムとの対話を望んでいる使用者との間のインターフェースを提供する。
【００２１】
メインフレーム計算機２はプロセッサ２ａ、メモリ２ｂ、入力／出力（Ｉ／Ｏ）装置２ｃ、周辺バッファ２ｄと関係するＶＤＵ２ｅ、及びキーボード２ｆを有している。こうしてメインフレーム計算機２は使用者端末３，４，５と同じ形態のものとなっている。主な違いはメモリ２ｂの記憶容量が使用者端末のメモリのそれよりもはるかに大きいことである。データベースシステムの管理者はキーボード２ｆとＶＤＵ２ｅとを用いてシステムにアクセスできる。
【００２２】
端末３，４，５とメインフレーム計算機２とは、同軸ケーブル６によって相互接続され、同軸ケーブル６は端末の入力／出力装置３ｃ，４ｃ，５ｃとメインフレームの入力／出力装置２ｃとの間に延びている。前に述べたように、ＴＣＰ／ＩＰと呼ばれるプロトコルがシステム１の要素間の通信用に使用されている。
【００２３】
メモリ２ｂは情報のデータベースを含む。この情報には使用者がその端末からアクセスすることができる。しかし、各使用者が情報にアクセスを許されている程度は使用者で異なる。システム管理者はすべてのデータベースにアクセスできる。
【００２４】
システムは１組のデータベース勘定口座（アカウント）を提供するのもとして図２に示すように考えることができる。管理者は管理者勘定（アカウント）２１をもち、使用者は使用者勘定（アカウント）２２，２３，２４をもっている。この場合、使用者の名前がブラウン(Brown)、スミス(Smith)、ジョーンズ(Jones)であり、勘定もそのように名付けられている。
【００２５】
メモリ２ｂはデータベースと共にプロセッサ２ａを制御するためのプログラム、とくにデータベースが各使用者によりアクセスされる方法を保持している。したがって、ソフトウェアの制御下でプロセッサ２ａはデータベースエンジンとして動作する。
【００２６】
図３に示すように、スミス、ブラウン、及びジョーンズはデータベースエンジン３１に要求を入力することができ、エンジンは要求されたとおりデータベース３２にアクセスしてその要求を処理する。データベースエンジン３１は次に照会している使用者への応答を出力する。これらの要求は同軸ケーブル６を介した伝送により伝えられる。
【００２７】
データベース３２は３部分に細分割され、各部分はＳＱＬテーブルとなっている。第１の区分はテーブル３３で“雇用（ＥＭＰＬＯＹ）”と呼ばれる。第２の区分はテーブル３４で“保安（ＳＥＣＵＲＩＴＹ）”と呼ばれ、また第３の区分はテーブル３５で“使用者（ＵＳＥＲ）”と呼ばれている。データベースシステム１はオラクルＳＱＬ（登録商標）（ＯＲＡＣＬＥ  ＳＱＬ：Oracle社の登録商標）と呼ばれるプログラム言語を利用してテーブルを設定しかつ利用する。テーブルが最初に創造される方法については後に記述する。
【００２８】
“雇用”テーブル３３はある会社の従業員についての情報で構成され、図４に示すように多数のデータフィールドで成る。
【００２９】
データフィールドには“ＥＭＰ ＮＯ”と呼ばれるデータフィールド３３ａがあり、そこには特定の会社の従業員に対する被雇用者参照番号が含まれている。
【００３０】
“ＮＡＭＥ”と呼ばれるデータフィールド３３ｂがあり、そこには３０文字（ＣＨＡＲ）以下のストリングとしてその会社の従業員の名前が含まれている。
【００３１】
次のデータフィールドはデータフィールド３３ｃで“ＰＯＳＩＴＩＯＮ”と呼ばれる。この“ＰＯＳＩＴＩＯＮ”データフィールド３３ｃはその会社の特定の従業員の地位に関する情報、例えばその従業員が管理者であるか事務員であるか秘書であるかについての情報が含まれている。この情報もまた１０文字以下のストリングとして記憶されている。
【００３２】
次のデータフィールドはデータフィールド３３ｄで、“ＳＡＬ”と呼ばれる。ここには各従業員の給与が７桁の数字で表現されている。
【００３３】
データフィールド３３ｅは“ＤＥＰＴ”と呼ばれ、ここにはその従業員が働いている部署名が含まれている。この情報は１０文字のストリングとして保管されている。
【００３４】
データフィールド３３ｆは“ＲＯＷ＿ＴＡＧ”と呼ばれる。このデータフィールドは１文字のストリングを含み、それが属している情報の行の保安状態を示している。このフィールドは“雇用（ＥＭＰＬＯＹ）”テーブル３３の特定の行に対してアクセスが許される方法にとって特に重要な意味のあるものとなっている。
【００３５】
“保安（ＳＥＣＵＲＩＴＹ）”テーブル３４は２つのデータフィールドで成り、第１のデータフィールド３４ａは“ＲＯＷ＿ＴＡＧ”と呼ばれ、第２のデータフィールド３４ｂは“ＵＳＥＲ＿ＴＡＧ”と呼ばれ、図５に示すようになっている。
【００３６】
“ＲＯＷ＿ＴＡＧ”データフィールド３４ａは“雇用”テーブルの“ＲＯＷ＿ＴＡＧ”データフィールド３３ｆに保管されているのと同じ文字を含む。これは後に述べるマッピング動作を認可するもので、ここで“雇用”テーブルの行が、“保安”テーブル３４の“ＲＯＷ＿ＴＡＧ”と同じ“ＲＯＷ＿ＴＡＧ”を有する行を選択することにより選ばれる。
【００３７】
“ＵＳＥＲ＿ＴＡＧ”データフィールド３４ｂは１文字データを保管する。このフィールドの機能は上述のマッピング動作を可能とすることであり、これについては後にもっと詳細に説明される。
【００３８】
“保安”テーブル３４は、システム保安政策がこのテーブルの中で実現されていることからその名が付けられている。このテーブルの“ＲＯＷ＿ＴＡＧ”及び“ＵＳＥＲ＿ＴＡＧ”は、保安政策がこれらのタグによって支配されていることから保安タグと命名されている。保安政策はこのテーブルを修正することにより簡単に修正することができる。システムのこの特徴は後に完全に説明される。
【００３９】
“使用者（ＵＳＥＲ）”テーブル３５は図６に示してあり、“ＵＳＥＲ＿ＴＡＧ”フィールド３５ａと“ＵＳＥＲ＿ＮＡＭＥ”フィールド３５ｂとで成る。
【００４０】
“ＵＳＥＲ＿ＴＡＧ”フィールド３５ａは１文字データを保管し、そこには“保安”テーブル３４の“ＵＳＥＲ＿ＴＡＧ”フィールド３４ｂ内に保管されているのと同じ文字が含まれる。これが、後に述べるように、前述のマッピング動作の実行を認可することになる。
【００４１】
“ＵＳＥＲ＿ＮＡＭＥ”フィールド３５ｂは文字ストリングの形でシステムの使用者の名前を保管する。
【００４２】
システム動作の流れ図を図７に示す。この動作の第１の段階は初期化であり、箱７０で示す。この段階で、端末３，４，５はオンに切換えられ、メイン計算機２も同様にオンに切換えられ、使用のための準備がされる。
【００４３】
第２の段階は、箱７１に示すように、メモリ２ｂ内にテーブルを創製する。これは、データベースエンジン３１によって、ＳＱＬコマンドＣＲＥＡＴＥ  ＴＡＢＬＥを用いて次のように行われる。
【００４４】
“雇用”テーブル３３に対しては、次のようなコマンド記述がデータベースエンジン３１によって実行される。
【００４５】
（  
ＥＭＰ  ＮＵＭＢＥＲ（４）  
ＮＡＭＥ  ＣＨＡＲ（３０），  
ＰＯＳＩＴＩＯＮ  ＣＨＡＲ（１０），  
ＳＡＬ  ＮＵＭＢＥＲ（７），  
ＤＥＰＴ  ＣＨＡＲ（１０），  
ＲＯＷ＿ＴＡＧ  ＣＨＡＲ（１）  
）；
“保安”テーブル３４はＳＱＬ ＣＲＥＡＴＥ ＴＡＢＬＥコマンドを用いて次のように形成される。
【００４６】
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＳＥＣＵＲＩＴＹ  
（ＲＯＷ＿ＴＡＧ  ＣＨＡＲ（１），  
ＵＳＥＲ＿ＴＡＧ  ＣＨＡＲ（１）  
）；
“使用者”テーブル３５はＳＱＬ ＣＲＥＡＴＥ ＣＯＭＭＡＮＤにより次のように形成される。
【００４７】
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＵＳＥＲ  
（  
ＵＳＥＲ＿ＴＡＧ  ＣＨＡＲ（１），  
ＵＳＥＲ＿ＮＡＭＥ  ＣＨＡＲ（１０）  
）；
次の段階７２はテーブルがデータで占有されるものである。これは網管理者がデータベースエンジン３１とＳＱＬ  ＩＮＳＥＲＴ  コマンドとを利用して、次のような方法で行われる。  
例えば、Stuart Fitchett(スチュワート・フィチェット)という従業員についてのデータの行を“雇用”テーブルに挿入するためには、次のコマンドが管理者によって発せられる。
【００４８】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＥＭＰＬＯＹ  
ＶＡＬＵＥＳ（１０，´Ｓｔｕａｒｔ Ｆｉｃｈｅｔｔ´，´ＣＬＥＲＫ´，１０００，´ＣＳ´，´Ｕ´）；
こうして従業員番号１０はFichett と呼ばれ、この男は事務員で月給が１０００ポンドであり、顧客サービス部門（略称ＣＳ）に属し、かつこの情報を読出すために必要とされる保安タグは´Ｕ´であることが記録される。
【００４９】
“保安”テーブル３４に同様の方法でデータが入力される。例えば、データの最初の７行には次のように入力される。
【００５０】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｕ´，´Ａ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｖ，´´Ａ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｕ，´´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｗ´  ´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｗ´  ´Ｃ´）；
“使用者”テーブルは同じように完成される。
【００５１】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ａ´，´ＳＭＩＴＨ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ｂ´，´ＪＯＮＥＳ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ｃ´，´ＢＲＯＷＮ´）；
データベースエンジン３１は次に、図７の箱７３で示されるように、使用者の１人からデータベース３２の情報への要求が来るのを待つ。
【００５２】
要求が受け付けられて処理されるのが箱７４で示されている。処理が完了するとシステムは要求待ち段階７３に戻る。
【００５３】
完成されたテーブルは図８に模式的に示されている。  
ここで処理要求段階７４のもっと詳細を図９を参照して記述する。この処理段階は上述のマッピング動作を利用するもので、システム１を支配する保安政策が実行される。
【００５４】
第１段階はデータベースエンジン３１がデータベース３２内に記憶されている情報へのアクセスの要求をしている使用者を識別するためのもので、図９の箱９０で示す。
【００５５】
次の段階はデータベースエンジン３１が“ＵＳＥＲ＿ＴＡＢＬＥ”３５を利用して識別された使用者に適した“ＵＳＥＲ＿ＴＡＧ”を得るためのものであり、図９の箱９１で示す。
【００５６】
さらに箱９２で示した段階はデータベースエンジン３１が“保安”テーブル３４を利用して段階９１で識別された“ＵＳＥＲ＿ＴＡＧ”に適した“ＲＯＷ＿ＴＡＧ”を得るためのものである。
【００５７】
最終段階は箱９３で示したもので、データベースエンジン３１が、“雇用”テーブル３３から、データ行であってその行に関係する“ＲＯＷ＿ＴＡＧ”が前の段階９２で識別された“ＲＯＷ＿ＴＡＧ”と整合するものを戻すためのものである。
【００５８】
データベースエンジン３１が要求を処理する仕方を示すために一例を用いよう。
【００５９】
ＵＳＥＲ＿ＮＡＭＥ  ＳＭＩＴＨをもつ使用者（スミス）はＵＳＥＲ＿ＴＡＧ  Ａを割当てられており、これが“保安”テーブル３４を経てＲＯＷ＿ＴＡＧ  ＵとＲＯＷ＿ＴＡＧ  Ｖとにマップされ得るようになっている。これは、ＳＭＩＴＨがＲＯＷ＿ＴＡＧ  Ｕ又はＲＯＷ＿ＴＡＧ  Ｖを割当てられている“雇用”テーブル３３の行へのアクセスを取得できるようにする。こうしてＳＭＩＴＨはテーブルＥＭＰＬＯＹの行ＲＯＷ１，ＲＯＷ２及びＲＯＷ３上にマップされ、これらの行のデータを見ることができる。  
さらに詳しく言えば、仮にＳＭＩＴＨが“雇用”テーブル３３からの全ての情報にアクセスできるようにしたいとする。これをするには、ＳＭＩＴＨはＳＱＬ  ＳＥＬＥＣＴコマンドであるＳＥＬＥＣＴ  *  ＦＲＯＭ  ＥＭＰＬＯＹ；をデータベースエンジン３１に送る。
【００６０】
データベースエンジン３１はＳＭＩＴＨのこのコマンド使用者に対する論拠があるものとして使用者を識別し、次にＵＳＥＲ＿ＮＡＭＥが“ＳＭＩＴＨ”である場合は次のマッピング動作を実行する。マッピング動作はデータベースエンジン３１の動作を支配しているプログラム内に用意されている。
【００６１】
ＣＲＥＡＴＥ  ＶＩＥＷ  ＳＥＣＵＲＥ＿ＥＭＰＬＯＹ  ＡＳ  
ＳＥＬＥＣＴ  ＥＭＰ，  
ＮＡＭＥ，  
ＰＯＳＩＴＩＯＮ，  
ＳＡＬ，  
ＤＥＰＴ，  
ＦＲＯＭ  ＥＭＰＬＯＹ  
ＷＨＥＲＥ  ＥＭＰＬＯＹ．ＲＯＷ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ  
ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＵＳＥＲ．ＵＳＥＲ＿ＴＡＧ  
ＦＲＯＭ  ＵＳＥＲ  
ＷＨＥＲＥ  ＵＳＥＲ．ＵＳＥＲ＿ＮＡＭＥ＝username  
）  
）
これは、ＲＯＷ＿ＴＡＧ  ´Ｕ´又はＲＯＷ＿ＴＡＧ  ´Ｖ´をもつテーブル“雇用”の行、すなわちテーブル３３のＲＯＷ１，ＲＯＷ２及びＲＯＷ３を使用者ＳＭＩＴＨに戻す。ＳＥＬＥＣＴコマンドは“雇用”テーブル３３の“ＲＯＷ＿ＴＡＧ”列を含まないから、この情報は使用者に戻されず、データを支配している保安政策は使用者には判断できないことに留意したい。こうして保安政策は使用者に透明となっている。
【００６２】
このシステムはＢＲＯＷＮ及びＪＯＮＥＳによるアクセスに対しても、データベースエンジンにより特定された使用者名論拠がＢＲＯＷＮ又はＪＯＮＥＳで適切であるとされると、同じように要求に応じる。
【００６３】
保安政策に変更を実現しなければならない場合、例えば、以前はＴＡＧ  ´Ｕ´又は´Ｖ´をもつ“雇用”テーブル３３の行にアクセスしていたＵＳＥＲ＿ＴＡＧ  ´Ａ´をもつ使用者のクラスを、ＴＡＧ  ´Ｕ´をもつ行だけに制限しようとする場合には、網管理者が“保安”テーブル３４を修正して使用者タグＡに指定されている保安タグから削除すればよいだけのことである。これはＳＱＬ  ＤＥＬＥＴＥ  ＦＲＯＭテーブル（削除）コマンドを用いて実行することができる。すなわち：
ＤＥＬＥＴＥ  ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ＝´Ａ´  
ＡＮＤ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ＝´Ｖ´；  
こうして、図８に示すように“保安”テーブル３４の第２行が削除され、使用者ＳＭＩＴＨから“ＴＡＧ”´Ｖ´をもつ“雇用”テーブル６の第２行へのマッピング経路が除去される。
【００６４】
ＵＳＥＲ＿ＴＡＧ´Ｂ´をもつ使用者のクラスにアクセスできる雇用テーブル３３の量を拡張するために、例えばＲＯＷ＿ＴＡＧ´Ｖ´又はＲＯＷ＿ＴＡＧ´Ｘ´をもつ行にアクセスできるようにするためには、ＳＱＬコマンドＩＮＳＥＲＴ  ＩＮＴＯ（挿入）テーブルを用いる。すなわち：
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｖ´，´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｘ´，´Ｂ´）；
これにより、図８に破線で示したように、使用者テーブルから“雇用”テーブルへのさらに２つのマッピング経路が用意されることになる。
【００６５】
あるデータベース保安システムでは、ある使用者のクラスによってデータベース内のデータが更新されるのを妨げることが望ましい。これをする１つの方法は“雇用”テーブル３３への展望（ビュー）を創製することであり、これは、チェックオプションを用意して使用者がデータベースの一部に入力を挿入することができないようにし、この使用者がその後このデータベースから情報を消去することができないようにするという意味で保安に適っている。データの挿入又は更新は、ＳＱＬ“ＷＨＥＲＥ”ステートメントが満たされているときに限り許される。例えば：
ＣＲＥＡＴＥ  ＶＩＥＷ  ＳＥＣＵＲＥ  ＥＭＰＬＯＹ＿２  ＡＳ  
ＳＥＬＥＣＴ* 
ＦＲＯＭ  ＥＭＰＬＯＹ  
ＷＨＥＲＥ  ＥＭＰＬＯＹ．ＲＯＷ＿ＴＡＧ  ＩＮ  
（  
ＳＥＳＬＥＣＴ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ  
ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＵＳＥＲ．ＵＳＥＲ＿ＴＡＧ  
ＦＲＯＭ  ＵＳＥＲ  
ＷＨＥＲＥ  ＵＳＥＲ．ＵＳＥＲ＿ＮＡＭＥ＝ＵＳＥＲＮＡＭＥ  
）  
）  
ＷＩＴＨ  ＣＨＥＣＫ  ＯＰＴＩＯＮ
第１の記述した実施例では、データベースに含まれる情報は雇用者についてのもの、すなわち人事データベースであった。他の形式の情報も記憶できる。
【００６６】
図１０はこの発明によるシステム１を示し、網マネージャ内で使用される。このシステムでは、データベースは電気通信網１００上の構成管理情報のような情報が含まれ、網は多数の網素子１０１ないし１０３とその素子マネージャ１０４ないし１０６とで構成される。システム１の使用者、すなわち網１００の動作と制御に関係する網マネージャなどは、前述と同じやり方でデータベースのいろいろな部分にアクセスできる。
【図面の簡単な説明】
【００６７】
【図１】図１はこの発明の実施例により動作するデータベースのハードウェアを模式図形式で示す。
【図２】図２はデータベースシステムによって支持されている１組のデータベース勘定口座を示す。
【図３】図３はデータベースシステムのソフトウェア概要を示す。
【図４】図４はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図５】図５はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図６】図６はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図７】図７はデータベースシステムの動作の説明図である。
【図８】図８はデータベースシステムで実行されるマッピング動作の説明図である。
【図９】図９はマッピング動作における段階を示す別な説明図である。
【図１０】図１０は網管理応用で使用されているデータベースシステムを模式図で示す。
【図１】
2006277756.tif 000003
【図２】
2006277756.tif 000004
【図３】
2006277756.tif 000005
【図４】
2006277756.tif 000006
【図５】
2006277756.tif 000007
【図６】
2006277756.tif 000008
【図７】
2006277756.tif 000009
【図８】
2006277756.tif 000010
【図９】
2006277756.tif 000011
【図１０】
2006277756.tif 000012
【手続補正書】
【提出日】平成18年5月18日(2006.5.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データのサブセットに分割されているデータの組からなるデータベースへの使用者によるアクセスを制御するための方法であって、該方法は、
データのサブセットの少なくともいくつかに関してデータのサブセットの各々に単一のロウタグ（ｒｏｗ  ｔａｇ）を指定する段階と、
使用者テーブル内の各使用者の識別子に対して使用者タグを指定する段階と、
保安テーブル内の各使用者タグに対して少なくとも１つのロウタグを指定する段階と、
使用者のための使用者タグを得るために使用者テーブルを利用する段階と、
使用者タグに対応する少なくとも１つのロウタグを得るために保安テーブルを利用する段階と、
該使用者タグに対応する少なくとも１つのロウタグを有するどのデータのサブセットにも使用者がアクセスするのを認可する段階と、を具備する。
【請求項２】
前記データベースがデータの行を有するリレーショナルデータベースであり、データの各行がデータのサブセットを形成する請求項１に記載のデータベースへの使用者によるアクセスを制御するため方法。
【請求項３】
データのサブセットに分割されているデータの組からなるデータベースへの使用者によるアクセスを制御するための装置であって、該装置は、
データのサブセットの少なくともいくつかに関してデータのサブセットの各々に単一のロウタグを指定する手段と、
使用者テーブル内の各使用者の識別子に対して使用者タグを指定する手段と、
保安テーブル内の各使用者タグに対して少なくとも１つのロウタグを指定する手段と、
使用者のための使用者タグを得るために使用者テーブルを利用する手段と、
使用者タグに対応する少なくとも１つのロウタグを得るために保安テーブルを利用する手段と、
該使用者タグに対応する少なくとも１つのロウタグを有するどのデータのサブセットにも使用者がアクセスするのを認可する手段と、を具備する。
【請求項４】
前記データベースがデータの行を有するリレーショナルデータベースであり、データの各行がデータのサブセットを形成する請求項３に記載のデータベースへの使用者によるアクセスを制御するための装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータベースへのアクセスを制御するための方法及び装置に関する。
【背景技術】
【０００２】
データベースシステムでは、多数の使用者（ユーザ）がシステムと対話をしてデータベースを利用することができるようにするのが普通である。このようなシステムはマルチ・ユーザシステムと呼ばれる。このようなシステムで問題が生ずるのは、データベースがある意味で要注意な情報もしくはデータを含む場合で、換言すれば、ある特定の使用者もしくは使用者の特定のクラス（級）の会員だけがその情報もしくはデータを得られる場合である。このような場合、セキュリティ（保安）政策が実行されて、使用者のクラスに使用できるデータを制限するようにする。
【０００３】
複数の使用者を支えるデータベース管理システムの一例はＯＲＡＣＬＥ（登録商標）（Oracle社の登録商標）である。ＯＲＡＣＬＥはリレーショナル（関連付けされた）データベース管理システムである。リレーショナルデータベースでは唯１つの型式のデータ構造が存在し、これがデータの行と列の二次元構造であるテーブル（表）となっている。ストラクチャード・クェリィ・ランゲージ（ＳＱＬ）がサブルーチン（procedural: 手続き）によらない方法でデータベース内のデータにアクセスするために使用される。
【０００４】
データベース管理システム上で保安政策を実行する方法はたくさんある。例えば、１つの方法では、使用者の各クラスに中央データベース内に保持されているデータの一部である自分達のコピーを備え、これにはそのグループがアクセスするのに適したデータがコピーされている。この方法はレプリカ方法と呼ばれ、少なくともいくつかのデータが複数のコピー内に存在することになるためにデータが写しをとられることからこの名が付けられている。このような方法はメモリの使用という見地からは非常に効率が悪いことは明らかである。さらに、もしデータの１つのコピーが何らかの方法で、例えば特定のグループの使用者が値を更新することにより変更されると、他のグループにより保持されているそのデータの多数の別なコピーが更新されなければならなくなる。これは時間のかかることであり、システムが管理される方法が非常に正確でなければならず、例えばシステムが破壊した場合は一様な状態でデータを維持することを確実としなければならない。
【０００５】
ＥＰ−Ａ−Ｏ  ３９８  ６４５にはオブジェクト・オリエンテッド（目的指向の）データベースへのアクセス特権制御用システムが記述されている。このシステムでは、各ユーザにはユーザ（使用者）識別素子（アイデンティティ、ＩＤ）と１組のグループＩＤとが指定される。各オブジェクトにはアクセスリストがあり、それがアクセス認可を与える。各アクセス制御リストには７つのユーザ（使用者）又はグループＩＤがある。
【発明の開示】
【０００６】
この発明の１つの特徴によると、データのサブセット（副次の組）に分割された１組のデータで構成されるデータベースに対する使用者によるアクセスの方法を提供するものであり、この方法は、該データのサブセットの少なくともいくつかの中のデータの各サブセットに対して単一の保安タグを指定する段階と；使用者テーブル内の各使用者の識別子（アイデンティファイヤ）に対して使用者タグを指定する段階と；保安テーブル内の各使用者タグに対して少なくとも１つの保安タグを指定する段階と；該使用者に対する使用者タグを得るために使用者テーブルを利用する段階と；該使用者タグに対応する少なくとも１つの保安タグを得るために保安テーブルを利用する段階と；該少なくとも１つの保安タグをもつデータのサブセットのいずれかに使用者がアクセスするのを認可する段階とから構成される。
【０００７】
この発明によると、保安テーブル内の値だけを変更することにより保安政策を変えることが可能であり、データベースを再構築したり使用者識別名に関連付けた使用者タグを変更したりする必要がない。保安タグは数字もしくは文字あるいは他のデータ入力でよい。
【０００８】
この発明によると、データベースは使用者により共用されるデータの唯１つのコピーを有するものでなければならない。これによって既知のレプリカ方法に関連付けた問題の少なくともいくつかは回避できる。すべてのデータベースが保安のために構築される必要がないことに留意されたい。ある部分は公開され使用者に開かれている。
【０００９】
この発明の別な特徴によると、データのサブセットに分けられたデータベースへの使用者のアクセスを制御するための装置が提供され、この装置は、該データのサブセットの少なくともいくつかの中のデータの各サブセットに対して単一の保安タグを指定するため手段と；使用者テーブル内の各使用者のための識別名に対して使用者タグを指定するための手段と；保安テーブル内の各使用者タグに対して少なくとも１つの保安タグを指定するための手段と；ある使用者に対して使用者タグを得るために使用者テーブルを利用するための手段と；ある使用者タグに対応する少なくとも１つの保安タグを得るために保安テーブルを利用するための手段と；少なくとも１つの保安タグをもつデータのサブセットのいずれかに使用者がアクセスするのを認可する手段とから構成される。
【発明を実施するための最良の形態】
【００１０】
図１について、データベースシステム１はＤＥＣ Ｍｉｃｒｏ ＶＡＸのようなよく知られた型式のメインフレーム計算機２を含む多数の素子が多数の使用者端末３，４，５に接続されて成り、各端末はＩＢＭ（登録商標）  ＰＣのようなよく知られた型式のマイクロコンピュータで構成されている。接続はよく知られた同軸ケーブル６でされ、システム１の素子間の通信はよく知られた通信プロトコル、例えば伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）によって行われている。
【００１１】
使用者端末３、４、５は名目上同一である。各々はマイクロプロセッサ３ａ、４ａ、５ａ；メモリ３ｂ、４ｂ、５ｂ；入力／出力装置（Ｉ／Ｏ）３ｃ、４ｃ、５ｃ；バッファ３ｄ、４ｄ、５ｄ；ビジュアル表示ユニット（ＶＤＵ）３ｅ、４ｅ、５ｅ；及びキーボード３ｆ、４ｆ、５ｆを備える。
【００１２】
すぐ分かるように、メモリ３ｂ、４ｂ、５ｂはランダムアクセスメモリ、読出し専用メモリ、もしくはその両方の組合わせの形態をとることができる。メモリは半導体チップもしくはディスク（光又は磁気）としての固体形式又はこれらの形式の組合わせでよい。
【００１３】
形態はいずれであっても、メモリには多数の記憶位置があり、そこには特定のメモリが関係するマイクロプロセッサ３ａ、４ａ、５ａの動作を支配する命令が含まれることになる。マイクロプロセッサ３ａ、４ａ、５ａはメモリにアクセスして命令を取得する。端末の動作を支配するためのプログラムは多数の記憶位置に置かれた１組の命令としてメモリの内部に保持される。命令はヘキサデシマル（１６進法）数の形態をとることになる。
【００１４】
メモリはよく知られた方法でデータバスによりマイクロプロセッサとリンクされている。データバスはまた端末の他の要素とマイクロプロセッサとをリンクする。入力／出力（Ｉ／Ｏ）装置３ｃ、４ｃ、５ｃは端末とシステム内の他の計算機との間のインターフェースとして動作する。
【００１５】
各端末のキーボードとＶＤＵとは、既知の方法でバッハを介して端末のマイクロプロセッサと対話をする。集合して、これらのものがシステム及びシステムとの対話を望んでいる使用者との間のインターフェースを提供する。
【００１６】
メインフレーム計算機２はプロセッサ２ａ、メモリ２ｂ、入力／出力（Ｉ／Ｏ）装置２ｃ、周辺バッファ２ｄと関係するＶＤＵ２ｅ、及びキーボード２ｆを有している。こうしてメインフレーム計算機２は使用者端末３，４，５と同じ形態のものとなっている。主な違いはメモリ２ｂの記憶容量が使用者端末のメモリのそれよりもはるかに大きいことである。データベースシステムの管理者はキーボード２ｆとＶＤＵ２ｅとを用いてシステムにアクセスできる。
【００１７】
端末３、４、５とメインフレーム計算機２とは、同軸ケーブル６によって相互接続され、同軸ケーブル６は端末の入力／出力装置３ｃ、４ｃ、５ｃとメインフレームの入力／出力装置２ｃとの間に延びている。前に述べたように、ＴＣＰ／ＩＰと呼ばれるプロトコルがシステム１の要素間の通信用に使用されている。
【００１８】
メモリ２ｂは情報のデータベースを含む。この情報には使用者がその端末からアクセスすることができる。しかし、各使用者が情報にアクセスを許されている程度は使用者で異なる。システム管理者はすべてのデータベースにアクセスできる。
【００１９】
システムは１組のデータベース勘定口座（アカウント）を提供するのもとして図２に示すように考えることができる。管理者は管理者勘定（アカウント）２１をもち、使用者は使用者勘定（アカウント）２２、２３、２４をもっている。この場合、使用者の名前がブラウン(Brown)、スミス(Smith)、ジョーンズ（Jones）であり、勘定もそのように名付けられている。
【００２０】
メモリ２ｂはデータベースと共にプロセッサ２ａを制御するためのプログラムを保持し、そのプログラムはとくにデータベースが各使用者によりアクセスされる仕方を制御する。したがって、ソフトウェアの制御下でプロセッサ２ａはデータベースエンジンとして動作する。
【００２１】
図３に示すように、スミス、ブラウン、及びジョーンズはデータベースエンジン３１に要求を入力することができ、エンジンは必要に応じてデータベース３２にアクセスしてその要求を処理する。データベースエンジン３１は次に照会している使用者への応答を出力する。これらの要求は同軸ケーブル６を介した伝送により伝えられる。
【００２２】
データベース３２は３部分に細分割され、各部分はＳＱＬテーブルとなっている。第１の区分はテーブル３３で“雇用（ＥＭＰＬＯＹ）”と呼ばれる。第２の区分はテーブル３４で“保安（ＳＥＣＵＲＩＴＹ）”と呼ばれ、また第３の区分はテーブル３５で“使用者（ＵＳＥＲ）”と呼ばれている。データベースシステム１はオラクルＳＱＬ（登録商標）（ＯＲＡＣＬＥ  ＳＱＬ：Oracle社の登録商標）と呼ばれるプログラム言語を利用してテーブルを設定しかつ利用する。テーブルが最初に創造される方法については後に記述する。
【００２３】
“雇用”テーブル３３はある会社の従業員についての情報で構成され、図４に示すように多数のデータフィールドで成る。
【００２４】
データフィールドには“ＥＭＰ ＮＯ”と呼ばれるデータフィールド３３ａがあり、そこには特定の会社の従業員に対する被雇用者参照番号が含まれている。
【００２５】
“ＮＡＭＥ”と呼ばれるデータフィールド３３ｂがあり、そこには３０文字（ＣＨＡＲ）以下のストリングとしてその会社の従業員の名前が含まれている。
【００２６】
次のデータフィールドはデータフィールド３３ｃで“ＰＯＳＩＴＩＯＮ”と呼ばれる。この“ＰＯＳＩＴＩＯＮ”データフィールド３３ｃはその会社の特定の従業員の地位に関する情報、例えばその従業員が管理者であるか事務員であるか秘書であるかについての情報が含まれている。この情報もまた１０文字以下のストリングとして記憶されている。
【００２７】
次のデータフィールドはデータフィールド３３ｄで、“ＳＡＬ”と呼ばれる。ここには各従業員の給与が７桁の数字で表現されている。
【００２８】
データフィールド３３ｅは“ＤＥＰＴ”と呼ばれ、ここにはその従業員の所属部署名が含まれている。この情報は１０文字のストリングとして保管されている。
【００２９】
データフィールド３３ｆは“ＲＯＷ＿ＴＡＧ”と呼ばれる。このデータフィールドは１文字のストリングを含み、それが属している情報の行の保安状態を示している。このフィールドは“雇用（ＥＭＰＬＯＹ）”テーブル３３の特定の行に対してアクセスが許される方法にとって特に重要な意味のあるものとなっている。
【００３０】
“保安（ＳＥＣＵＲＩＴＹ）”テーブル３４は２つのデータフィールドで成り、第１のデータフィールド３４ａは“ＲＯＷ＿ＴＡＧ”と呼ばれ、第２のデータフィールド３４ｂは“ＵＳＥＲ＿ＴＡＧ”と呼ばれ、図５に示すようになっている。
【００３１】
“ＲＯＷ＿ＴＡＧ”データフィールド３４ａは“雇用”テーブルの“ＲＯＷ＿ＴＡＧ”データフィールド３３ｆに保管されているのと同じ文字を含む。これは後に述べるマッピング動作を認可するもので、ここで“雇用”テーブルの行が、“保安”テーブル３４の“ＲＯＷ＿ＴＡＧ”と同じ“ＲＯＷ＿ＴＡＧ”を有する行を選択することにより選ばれる。
【００３２】
“ＵＳＥＲ＿ＴＡＧ”データフィールド３４ｂは１文字データを保管する。このフィールドの機能は上述のマッピング動作を可能とすることであり、これについては後にもっと詳細に説明される。
【００３３】
“保安”テーブル３４は、システム保安政策がこのテーブルの中で実現されていることからその名が付けられている。このテーブルの“ＲＯＷ＿ＴＡＧ”及び“ＵＳＥＲ＿ＴＡＧ”は、保安政策がこれらのタグによって支配されていることから保安タグと命名されている。保安政策はこのテーブルを修正することにより簡単に修正することができる。システムのこの特徴は後により詳しく説明される。
【００３４】
“使用者（ＵＳＥＲ）”テーブル３５は図６に示してあり、“ＵＳＥＲ＿ＴＡＧ”フィールド３５ａと“ＵＳＥＲ＿ＮＡＭＥ”フィールド３５ｂとで成る。
【００３５】
“ＵＳＥＲ＿ＴＡＧ”フィールド３５ａは１文字データを保管し、そこには“保安”テーブル３４の“ＵＳＥＲ＿ＴＡＧ”フィールド３４ｂ内に保管されているのと同じ文字が含まれる。これが、後に述べるように、前述のマッピング動作の実行を認可することになる。
【００３６】
“ＵＳＥＲ＿ＮＡＭＥ”フィールド３５ｂは文字ストリングの形でシステムの使用者の名前を保管する。
【００３７】
システム動作の流れ図を図７に示す。この動作の第１の段階は初期化であり、箱７０で示す。この段階で、端末３、４、５はオンに切換えられ、メイン計算機２も同様にオンに切換えられ、使用のための準備がされる。
【００３８】
第２の段階は、箱７１に示すように、メモリ２ｂ内にテーブルを創製する。これは、データベースエンジン３１によって、ＳＱＬコマンドＣＲＥＡＴＥ  ＴＡＢＬＥを用いて次のように行われる。
【００３９】
“雇用”テーブル３３に対しては、次のようなコマンド文がデータベースエンジン３１によって実行される。
【００４０】
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＥＭＰＬＯＹ  
（  
ＥＭＰ  ＮＵＭＢＥＲ（４）  
ＮＡＭＥ  ＣＨＡＲ（３０），  
ＰＯＳＩＴＩＯＮ  ＣＨＡＲ（１０），  
ＳＡＬ  ＮＵＭＢＥＲ（７），  
ＤＥＰＴ  ＣＨＡＲ（１０），  
ＲＯＷ＿ＴＡＧ  ＣＨＡＲ（１）  
）；
“保安”テーブル３４はＳＱＬ  ＣＲＥＡＴＥ  ＴＡＢＬＥコマンドを用いて次のように構成される。
【００４１】
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＳＥＣＵＲＩＴＹ  
（ＲＯＷ＿ＴＡＧ  ＣＨＡＲ（１），  
ＵＳＥＲ＿ＴＡＧ  ＣＨＡＲ（１）  
）；
“使用者”テーブル３５はＳＱＬ  ＣＲＥＡＴＥ  ＣＯＭＭＡＮＤにより次のように構成される。
【００４２】
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＵＳＥＲ  
（  
ＵＳＥＲ＿ＴＡＧ  ＣＨＡＲ（１），  
ＵＳＥＲ＿ＮＡＭＥ  ＣＨＡＲ（１０）  
）；
次の段階７２はテーブルがデータで占有されるものである。これは網管理者がデータベースエンジン３１とＳＱＬ  ＩＮＳＥＲＴ  コマンドとを利用して、次のような方法で行われる。
【００４３】
例えば、Stuart  Fitchett(スチュワート・フィチェット)という従業員についてのデータの行を“雇用”テーブルに挿入するためには、次のコマンドが管理者によって発せられる。
【００４４】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＥＭＰＬＯＹ  
ＶＡＬＵＥＳ（１０，´Ｓｔｕａｒｔ  Ｆｉｔｃｈｅｔｔ´，´ＣＬＥＲＫ´，１０００，´ＣＳ´，´Ｕ´）；
こうして従業員番号１０はFitchettと呼ばれ、この男は事務員で月給が１０００ポンドであり、顧客サービス部門（略称ＣＳ）に属し、かつこの情報を読出すために必要とされる保安タグは´Ｕ´であることが記録される。“保安”テーブル３４に同様の方法でデータが入力される。例えば、データの最初の７行には次のように入力される。
【００４５】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｕ´，´Ａ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｖ，´Ａ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｕ，´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｗ´  ´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｗ´  ´Ｃ´）；
“使用者”テーブルは同じように完成される。
【００４６】
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ａ´，´ＳＭＩＴＨ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ｂ´，´ＪＯＮＥＳ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＵＳＥＲ  
ＶＡＬＵＥＳ（´Ｃ´，´ＢＲＯＷＮ´）；
データベースエンジン３１は次に、図７の箱７３で示されるように、使用者の１人からデータベース３２の情報への要求が来るのを待つ。
【００４７】
要求が受け付けられて処理されるのが箱７４で示されている。処理が完了するとシステムは要求待ち段階７３に戻る。
【００４８】
完成されたテーブルは図８に模式的に示されている。
【００４９】
ここで処理要求段階７４のもっと詳細を図９を参照して記述する。この処理段階は上述のマッピング動作を利用するもので、そのマッピング動作はシステム１を支配する保安政策を実行する。
【００５０】
第１段階はデータベースエンジン３１がデータベース３２内に記憶されている情報へのアクセスの要求をしている使用者を識別するためのもので、図９の箱９０で示す。
【００５１】
次の段階はデータベースエンジン３１が“ＵＳＥＲ＿ＴＡＢＬＥ”３５を利用して識別された使用者に適した“ＵＳＥＲ＿ＴＡＧ”を得るためのものであり、図９の箱９１で示す。
【００５２】
さらに箱９２で示した段階はデータベースエンジン３１が“保安”テーブル３４を利用して段階９１で識別された“ＵＳＥＲ＿ＴＡＧ”に適した“ＲＯＷ＿ＴＡＧ”を得るためのものである。
【００５３】
最終段階は箱９３で示したもので、データベースエンジン３１が、“雇用”テーブル３３から、データ行であってその行に関係する“ＲＯＷ＿ＴＡＧ”が前の段階９２で識別された“ＲＯＷ＿ＴＡＧ”と整合するものを戻すためのものである。
【００５４】
データベースエンジン３１が要求を処理する仕方を示すために一例を用いよう。
【００５５】
ＵＳＥＲ＿ＮＡＭＥ  ＳＭＩＴＨをもつ使用者（スミス）はＵＳＥＲ＿ＴＡＧ  Ａを割当てられており、これが“保安”テーブル３４を経てＲＯＷ＿ＴＡＧ  ＵとＲＯＷ＿ＴＡＧ  Ｖとにマップされ得るようになっている。これは、ＳＭＩＴＨがＲＯＷ＿ＴＡＧ  Ｕ又はＲＯＷ＿ＴＡＧ  Ｖを割当てられている“雇用”テーブル３３の行へのアクセスを取得できるようにする。こうしてＳＭＩＴＨはテーブルＥＭＰＬＯＹの行ＲＯＷ１、ＲＯＷ２及びＲＯＷ３上にマップされ、これらの行のデータを見ることができる。
【００５６】
さらに詳しく言えば、仮にＳＭＩＴＨが“雇用”テーブル３３からＳＭＩＴＨがアクセスできる全ての情報にアクセスできるようにしたいとする。これをするには、ＳＭＩＴＨはＳＱＬ  ＳＥＬＥＣＴコマンドであるＳＥＬＥＣＴ  *  ＦＲＯＭ  ＥＭＰＬＯＹをデータベースエンジン３１に送る。
【００５７】
データベースエンジン３１はＳＭＩＴＨをもつ使用者のこのコマンドに対して引数を与えて使用者を識別し、次にＵＳＥＲ＿ＮＡＭＥが“ＳＭＩＴＨ”である場合は次のマッピング動作を実行する。マッピング動作はデータベースエンジン３１の動作を支配しているプログラム内に用意されている。
【００５８】
ＣＲＥＡＴＥ  ＶＩＥＷ  ＳＥＣＵＲＥ＿ＥＭＰＬＯＹ  ＡＳ  
ＳＥＬＥＣＴ  ＥＭＰ，  
ＮＡＭＥ，  
ＰＯＳＩＴＩＯＮ，  
ＳＡＬ，  
ＤＥＰＴ，  
ＦＲＯＭ  ＥＭＰＬＯＹ  
ＷＨＥＲＥ  ＥＭＰＬＯＹ．ＲＯＷ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ  
ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＵＳＥＲ．ＵＳＥＲ＿ＴＡＧ  
ＦＲＯＭ  ＵＳＥＲ  
ＷＨＥＲＥ  ＵＳＥＲ．ＵＳＥＲ＿ＮＡＭＥ＝username  
）  
）
これは、ＲＯＷ＿ＴＡＧ  ´Ｕ´又はＲＯＷ＿ＴＡＧ  ´Ｖ´をもつテーブル“雇用”の行、すなわちテーブル３３のＲＯＷ１、ＲＯＷ２及びＲＯＷ３を使用者ＳＭＩＴＨに戻す。ＳＥＬＥＣＴコマンドは“雇用”テーブル３３の“ＲＯＷ＿ＴＡＧ”列を含まないから、この情報は使用者に戻されず、データを支配している保安政策は使用者には判断できないことに留意したい。こうして保安政策は使用者に透明となっている。
【００５９】
このシステムはＢＲＯＷＮ及びＪＯＮＥＳによるアクセスに対しても同じように取り扱う。その場合、データベースエンジンにより与えられた引数である使用者名が必要に応じてＢＲＯＷＮ又はＪＯＮＥＳである。
【００６０】
保安政策に変更を実現しなければならない場合、例えば、以前はＴＡＧ  ´Ｕ´又は´Ｖ´をもつ“雇用”テーブル３３の行にアクセスしていたＵＳＥＲ＿ＴＡＧ  ´Ａ´をもつ使用者のクラスを、ＴＡＧ  ´Ｕ´をもつ行だけに制限しようとする場合には、網管理者が“保安”テーブル３４を修正して使用者タグＡに指定されている保安タグから削除すればよいだけのことである。これはＳＱＬ  ＤＥＬＥＴＥ  ＦＲＯＭテーブル（削除）コマンドを用いて実行することができる。すなわち：
ＤＥＬＥＴＥ  ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ＝´Ａ´  
ＡＮＤ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ＝´Ｖ´；
こうして、図８に示すように“保安”テーブル３４の第２行が削除され、使用者ＳＭＩＴＨから“ＴＡＧ”´Ｖ´をもつ“雇用”テーブル６の第２行へのマッピング経路が除去される。
【００６１】
ＵＳＥＲ＿ＴＡＧ´Ｂ´をもつ使用者のクラスにアクセスできる雇用テーブル３３の量を拡張するために、例えばＲＯＷ＿ＴＡＧ´Ｖ´又はＲＯＷ＿ＴＡＧ´Ｘ´をもつ行にアクセスできるようにするためには、ＳＱＬコマンドＩＮＳＥＲＴ  ＩＮＴＯ（挿入）テーブルを用いる。すなわち：
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｖ´，´Ｂ´）；  
ＩＮＳＥＲＴ  ＩＮＴＯ  ＳＥＣＵＲＩＴＹ  
ＶＡＬＵＥＳ（´Ｘ´，´Ｂ´）；
これにより、図８に破線で示したように、使用者テーブルから“雇用”テーブルへのさらに２つのマッピング経路が用意されることになる。
【００６２】
あるデータベース保安システムでは、ある使用者のクラスによってデータベース内のデータが更新されるのを妨げることが望ましい。これをする１つの方法は“雇用”テーブル３３への展望（ビュー）を創製することであり、これは、チェックオプションを用意して使用者がデータベースの後で情報を消去することができない部分に入力を挿入することができないようにするという意味で保安に適っている。データの挿入又は更新は、ＳＱＬ“ＷＨＥＲＥ”ステートメントが満たされているときに限り許される。例えば：
ＣＲＥＡＴＥ  ＶＩＥＷ  ＳＥＣＵＲＥ  ＥＭＰＬＯＹ＿２  ＡＳ  
ＳＥＬＥＣＴ* 
ＦＲＯＭ  ＥＭＰＬＯＹ  
ＷＨＥＲＥ  ＥＭＰＬＯＹ．ＲＯＷ＿ＴＡＧ  ＩＮ  
（  
ＳＥＳＬＥＣＴ  ＳＥＣＵＲＩＴＹ．ＲＯＷ＿ＴＡＧ  
ＦＲＯＭ  ＳＥＣＵＲＩＴＹ  
ＷＨＥＲＥ  ＳＥＣＵＲＩＴＹ．ＵＳＥＲ＿ＴＡＧ  ＩＮ  
（  
ＳＥＬＥＣＴ  ＵＳＥＲ．ＵＳＥＲ＿ＴＡＧ  
ＦＲＯＭ  ＵＳＥＲ  
ＷＨＥＲＥ  ＵＳＥＲ．ＵＳＥＲ＿ＮＡＭＥ＝ＵＳＥＲＮＡＭＥ  
）  
）  
ＷＩＴＨ  ＣＨＥＣＫ  ＯＰＴＩＯＮ
第１の記述した実施例では、データベースに含まれる情報は被雇用者についてのもの、すなわち人事データベースであった。他の形式の情報も記憶できる。
【００６３】
図１０はこの発明によるシステム１を示し、網マネージャ内で使用される。このシステムでは、データベースは電気通信網１００上の構成管理情報のような情報が含まれ、網は多数の網素子１０１ないし１０３とその素子マネージャ１０４ないし１０６とで構成される。システム１の使用者、すなわち網１００の動作と制御に関係する網マネージャなどは、前述と同じやり方でデータベースのいろいろな部分にアクセスできる。
【図面の簡単な説明】
【００６４】
【図１】図１はこの発明の実施例により動作するデータベースシステムのハードウェアを模式図形式で示す。
【図２】図２はデータベースシステムによって支持されている１組のデータベース勘定口座を示す。
【図３】図３はデータベースシステムのソフトウェア概要を示す。
【図４】図４はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図５】図５はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図６】図６はデータベースシステムで使用されるテーブルを模式図型式で示す。
【図７】図７はデータベースシステムの動作の説明図である。
【図８】図８はデータベースシステムで実行されるマッピング動作の説明図である。
【図９】図９はマッピング動作における段階を示す別な説明図である。
【図１０】図１０は網管理応用で使用されているデータベースシステムを模式図で示す。