JP6826929B2 - アクセス制御装置及びアクセス制御プログラム - Google Patents
アクセス制御装置及びアクセス制御プログラム Download PDFInfo
- Publication number
- JP6826929B2 JP6826929B2 JP2017059855A JP2017059855A JP6826929B2 JP 6826929 B2 JP6826929 B2 JP 6826929B2 JP 2017059855 A JP2017059855 A JP 2017059855A JP 2017059855 A JP2017059855 A JP 2017059855A JP 6826929 B2 JP6826929 B2 JP 6826929B2
- Authority
- JP
- Japan
- Prior art keywords
- access control
- name
- column
- sql
- mask pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
SQL文を含む要求であって、データベース装置に対する前記SQL文の実行の要求であるSQL実行要求を送信するクライアント装置から、前記SQL実行要求を受信する受信部と、
テーブル名と、前記テーブル名のテーブルにおいてアクセス制御すべき列の名称である列名と、前記列名を書き換える場合の書き換え用データであり、書き換えに対する前記データベース装置の応答が判明している書き換え用データであるマスクパターンとの組を含むアクセス制御情報を参照することにより、前記SQL文に前記テーブル名及び前記列名が含まれているか判定する判定部と、
前記SQL文に前記テーブル名及び前記列名が含まれると前記判定部が判定した場合に、前記SQL文の前記列名を前記マスクパターンに書き換えて前記列名が前記マスクパターンに書き換えられた書き換えSQL文を前記データベース装置に送信する書き換え部と、
前記書き換えSQL文に対する実行結果を示す書き換えSQL実行結果を前記データベース装置から受信し、前記書き換えSQL実行結果を前記クライアント装置へ送信する結果送信部と、
を備える。
前記データベース装置の判明している応答が、固定値を返す応答となる第1のマスクパターンと、
前記データベース装置の判明している応答が、ランダム値を返す応答となる第2のマスクパターンと、
前記データベース装置の判明している応答が、前記列名の値の一部を変更して返す応答となる第3のマスクパターンと、
のいずれかである。
コンピュータに、
SQL文を含む要求であって、データベース装置に対する前記SQL文の実行の要求であるSQL実行要求を送信するクライアント装置から、前記SQL実行要求を受信する受信処理と、
テーブル名と、前記テーブル名のテーブルにおいてアクセス制御すべき列の名称である列名と、前記列名を書き換える場合の書き換え用データであり、書き換えに対する前記データベース装置の応答が判明している書き換え用データであるマスクパターンとの組を含むアクセス制御情報を参照することにより、前記SQL文に前記テーブル名及び前記列名が含まれているか判定する判定処理と、
前記SQL文に前記テーブル名及び前記列名が含まれると前記判定処理で判定された場合に、前記SQL文の前記列名を前記マスクパターンに書き換えて前記列名が前記マスクパターンに書き換えられた書き換えSQL文を前記データベース装置に送信する書き換え処理と、
前記書き換えSQL文に対する実行結果を示す書き換えSQL実行結果を前記データベース装置から受信し、前記書き換えSQL実行結果を前記クライアント装置へ送信する結果送信処理と、
を実行させる。
図1〜図8を参照して実施の形態1のアクセス制御システム1000を説明する。
図1は、実施の形態1のアクセス制御システム1000の構成図である。アクセス制御システム1000は、アクセス制御装置100と、データベース装置200と、クライアント装置300とを備えている。アクセス制御装置100は後述するアクセス制御情報テーブル121を有する。図1において、データベース装置200とアクセス制御装置100の間、アクセス制御装置100とクライアント装置300の間の通信には、例えばJDBC(登録商標)のような汎用的なAPI(Application Programming Interface)が用いられる。クライアント装置300からは、アクセス制御装置100が「列単位アクセス制御機能を備えたデータベース」のように見える。クライアント装置300からデータベース装置200への直接アクセスは、ファイアウォールで防止する。アクセス制御を行う列名、アクセス制御方式などの情報は、アクセス制御情報テーブル121に格納する。
図2は、アクセス制御装置100で可能なアクセス制御方式を示す図である。図2の左列はアクセス制御方式を示し、中央の列はアクセス制御方式の説明であり、右列はデータベース装置200から返される値の例である。図2に示すように、アクセス制御装置100は、アクセス制御方式0からアクセス制御方式4までの5つのアクセス制御方式を有する。
(1)アクセス制御方式0は、アクセス制御無しの場合でありデータベース装置200からは、列の値がそのまま返される。
(2)アクセス制御方式1は、列の値を固定値に変更して返す方式である。アクセス制御装置100がSQL文の列名を、データベース装置200が固定値を返すマスクパターンに書き換えることで、データベース装置200は列の値を固定値に変更して返す。
(3)アクセス制御方式2は、列の値をランダム値に変更して返す方式である。アクセス制御装置100がSQL文の列名を、データベース装置200がランダム値を返すマスクパターンに書き換えることで、データベース装置200は列の値をランダム値に変更して返す。
(4)アクセス制御方式3は、列の値を一部変更して返す方式である。一部変更は固定値でもよいしランダム値でもよい。アクセス制御装置100がSQL文の列名を、データベース装置200が列の値を一部変更して返すマスクパターンに書き換えることで、データベース装置200は列の値を一部ランダム値あるいは一部固定値に変更して返す。
(5)アクセス制御方式4は、SQL実行を拒否する方式である。アクセス制御装置100は、SQL文に該当する列名が存在する場合、SQLの実行を拒否する。
(6)マスクパターンとは、SQL文の列名を書き換える場合の書き換え用データであり、書き換えに対するデータベース装置200の応答が判明している書き換え用データである。「データベース装置200の応答が判明している」とは、アクセス制御方式1であれば、そのマスクパターンに書き換えることで、データベース装置200は列の値を固定値に変更して返すことが判明していることを意味する。また、アクセス制御方式2であれば、そのマスクパターンに書き換えることで、データベース装置200は列の値をランダム値に変更して返すことが判明していることを意味する。また、アクセス制御方式3であれば、そのマスクパターンに書き換えることで、データベース装置200は列の値の一部を変更して返すことが判明していることを意味する。
図4は、アクセス制御システム1000の動作を示すフローチャートである。
図5は、アクセス制御装置100の動作を示すフローチャートである。図5は図4のステップS15からステップS16aまでのアクセス制御装置100の動作を示す。
(1)ステップS11からステップS14は、クライアント装置300がデータベース装置200に接続するステップである。
(2)ステップS15において、クライアント装置300が、SQL文301を含むSQL実行要求310を送信する。
(3)ステップS16において、アクセス制御装置100が、SQL実行要求310に含まれるSQL文301を検査し、SQL文301がアクセス制御の必要な列名を含む場合は、SQL実行を拒否するか(ステップS16b)、または、マスキング用のSQL文に書き換える(ステップS16a)。
図6は、アクセス制御情報テーブル121を示す。アクセス制御情報テーブル121には、アクセス制御情報121−1等が登録されている。図6では、アクセス制御情報121−1からアクセス制御情報121−4の4つが登録されている。特に区別の必要がない場合は、アクセス制御情報121−kと記す。アクセス制御情報121−kは、テーブル名121bと、テーブル名121bのテーブルにおいてアクセス制御すべき列の名称である列名121cと、列名121cを書き換える場合の書き換え用データであり、書き換えに対するデータベース装置200の応答が判明している書き換え用データであるマスクパターン121eとの組を含む。また、アクセス制御情報121−kは、接続ユーザ名121a及びアクセス制御方式121dを含む。判定部112は、connect時に使用された接続ユーザ名によって接続ユーザ名121aを認識可能である。アクセス制御方式121dは図2で述べたものである。アクセス制御情報テーブル121のアクセス制御情報121−kは、connect時(ステップS11〜ステップS14)に使用する接続ユーザ名ごとに設定される。テーブル名121bが設定されていないテーブルへのアクセスは「その他全て」として設定し、図6ではSQL実行は拒否する。
(1)第1のマスクパターンでは、データベース装置200の判明している応答が、固定値を返す応答となる。第1のマスクパターンは図2の<アクセス制御方式1>の場合のマスクパターンである。
(2)第2のマスクパターンでは、データベース装置200の判明している応答が、ランダム値を返す応答となる。第2のマスクパターンは図2の<アクセス制御方式2>の場合のマスクパターンである。
(3)第3のマスクパターンでは、データベース装置200の判明している応答が、列名の値の一部を変更して返す応答となる。第3のマスクパターンは図2の<アクセス制御方式3>の場合のマスクパターンである。
(4)図6では、アクセス制御情報121−3のマスクパターン121e=「999999999」が、図6に示すように第1のマスクパターンに該当し、アクセス制御情報121−2のマスクパターン121e=「XXX???」が、第3のマスクパターンに該当する。なお、図6では第2のマスクパターンは示していない。
(1)アクセス制御装置100によって、クライアント装置300がデータベース装置200におけるテーブルの列の値を取得する場合に、クライアント装置300及びデータベース装置200の修正が不要であり、かつ、クライアント装置300が列の値を取得する際のアクセス制御が可能な装置を提供できる。
(2)また、アクセス制御装置100は、第1のマスクパターンから第3のマスクパターンの3種類を使用するが、システム試験の際には、列の値に代替する代替値を変化させたい場合がある。この場合、アクセス制御装置100では、第2のマスクパターンあるいは第3のマスクパターンを使用することで、列の実際の値を秘匿した上で、列の値に代替する代替値を変化させることができる。このため、システム試験を効率的に行うことができる。
(3)また、コンピュータにアクセス制御装置100の動作を実行させるアクセス制御プログラムを、データベース装置200のプログラムにアドオンとして追加することができる。これにより、データベース装置200に簡易に、列単位のアクセス制御機能を追加することができる。
Claims (3)
- SQL文を含む要求であって、データベース装置に対する前記SQL文の実行の要求であるSQL実行要求を送信するクライアント装置から、前記SQL実行要求を受信する受信部と、
テーブル名と、前記テーブル名のテーブルにおいてアクセス制御すべき列の名称である列名と、前記列名を書き換える場合の書き換え用データであり、書き換えに対する前記データベース装置の応答が判明している書き換え用データであるマスクパターンとの組を含むアクセス制御情報を参照することにより、前記受信部が前記クライアント装置から受信した前記SQL文に前記テーブル名及び前記列名が含まれているか判定する判定部と、
前記クライアント装置から受信したSQL文に前記テーブル名及び前記列名が含まれると前記判定部が判定した場合に、前記クライアント装置から受信したSQL文の前記列名を、前記判定部が含まれると判定した前記アクセス制御情報のマスクパターンに書き換えて、前記列名が前記マスクパターンに書き換えられた書き換えSQL文を前記データベース装置に送信する書き換え部と、
前記書き換えSQL文に対する実行結果を示す書き換えSQL実行結果を前記データベース装置から受信し、前記書き換えSQL実行結果を前記クライアント装置へ送信する結果送信部と、
を備えるアクセス制御装置。 - 前記マスクパターンは、
前記データベース装置の判明している応答が、固定値を返す応答となる第1のマスクパターンと、
前記データベース装置の判明している応答が、ランダム値を返す応答となる第2のマスクパターンと、
前記データベース装置の判明している応答が、前記列名の値の一部を変更して返す応答となる第3のマスクパターンと、
のいずれかである請求項1に記載のアクセス制御装置。 - コンピュータに、
SQL文を含む要求であって、データベース装置に対する前記SQL文の実行の要求であるSQL実行要求を送信するクライアント装置から、前記SQL実行要求を受信する受信処理と、
テーブル名と、前記テーブル名のテーブルにおいてアクセス制御すべき列の名称である列名と、前記列名を書き換える場合の書き換え用データであり、書き換えに対する前記データベース装置の応答が判明している書き換え用データであるマスクパターンとの組を含むアクセス制御情報を参照することにより、前記受信処理において前記クライアント装置から受信した前記SQL文に前記テーブル名及び前記列名が含まれているか判定する判定処理と、
前記クライアント装置から受信したSQL文に前記テーブル名及び前記列名が含まれると前記判定処理で判定された場合に、前記クライアント装置から受信したSQL文の前記列名を、前記判定処理で含まれると判定された前記アクセス制御情報のマスクパターンに書き換えて前記列名が前記マスクパターンに書き換えられた書き換えSQL文を前記データベース装置に送信する書き換え処理と、
前記書き換えSQL文に対する実行結果を示す書き換えSQL実行結果を前記データベース装置から受信し、前記書き換えSQL実行結果を前記クライアント装置へ送信する結果送信処理と、
を実行させるアクセス制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017059855A JP6826929B2 (ja) | 2017-03-24 | 2017-03-24 | アクセス制御装置及びアクセス制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017059855A JP6826929B2 (ja) | 2017-03-24 | 2017-03-24 | アクセス制御装置及びアクセス制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018163490A JP2018163490A (ja) | 2018-10-18 |
JP6826929B2 true JP6826929B2 (ja) | 2021-02-10 |
Family
ID=63861088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017059855A Active JP6826929B2 (ja) | 2017-03-24 | 2017-03-24 | アクセス制御装置及びアクセス制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6826929B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7157716B2 (ja) * | 2019-08-09 | 2022-10-20 | 株式会社日立製作所 | データベースサーバ装置、サーバシステム及びリクエスト処理方法 |
CN111324631B (zh) * | 2020-03-19 | 2022-04-22 | 成都海天数联科技有限公司 | 一种将查询数据的人类自然语言自动生成sql语句的方法 |
US20230195723A1 (en) * | 2020-05-20 | 2023-06-22 | Nippon Telegraph And Telephone Corporation | Estimation apparatus, learning apparatus, estimation method, learning method and program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005165737A (ja) * | 2003-12-03 | 2005-06-23 | Hitachi Software Eng Co Ltd | データ提供システム及びデータ提供方法 |
JP5707250B2 (ja) * | 2011-06-23 | 2015-04-22 | 株式会社日立システムズ | データベースアクセス管理システム、方法、及びプログラム |
-
2017
- 2017-03-24 JP JP2017059855A patent/JP6826929B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018163490A (ja) | 2018-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6826929B2 (ja) | アクセス制御装置及びアクセス制御プログラム | |
CN110311989B (zh) | 一种灰度发布方法、装置、存储介质、设备及系统 | |
US20150180872A1 (en) | System and method for hierarchical resource permissions and role management in a multitenant environment | |
US9575873B2 (en) | Software testing system and method | |
US20140149965A1 (en) | Lightweight framework for web applications | |
CN106648556B (zh) | 前后端集成开发测试的方法及装置 | |
US9600351B2 (en) | Inversion-of-control component service models for virtual environments | |
CN107315972B (zh) | 一种大数据非结构化文件动态脱敏方法及系统 | |
US10261844B2 (en) | Generic language application programming interface interpreter | |
JP6418004B2 (ja) | イベント通知プログラム、イベント通知方法及びイベント通知装置 | |
US20150242389A1 (en) | Techniques to identify user interface elements associated with model violation events | |
AU2018395523B2 (en) | Multi-level bot architecture for data access | |
US11461503B2 (en) | Service processing method and apparatus | |
CN113495797A (zh) | 一种消息队列及消费者动态创建方法及系统 | |
US9292613B2 (en) | Generation of generic universal resource indicators | |
Seovic et al. | Oracle Coherence 3.5 | |
Lange | The little book on rest services | |
Shaw et al. | Web Development with Django: Learn to build modern web applications with a Python-based framework | |
US20180052754A1 (en) | Performance metric contextualization in a distributed computing environment | |
US12118016B2 (en) | Cascading data impact visualization tool | |
US20140297953A1 (en) | Removable Storage Device Identity and Configuration Information | |
CN112583891B (zh) | 接口文档获取方法、装置和服务器 | |
Dhall et al. | Scalability Patterns | |
CA2801730C (en) | Mobile itinerant software agent carrying itinerary and data within | |
US20200034119A1 (en) | Translating User Inputs Into Discretely Functional Styled Standalone Web and Mobile Software Features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191003 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200923 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6826929 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |