(57)【特許請求の範囲】
【請求項１】
それぞれ情報処理装置によって構成される複数のクライアント、セキュリティサーバ及びデータベースサーバを有するシステムにおけるデータベースのセキュリティ管理方法であって、
前記クライアントは、特定のユーザについてアクセス可能なデータベース、データベース中の表又は表中の列のいずれかを照会するための照会要求を前記セキュリティサーバへ送信し、
前記セキュリティサーバは、該照会要求の入力に応答し、記憶手段中のテーブルを参照してアクセス可能なデータベース名、表名又は列名を前記クライアントへ送信し、
前記クライアントは、前記送られた前記データベースサーバにアクセス可能なデータベース名、表名又は列名の範囲内で検索要求を生成して前記データベースサーバへ送信し、
前記データベースサーバは、前記送られた検索要求に基づいて検索を行い、検索結果を前記クライアントへ送信し、
前記クライアントは、前記送られた検索結果を表示装置上に表示することを特徴とするデータベースのセキュリティ管理方法。
【請求項２】
前記セキュリティサーバは、各ユーザのユーザＩＤとパスワードに対応してそれぞれユーザＩＤ別名とパスワード別名を記憶手段中のログオンテーブルに登録し、前記クライアントからのユーザＩＤ別名とパスワード別名を伴うログオン要求に応答して該ログオンテーブルに基づいてユーザＩＤ別名とパスワード別名のチェックを行い、正当なログオンであれば対応するユーザＩＤとパスワードとを該クライアントへ送信し、
前記クライアントは、前記データベースサーバへ該ユーザＩＤとパスワードとを伴うログオン要求を行うことを特徴とする請求項１記載のデータベースのセキュリティ管理方法。
【請求項３】
それぞれ情報処理装置によって構成される複数のクライアント、セキュリティサーバ及びデータベースサーバを有するデータベースのセキュリティ管理システムであって、
前記クライアントは、特定のユーザについてアクセス可能なデータベース、データベース中の表又は表中の列のいずれかを照会するための照会要求を前記セキュリティサーバへ送信する手段と、前記セキュリティサーバから受信した前記データベースサーバにアクセス可能なデータベース名、表名又は列名の範囲内で検索要求を生成して前記データベースサーバへ送信する手段と、前記データベースサーバから受信した検索結果を表示装置上に表示する手段とを有し、
前記セキュリティサーバは、前記照会要求の入力に応答し、記憶手段中のテーブルを参照してアクセス可能なデータベース名、表名又は列名を前記クライアントへ送信する手段を有し、
前記データベースサーバは、前記クライアントから受信した検索要求に基づいて検索を行い、検索結果を前記クライアントへ送信する手段を有することを特徴とするデータベースのセキュリティ管理システム。
【請求項４】
前記セキュリティサーバは、さらに、各ユーザのユーザＩＤとパスワードに対応してそれぞれユーザＩＤ別名とパスワード別名を記憶手段中のログオンテーブルに登録し、前記クライアントからのユーザＩＤ別名とパスワード別名を伴うログオン要求に応答して該ログオンテーブルに基づいてユーザＩＤ別名とパスワード別名のチェックを行い、正当なログオンであれば対応するユーザＩＤとパスワードとを該クライアントへ送信する手段を有し、
前記クライアントは、さらに、前記データベースサーバへ該ユーザＩＤとパスワードとを伴うログオン要求を行う手段を有することを特徴とする請求項３記載のデータベースのセキュリティ管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースのセキュリティ管理方法に係わり、特にクライアントサーバシステムでクライアントからサーバのデータベースをアクセスするときのセキュリティ管理に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータ等の情報処理装置によって構成されるクライアントからワークステーション、メインフレーム等の情報処理装置によって構成されるサーバのデータベースにアクセスし、クライアントが取得したデータを加工し編集するいわゆるクライアントサーバシステム（ＣＳＳ）が知られている。ＣＳＳではあらかじめ登録されたユーザにのみデータベースのアクセスを許可するために、サーバのデータベース管理システム又はアプリケーションプログラムがデータベースのセキュリティ管理を行っている。しかしながらデータベース管理システム又はサーバのアプリケーションプログラムの間で必ずしもセキュリティ仕様が統一されてなく、システム又はプログラムによってサポートする機能が相違する。例えばリレーショナル型のデータベースについて、あるデータベース管理システムでは表中の列ごとにユーザにアクセス権を設定することが可能であるが、別のデータベース管理システムでは列ごとにアクセス権を設定することができない。
【０００３】
【発明が解決しようとする課題】
上記従来技術によれば、データベースのセキュリティ管理は、サーバ側のデータベース管理システム及びアプリケーションプログラムに依存しているため、クライアント側では各データベース管理システム及びアプリケーションプログラムのセキュリティ仕様を理解し、各々のセキュリティ仕様に応じて対応しなければならないという面倒がある。またデータベースによってはデータベース中の表、表中の列、さらに列中のデータに至るまできめ細かいセキュリティ管理ができないという問題があった。
【０００４】
本発明の目的は、データベースを管理するサーバ側でなくクライアント側に統一した仕様をもつセキュリティ管理システムを構築して上記問題を解決することにある。
【０００５】
本発明の他の目的は、データベースの表中の列の個々のデータに至るまでのアクセス権を設定できるきめ細かなセキュリティ管理を可能とすることにある。
【０００６】
本発明のさらに他の目的は、不当に入手したログオン情報を使ってデータベースサーバにアクセスする操作を防止することにある。
【０００７】
【課題を解決するための手段】
本発明は、クライアントとデータベースサーバの他にセキュリティサーバを設け、クライアントからセキュリティサーバへ特定のユーザについてアクセス可能なデータベース、データベース中の表又は表中の列のいずれかを照会し、セキュリティサーバによってセキュリティ情報テーブルを参照してアクセス可能なデータベース名、表名又は列名をクライアントに通知し、クライアントからデータベースサーバへアクセス可能なデータベース、表又は列の範囲内の検索要求を送信するセキュリティ管理方法を特徴とする。なおセキュリティ情報テーブルにアクセス可能な列に対応して列中の非公開とするデータ自体を設定すれば、アクセス可能な列名とともに非公開なデータをクライアントに通知し、データベースサーバから受けた検索結果のうち非公開データの表示を抑止することが可能である。
【０００８】
さらにクライアントがセキュリティサーバ及びデータベースサーバにログオンするときに使用するユーザＩＤとパスワードについて、データベースサーバにログオンするときの正規のユーザＩＤとパスワードに対応してそれぞれユーザＩＤ別名とパスワード別名とを設定し、ユーザがユーザＩＤ別名とパスワード別名だけで両サーバにログオンできるようにすれば、正規のユーザＩＤとパスワードが漏洩するのを防止できる。
【０００９】
【発明の実施の形態】
以下本発明の実施形態について図面を用いて説明する。
【００１０】
図１は、本実施形態のクライアントサーバシステムの構成図である。システムはクライアント１０、データベースサーバ２０及びセキュリティサーバ３０から構成される。クライアント１０は、処理装置１９及びこの処理装置１９に接続される表示装置１１、入力装置１２から構成される情報処理装置である。処理装置１９の主記憶装置にはユーザインターフェース部１３、アプリケーションプログラム（ＡＰ）１４、アプリケーションプログラム（ＡＰ）１５、セキュリティ情報取得部１６及び接続要求処理部１７の各プログラムが格納され、処理装置１９によって実行される。通信制御部１８は、通信回線４０，５０を介してデータベースサーバ２０及びセキュリティサーバ３０との通信を制御するハードウェア及びプログラムである。セキュリティ情報取得部１６は、通信制御部１８を介してセキュリティサーバ３０にセキュリティ情報を要求し取得する処理部である。接続要求処理部１７は、通信制御部１８を介してデータベースサーバ２０と論理的な接続を要求する処理部である。表示装置１１はデータベース検索の対象とする表及び列を表示し、検索結果を表示する装置である。入力装置１２はログオン時にユーザＩＤとパスワードを入力し、検索の対象とする表及び列を指示し、検索条件を入力するキーボード、マウス等の装置である。ユーザインターフェース部１３は、ＡＰ１４及びＡＰ１５と表示装置１１及び入力装置１２との間に介在し、表示装置１１及び入力装置１２を制御するオペレーティングシステム、ウィンドウシステム等の制御プログラムである。ＡＰ１４は入力装置１２からの指示に従ってセキュリティサーバ３０へセキュリティ情報の照会を行ってその結果を表示装置１１上に表示し、選択されたデータベースの表または列についてデータベースサーバ２０へ検索要求を送信し、受け取った検索結果を表示装置１１上に表示する。ＡＰ１５も入力装置１２からの指示に従ってデータベースサーバ２０へデータベースの検索要求を送信し、受け取った検索結果を表示装置１１上に表示するが、セキュリティ情報取得部１６によるセキュリティ情報の照会を行わない。なおセキュリティ情報取得部１６は、セキュリティサーバ３０に対してログオン要求をするための接続要求処理を行うものとする。ＡＰ１４とセキュリティ情報取得部１６とは、これらの間の特別なアプリケーションプログラム・インタフェース（ＡＰＩ）に基づいて情報の受け渡しをする。なお一般にクライアント１０は複数台存在する。
【００１１】
データベースサーバ２０は、処理装置２９及びこの処理装置２９に接続される記憶装置から構成される情報処理装置であり、この記憶装置上にはログオンテーブル２１及びデータベース２２を格納する。処理装置２９の主記憶装置にはログオン管理部２３及びデータベース管理部２４の各プログラムが格納され、処理装置２９によって実行される。通信制御部２５は、通信回線４０を介してクライアント１０との通信を制御するハードウェア及びプログラムである。ログオンテーブル２１はデータベースサーバ２０にアクセス可能なユーザＩＤと対応するパスワードとを登録するテーブルである。データベース２２はリレーショナル型のデータベースであり、複数のデータベースを格納する。また各データベースは複数の表から構成される。ログオン管理部２３は、ログオンテーブル２１を参照して接続要求のあったユーザのユーザＩＤとパスワードをチェックする。データベース管理部２４は、データベース２２を参照して要求されたデータベースの指定された表及び列について検索し、通信制御部２５を介して検索結果をクライアント１０へ送信する。また要求によってデータベース２２上のデータを更新・追加・削除する。
【００１２】
セキュリティサーバ３０は、処理装置３９及びこの処理装置３９に接続される記憶装置から構成される情報処理装置であり、この記憶装置上にはログオンテーブル３１及びセキュリティ情報テーブル３２を格納する。処理装置３９の主記憶装置にはログオン管理部３３及びセキュリティ情報管理部３４の各プログラムが格納され、処理装置３９によって実行される。通信制御部３５は、通信回線５０を介してクライアント１０との通信を制御するハードウェア及びプログラムである。ログオンテーブル３１はセキュリティサーバ３０にアクセス可能なユーザＩＤと対応するパスワードを登録するテーブルであるが、ユーザＩＤ及びパスワードの別名も登録する。セキュリティ情報テーブル３２は、各ユーザ又はユーザグループがアクセス可能なデータベース名、表名および列名を設定する。ログオン管理部３３は、ログオンテーブル３１を参照してログオン要求のあったユーザのユーザＩＤ別名とパスワード別名をチェックし、正当であればユーザＩＤとパスワードの別名を正規のユーザＩＤとパスワードに変換してクライアント１０へ送る。セキュリティ情報管理部３４は、クライアント１０からのセキュリティ情報要求に応答し、セキュリティ情報テーブル３２を参照して要求されたユーザがアクセス可能なデータベース名、表名及び列名をクライアント１０へ送信する。
【００１３】
図２は、ログオンテーブル３１のデータ形式を示す図である。グループＩＤ６１はユーザのグループに付けられた識別子、ユーザＩＤ６２はデータベースサーバ２０にログオンするときに使用されるユーザの識別子、ユーザＩＤ別名６３はユーザＩＤ６２に対応しセキュリティサーバ３０にログオンするときに使用されるユーザ識別子、パスワード６４はデータベースサーバ２０にログオンするときに使用されるユーザ対応のパスワード、パスワード別名６５はパスワード６４に対応しセキュリティサーバ３０にログオンするときに使用されるパスワードである。ログオンテーブル２１のデータ形式は、グループＩＤ６１、ユーザＩＤ６２及びパスワード６４から構成され、ユーザＩＤ別名６３及びパスワード別名６５がない。ログオンテーブル３１は図示しないプログラムによって記憶装置中に登録される。
【００１４】
図３は、セキュリティ情報テーブル３２のデータ形式を示す図である。ユーザＩＤまたはグループＩＤ７１は、ログオンテーブル３１のグループＩＤ６１又はユーザＩＤ６２に同じである。接続先データベース７２は、データベース２２内の接続対象となるデータベースの名称である。表名７３は当該データベース内の表の名称、表のアクセス権７４は当該表についてユーザに対するアクセス権を示す。ｓは参照、ｕは更新、ｄは削除、ｉは追加を許可することを示し、Ｎは許可しないことを示す。列名７５は当該表内の列の名称、列のアクセス権７６は当該列についてユーザに対するアクセス権を示す。非公開データ名７７は、当該列について格納されるデータのうち非公開とするデータ実体を示す。接続先データベース７２、表名７３又は列名７５の名称にユーザに親しみ易い別名も設け、表示装置１１上には別名で表示し、データベースサーバ２０への検索条件として正規の接続先データベース７２、表名７３または列名７５を使用するようにしてもよい。なお図３の例によれば、ユーザをグループ化することによってセキュリティ情報テーブル３２のエントリ数を削減できることが理解される。セキュリティ情報テーブル３２は、図示しないプログラムによって記憶装置中に登録される。
【００１５】
クライアント１０の入力装置１２からユーザＩＤ別名６３及びパスワード別名６５が入力されてセキュリティサーバ３０へログオン要求されると、このログオン要求はユーザインターフェース部１３及びＡＰ１４を介してセキュリティ情報取得部１６に渡され、セキュリティ情報取得部１６は通信制御部１８及び通信回線５０を介してこの要求をセキュリティサーバ３０へ送信する。セキュリティサーバ３０のログオン管理部３３は、通信制御部３５を介してこの要求を受け取り、ログオンテーブル３１を参照して受信したユーザＩＤ別名６３及びパスワード別名６５がログオンテーブル３１内のユーザＩＤ別名６３と対応するパスワード別名６５に一致するか否かを判定する。一致すれば要求のあったＡＰ１４とセキュリティ情報管理部３４との接続を許可し、応答として対応するグループＩＤ６１、ユーザＩＤ６２及びパスワード６４をＡＰ１４に返す。
【００１６】
図４は、ログオン手続きが終了し、ＡＰ１４とセキュリティ情報管理部３４が接続された後のセキュリティ情報管理部３４の処理の流れを示すフローチャートである。入力装置１２から接続先データベース７２を指定して接続先を照会する要求が入力されると、この要求はユーザインターフェース部１３及びＡＰ１４を介してセキュリティ情報取得部１６に渡され、セキュリティ情報取得部１６はこの要求をユーザＩＤ６２又はグループＩＤ６１とともにセキュリティサーバ３０へ送信する。セキュリティ情報管理部３４はこの要求を受け取り（ステップ５１）、接続先照会と認識するので、セキュリティ情報テーブル３２を参照して指定されたユーザＩＤまたはグループＩＤ７１に対応する接続先データベース７２をすべて取得する（ステップ５２）。次に照会のあった接続先データベース７２が取得した接続先データベース７２に含まれていれば接続可と判断し（ステップ５３ＹＥＳ）、セキュリティ情報取得部１６を介してＡＰ１４へ接続可を通知する（ステップ５４）。照会のあった接続先データベース７２が取得した接続先データベース７２に含まれていなければ接続不可と判断し（ステップ５３ＮＯ）、ＡＰ１４へ接続不可を通知する（ステップ５５）。ＡＰ１４は受信した接続可又は接続不可を示す情報を表示装置１１上に表示する。接続可の場合、入力装置１２からその接続先データベース７２について表一覧を照会する要求が入力されると、この要求はＡＰ１４を介してセキュリティ情報取得部１６に渡され、セキュリティ情報取得部１６はユーザＩＤ６２又はグループＩＤ６１及び接続先データベース７２を指定して表一覧取得要求をセキュリティサーバ３０へ送信する。セキュリティ情報管理部３４はこの要求を受け取り（ステップ５１）、表一覧要求と認識するので、セキュリティ情報テーブル３２を参照して指定されたユーザＩＤまたはグループＩＤ７１と接続先データベース７２に対応する表名７３及び表のアクセス権７４を取得し（ステップ５６）、アクセスが許可されている表名７３のみを一覧表の形式にしてＡＰ１４へ送信する（ステップ５７）。ＡＰ１４は受信した表名７３とアクセス権７４の一覧表を表示装置１１上に表示する。入力装置１２から表名を指定して列一覧を照会する要求が入力されると、この要求はＡＰ１４を介してセキュリティ情報取得部１６に渡され、セキュリティ情報取得部１６はユーザＩＤ６２又はグループＩＤ６１及び表名７３を指定して列一覧取得要求をセキュリティサーバ３０へ送信する。セキュリティ情報管理部３４はこの要求を受け取り（ステップ５１）、列一覧要求と認識するので、セキュリティ情報テーブル３２を参照して指定されたユーザＩＤまたはグループＩＤ７１と表名７３に対応する列名７５、列のアクセス権７６及び非公開データ名７７を取得し（ステップ５８）、アクセスが許可されている列名７５のみについてその列のアクセス権７６及び非公開データ名７７を一覧表の形式にしてＡＰ１４へ送信する（ステップ５９）。ＡＰ１４は受信した列名７５及び列のアクセス権７６の一覧表を表示装置１１上に表示する。非公開データ名７７は表示せず、主記憶装置上に保存する。
【００１７】
次にＡＰ１４は取得したユーザＩＤ６２及びパスワード６４を含むログオン要求を接続要求処理部１７に渡す。接続要求処理部１７は、通信制御部１８及び通信回線４０を介してこの要求をデータベースサーバ２０へ送信する。データベースサーバ２０のログオン管理部２３は、通信制御部２５を介してこの要求を受け取り、ログオンテーブル２１を参照して受信したユーザＩＤ６２及びパスワード６４がログオンテーブル２１内のユーザＩＤ６２と対応するパスワード６４に一致するか否かを判定する。一致すれば要求のあったＡＰ１４とデータベース管理部２４との接続を許可する。ログオン手続きが終了し、ＡＰ１４とデータベース管理部２４が接続された後、入力装置１２からデータベースの検索条件を入力することが可能となる。ＡＰ１４はアクセス許可されている接続先データベース７２と表名７３又は接続先データベース７２、表名７３及び列名７５が入力装置１２を介して指定されて検索条件が入力されたとき、指定された検索条件を含む検索要求をデータベース管理部２４へ送信する。データベース管理部２４はデータベース２２を検索して取得した検索結果をＡＰ１４へ送信する。ＡＰ１４は検索結果を表示装置１１上に表示する。ただし非公開データ名７７が付いている列については、検索結果と非公開データ名７７とを照合し、非公開データを表示装置１１上に表示しない。ＡＰ１４はアクセスが許可されている表名７３及び列名７５のみを検索条件として許可し、表のアクセス権７４及び列のアクセス権７６によって許可されている操作のみをユーザに許可する。なおユーザがすでにアクセス可能な接続先データベース７２を知っていれば、接続先データベース７２を指定する表一覧要求から開始してよい。またユーザがアクセス可能な接続先データベース７２及び表名７３を知っていれば、接続先データベース７２と表名７３を指定する列一覧要求から開始してよい。またユーザがアクセス可能な接続先データベース７２を知らない場合も考慮するならば、アクセス可能なデータベース一覧を照会するようにしてもよい。またセキュリティ情報テーブル３２上に接続先データベース７２、表名７３又は列名７５の別名が設定されている場合には、セキュリティ情報管理部３４はＡＰ１４へ正規の名称と別名とをともに送信する。ＡＰ１４は表示装置１１へは別名で表示し、データベースサーバ２０へ検索要求するときは、検索条件中の別名を正規の名称に変換し正規の名称によって表現する。
【００１８】
なおログオン管理部３３およびセキュリティ情報管理部３４からＡＰ１４へ送られる情報は、ユーザＩＤ６２、パスワード６４、非公開データ名７７等ユーザに公開しない情報を含むので、これらの情報が処理装置１９の主記憶装置上に残ると主記憶ダンプによって実質的に公開となる恐れがある。このような危険を防止するために、ログオン管理部３３およびセキュリティ情報管理部３４からＡＰ１４へ送る情報のうち少なくとも公開しない情報を暗号化して送信することができる。ＡＰ１４は暗号化された情報を復号するとき復号された情報が主記憶上に残らないように適当なタイミングで消去する。もちろん情報を暗号化しなくても主記憶上の公開しない情報の消去は可能であるが、暗号化すればより確実に情報を隠蔽することができる。
【００１９】
上記のようにしてクライアント１０とセキュリティサーバ３０との間でセキュリティ管理システムが構築されれば、データベースサーバ２０のデータベース管理部２４又はアプリケーションプログラムが用意するセキュリティ管理はデータベース単位程度の大雑把な単位の管理でよいことになる。またＡＰ１５のユーザに対してはセキュリティ情報テーブル３２によってセキュリティ管理するデータベースに応じてアクセス可能なデータベースを制限することができる。
【００２０】
本実施形態によれば、クライアント１０がセキュリティサーバ３０と通信することによってアクセス可能な表一覧及び列一覧の情報を取得できるので、従来のように一覧情報を取得するためにデータベースサーバ２０にアクセスする必要がなくなり、クライアント１０がデータベースサーバ２０と通信する時間を削減し、データベースサーバ２０へのアクセス集中を緩和することができる。また本実施形態によれば、ＡＰ１４を利用するユーザはログオン情報としてユーザＩＤ別名６３及びパスワード別名６５を使用し、対応するユーザＩＤ６２及びパスワード６４を知らないので、ＡＰ１５を利用する他のユーザが他人のユーザＩＤ別名６３及びパスワード別名６５を知ったとしてもデータベースサーバ２０にログオンすることはできない。またＡＰ１４とセキュリティ情報取得部１６との間のＡＰＩは特別なＡＰＩなので、このＡＰＩを適用しない他のＡＰ１５はセキュリティサーバ３０にログオンできず、従ってセキュリティ情報テーブル３２にアクセスすることができず、データベース２２の徹底したセキュリティ管理を行うことができる。なお特定のグループごとにそれぞれ専用のセキュリティサーバ３０を設ければ、管理する対象のユーザをそれぞれのセキュリティサーバ３０に分割でき、各々のログオンテーブル３１及びセキュリティ情報テーブル３２の情報量も削減され、よりきめ細かいセキュリティ管理が可能となる。
また本実施形態によれば、セキュリティサーバを設けて主としてクライアントとセキュリティサーバの側でセキュリティ管理を行うので、少なくとも特定のグループに属するユーザの間で統一した仕様をもつセキュリティ管理を行うことができる。またデータベースの表中の列の個々のデータに至るまでのアクセス権を設定でき、きめ細かなセキュリティ管理が可能である。さらにデータベースサーバにログオンするときに、ユーザの不注意によってログオン情報が漏洩するのを防止することができる。
【００２１】
【発明の効果】
本発明によれば、特定のグループに属するユーザの間で統一した仕様をもつセキュリティ管理を行うことができる。
【図面の簡単な説明】
【図１】実施形態のクライアントサーバシステムの構成図である。
【図２】実施形態のログオンテーブル３１のデータ形式を示す図である。
【図３】実施形態のセキュリティ情報テーブル３２のデータ形式を示す図である。
【図４】実施形態のセキュリティ情報管理部３４の処理の流れを示すフローチャートである。
【符号の説明】
１６：セキュリティ情報取得部、３１：ログオンテーブル、３２：セキュリティ情報テーブル、３４：セキュリティ情報管理部、６３：ユーザＩＤ別名、６５：パスワード別名、７２：接続先データベース、７３：表名、７５：列名、７７：非公開データ名
【図１】
0003698851.tif 000002
【図２】
0003698851.tif 000003
【図３】
0003698851.tif 000004
【図４】
0003698851.tif 000005