KR20190086777A - 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법 - Google Patents
공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법 Download PDFInfo
- Publication number
- KR20190086777A KR20190086777A KR1020197020090A KR20197020090A KR20190086777A KR 20190086777 A KR20190086777 A KR 20190086777A KR 1020197020090 A KR1020197020090 A KR 1020197020090A KR 20197020090 A KR20197020090 A KR 20197020090A KR 20190086777 A KR20190086777 A KR 20190086777A
- Authority
- KR
- South Korea
- Prior art keywords
- identification information
- information
- user
- database
- verification
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
공통 프로그램은, 서버(1)를 개별 프로그램이 복수의 사용자의 정보를 저장하는 데이터베이스(111)에 사용자 ID를 새롭게 저장하는 경우에, 사용자 ID와는 다른 검증용 ID를 연관지어 저장하는 식별정보 등록부(142), 개별 프로그램이 사용자 ID에 근거하여 데이터베이스(111)에 접속을 요구하는 경우에, 해당 사용자 ID와 연관된 검증용 ID를 취득하는 취득부(141), 개별 프로그램이 사용자 ID가 포함된 정보를 데이터베이스(111)에 추가하는 경우에, 해당 정보에 취득부(141)가 취득한 검증용 ID를 부여하고 추가하는 추가부(143) 및 개별 프로그램이 데이터베이스(111)에 저장된 사용자 ID가 포함된 정보를 조작하는 경우에, 취득부(141)가 취득한 검증용 ID와 해당 정보가 연관된 검증용 ID에 근거하여 해당 정보를 조작하는 조작부(144)로서 기능하게 한다.
Description
본 발명은 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법에 관한 것이다.
최근 가상화 기술의 발달로 복수의 사용자 데이터를 하나의 데이터베이스에 관리하는 것(멀티테넌트, multi-tenant)이 실시되고 있다 (예컨대, 특허문헌1 참조). 복수의 사용자 데이터를 하나의 데이터베이스에 관리하는 경우, 사용자를 식별하는 사용자 식별정보를 데이터베이스 상의 각 테이블(table)에 포함시켜 둔다. 그리고 로그인한 사용자에 대응하는 사용자 식별정보에 근거하여 데이터베이스로부터 해당 사용자의 정보를 추출한다.
그러나 멀티테넌트에 대응하는 데이터베이스에 포함된 정보를 조작(操作)하는 프로그램에 문제가 발생하면 타 사용자의 정보가 조작되는 것이 문제이다. 예컨대, 프로그램에서 특정 사용자에 대응하는 사용자 식별정보가 포함된 정보를 추출하는 경우에, 사용자 식별정보가 특정 사용자에 대응하는 사용자 식별정보와 일치한다는 추출조건을 지정한 결과, 다른 정보를 추출조건으로 지정하는 문제가 포함된 경우를 생각할 수 있다. 이 경우에는 특정 사용자에 대응하는 사용자 식별정보를 포함하지 않는 정보 즉, 타 사용자의 정보가 추출된다. 그러므로 프로그램에 문제가 포함되어 있어도 타 사용자의 정보를 조작하지 않을 것이 요구된다.
따라서 본 발명은 이러한 점에 비추어 이루어진 것이며, 타 사용자의 정보를 조작하지 않을 수 있는 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법을 제공하는 것을 목적으로 한다.
본 발명의 제1측면에 따른 공통 프로그램은 복수의 개별 프로그램에서 호출되는 공통 프로그램에 있어서, 상기 복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보를 연관지어 저장하는 식별정보 등록부, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 취득부, 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득부가 취득한 상기 검증용 식별정보를 부여하고 추가하는 추가부 및 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득부가 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여 상기 정보를 조작하는 조작부로서 기능하게 한다.
상기 취득부는 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보와 연관된 로그인 정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득할 수 있다.
상기 조작부는 상기 데이터베이스로부터 상기 사용자 식별정보가 포함된 정보를 선택할 경우에, 상기 취득부가 취득한 상기 검증용 식별정보가 포함된 정보를 선택할 수 있다.
상기 조작부는 상기 데이터베이스로부터 상기 사용자 식별정보가 포함된 정보를 선택한 후, 선택된 정보 중 상기 취득부가 취득한 상기 검증용 식별정보를 포함하지 않는 정보를 파기할 수 있다.
상기 조작부는 상기 데이터베이스에서 상기 사용자 식별정보가 포함된 정보를 갱신하는 경우에, 해당 정보에 포함된 상기 검증용 식별정보와 상기 취득부가 취득한 상기 검증용 식별정보가 일치하지 않는 경우, 해당 정보를 갱신하지 않고 에러 정보를 출력할 수 있다.
상기 조작부는 상기 데이터베이스에서 상기 사용자 식별정보가 포함된 정보를 제거하는 경우에, 해당 정보에 포함된 상기 검증용 식별정보와 상기 취득부가 취득한 상기 검증용 식별정보가 일치하지 않는 경우, 해당 정보를 제거하지 않고 에러 정보를 출력할 수 있다.
상기 추가부는 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에서, 상기 취득부에 의해 상기 검증용 식별정보가 취득되지 않는 경우, 해당 정보를 추가하지 않고 에러 정보를 출력할 수 있다.
본 발명의 제2측면에 따른 데이터베이스 관리장치는 복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보를 연관지어 저장하는 식별정보 등록부, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 취득부, 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득부가 취득한 상기 검증용 식별정보를 부여하고 추가하는 추가부, 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득부가 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여, 상기 정보를 조작하는 조작부를 구비한다.
본 발명의 제3측면에 따른 데이터베이스 관리방법은 컴퓨터가 실행하는 복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보에 연관지어 저장하는 단계, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하는 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 단계, 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득하는 단계에서 취득된 상기 검증용 식별정보를 부여하고 추가하는 단계, 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득하는 단계에서 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여 상기 정보를 조작하는 단계를 구비한다.
본 발명에 의하면, 타 사용자의 정보를 조작하지 않게 할 수 있는 효과가 있다.
도 1은 본 실시 형태에 따른 업무시스템의 개요를 나타내는 도면이다.
도 2는 본 실시 형태에 따른 서버의 구성을 나타내는 도면이다.
도 3은 본 실시 형태에 따른 로그인 사용자 테이블의 예를 나타내는 도면이다.
도 4는 본 실시 형태에 따른 고객 마스터 테이블(master table)의 예를 나타내는 도면이다.
도 5는 본 실시 형태에 따른 상품 마스터 테이블의 예를 나타내는 도면이다.
도 6은 본 실시 형태에 따른 상품 상세 마스터 테이블의 예를 나타내는 도면이다.
도 7은 본 실시 형태에 따른 취득부가 취득한 검증용 ID를 포함하지 않는 레코드(record)를 파기하는 예를 설명하는 도면이다.
도 2는 본 실시 형태에 따른 서버의 구성을 나타내는 도면이다.
도 3은 본 실시 형태에 따른 로그인 사용자 테이블의 예를 나타내는 도면이다.
도 4는 본 실시 형태에 따른 고객 마스터 테이블(master table)의 예를 나타내는 도면이다.
도 5는 본 실시 형태에 따른 상품 마스터 테이블의 예를 나타내는 도면이다.
도 6은 본 실시 형태에 따른 상품 상세 마스터 테이블의 예를 나타내는 도면이다.
도 7은 본 실시 형태에 따른 취득부가 취득한 검증용 ID를 포함하지 않는 레코드(record)를 파기하는 예를 설명하는 도면이다.
[업무시스템(S)의 개요]
도 1은 본 실시 형태에 따른 업무시스템(S)의 개요를 나타내는 도면이다.
업무시스템(S)은 서버(1)와 통신 가능한 복수의 클라이언트 단말(2)을 구비하는 시스템이다.
서버(1)는 업무시스템(S)이 구비한 각종 기능을 실현한다. 서버(1)는 업무시스템(S)을 제공하는 서비스 제공업체에 의해 운영된다. 클라이언트 단말은 업무시스템(S)을 이용하는 고객(이하 사용자)이 사용하는 컴퓨터이며 개인용 컴퓨터, 스마트폰 등이다.
서버(1)는 복수의 클라이언트 단말(2) 각각으로부터 각종 정보를 클라이언트 단말(2)에 표시하거나 서버(1)에 추가하기 위한 요청(request)을 접수할 수 있다. 서버(1)는 매 요청에 따라 개별 프로그램을 실행한다. 서버(1)는 복수의 클라이언트 단말(2) 각각에 대응하여 사용자의 정보를 저장하는 데이터베이스를 구비하고 데이터베이스 관리장치로서 기능한다.
데이터베이스에 저장된 각 테이블에는 클라이언트 단말(2)의 사용자를 식별하는 사용자 식별정보인 사용자 ID가 저장되어 있다. 또한, 각 테이블에는 타 사용자의 정보의 오조작을 방지하기 위해 검증용 식별정보로서의 검증용 ID가 저장되어 있다.
개별 프로그램은 데이터베이스에 접속할 때, 클라이언트 단말(2)의 사용자에 대응하는 로그인 정보를 지정해 공통 프로그램을 호출한다. 공통 프로그램은 로그인 정보에 근거하여 인증을 실행하고 인증에 성공하면, 사용자 ID와 연관된 검증용 ID를 취득한다. 개별 프로그램은 데이터베이스에 접속한 다음 데이터베이스에 저장되어 있는 정보를 조작하는 경우, 공통 프로그램을 호출한다. 공통 프로그램은 데이터베이스에 접속할 때에 취득한 검증용 ID와 조작 대상인 정보에 포함된 검증용 ID에 근거하여 사용자 ID에 대응하는 정보만 조작하여 실행 결과를 개별 프로그램에 반환한다. 이에 따라, 공통 프로그램은 타 사용자의 정보를 조작하지 않을 수 있다.
개별 프로그램은 공통 프로그램이 반환한 실행 결과에 근거하여 클라이언트 단말(2)에 매 요청에 대응하는 실행 결과를 출력한다. 업무시스템(S)에는 개별 프로그램이 타 사용자의 정보를 조작하지 않는 공통 프로그램을 통해 데이터베이스에 저장된 사용자의 정보를 조작하므로, 업무시스템(S)은 개별 프로그램에 오류가 있더라도 타 사용자의 정보를 조작하지 않을 수 있다.
[서버(1)의 구성]
이어서 서버(1)의 구성에 대해 설명한다. 도 2는 본 실시 형태에 따른 서버(1)의 구성을 나타내는 도면이다.
서버(1)는 저장부(11)와 제어부(12)를 구비한다.
저장부(11)는 예컨대, ROM, RAM 및 하드 디스크 등 기록매체이다. 저장부(11)는 제어부(12)가 실행하는 프로그램을 저장하고 비일시적인 유형(有形)의 기록매체를 가질 수 있다. 예컨대, 저장부(11)는 업무시스템(S)이 구비한 각 기능을 실현하기 위한 복수의 개별 프로그램을 저장한다. 또한, 저장부(11)는 제어부(12)를 취득부(141), 식별정보 등록부(142), 추가부(143) 및 조작부(144)로서 기능하게 하는 공통 프로그램을 저장한다. 공통 프로그램에는 복수의 클라이언트 단말(2) 각각의 사용자에 대응하는 정보를 저장시키는 데이터베이스(111)를 관리하는 데이터베이스 엔진이 포함된다.
데이터베이스(111)에는 예컨대, 로그인 사용자 테이블과 고객 마스터 테이블, 상품 마스터 테이블, 상품 상세 마스터 테이블이 저장되어 있다.
도 3은 본 실시 형태에 따른 로그인 사용자 테이블의 예를 나타내는 도면이다. 도 3과 같이 로그인 사용자 테이블은 클라이언트 단말(2)의 사용자를 식별하는 사용자 ID로 데이터베이스(111)에 접속할 때 사용되는 로그인ID와 해당 로그인ID에 대응하는 패스워드를 연관지어 저장한다. 사용자 ID, 로그인ID 및 로그인 패스워드는 예컨대, 업무시스템(S)의 서비스 제공자에 의해 생성되고 로그인 사용자 테이블에 저장된다.
도 4는 본 실시 형태에 따른 고객 마스터 테이블의 예를 나타내는 도면이다. 도 4와 같이 고객 마스터 테이블은 사용자 ID와 사용자 명칭, 공통 프로그램이 사용하는 검증용 ID를 연관지어 저장한다. 여기서 검증용 ID는 사용자 ID와 같이 클라이언트 단말(2)의 사용자를 식별하는 식별정보이며 사용자 ID와는 다른 식별정보이다.
도 5는 본 실시 형태에 따른 상품 마스터 테이블의 예를 나타내는 도면이다. 도 5에 나타낸 것처럼, 상품 마스터 테이블은 사용자 ID와 상품을 식별하는 상품 ID, 상품명과 검증용 ID를 연관지어 저장한다.
도 6은 본 실시 형태에 따른 상품 상세 마스터 테이블의 예를 나타내는 도면이다. 도 6과 같이 상품 상세 마스터 테이블은 사용자 ID와 상품의 상세 부분(예컨대, 상품의 색상 등)에 따라 동일한 상품 ID의 상품을 식별하기 위한 상품 상세ID와 상품 ID, 상품명, 검증용 ID를 연관지어 저장한다.
제어부(12)는 예컨대, CPU이다. 제어부(12)는 저장부(11)에 저장된 각종 프로그램과 통신 네트워크를 통해 외부 기기로부터 취득한 프로그램을 실행함으로써, 서버(1)와 관련된 기능을 제어한다. 제어부(12)는 개별 프로그램을 실행하는 개별 프로그램 실행부(13)와 공통 프로그램을 실행하는 공통 프로그램 실행부(14)를 구비한다.
개별 프로그램 실행부(13)는 클라이언트 단말(2)로부터 매 요청을 수신함에 따라 매 요청에 대응하는 개별 프로그램을 실행한다. 개별 프로그램은 예컨대, 업무시스템(S)의 서비스 제공자에 의해 구축된 프로그램이다. 개별 프로그램이 데이터베이스(111)에 접근하는 경우에는 공통 프로그램을 호출하여 접속하도록 구축되어 있다.
공통 프로그램 실행부(14)는 복수의 개별 프로그램에서 공통 프로그램의 호출에 응하여 공통 프로그램을 실행한다. 공통 프로그램 실행부(14)는 공통 프로그램을 실행함으로써 취득부(141), 식별정보 등록부(142), 추가부(143) 및 조작부(144)로서 기능한다.
취득부(141)는 복수의 개별 프로그램 중 어느 하나가 사용자 ID에 근거하여 데이터베이스(111)에 접속을 요구하는 경우 해당 사용자 ID와 연관된 검증용 ID를 취득한다. 취득부(141)는 복수의 개별 프로그램 중 어느 하나가 사용자 ID와 연관된 로그인 정보에 근거하여 데이터베이스(111)에 접속을 요구한 경우에, 해당 사용자 ID와 연관된 검증용 ID를 취득한다.
구체적으로 말하자면, 우선 복수의 개별 프로그램 중 어느 하나가 로그인ID 및 로그인 패스워드를 지정하고 공통 프로그램을 호출함으로써 데이터베이스(111)에 접속을 요구한다. 취득부(141)는 지정된 로그인ID 및 로그인 패스워드가 로그인 사용자 테이블에 저장된 로그인ID 및 로그인 패스워드와 일치할 경우 데이터베이스(111)에 접속을 요구한 개별 프로그램으로부터 데이터베이스(111)에 접속을 허가한다. 여기서 개별 프로그램에서 데이터베이스(111)로 접속이 허가된 상태를 개별 프로그램이 데이터베이스(111)에 접속된 상태라고 한다.
취득부(141)는 개별 프로그램이 데이터베이스(111)에 접속한 경우에, 로그인 사용자 테이블에서 지정된 로그인ID와 연관된 사용자 ID를 특정한다. 취득부(141)는 고객 마스터 테이블에서 특정된 사용자 ID와 연관된 검증용 ID를 취득한다. 취득부(141)는 취득한 검증용 ID를 세션 정보로서 저장부(11)에 일시적으로 저장한다. 또한, 취득부(141)는 고객 마스터 테이블에서 특정된 사용자 ID가 존재하지 않는 경우에는 세션 정보로서 검증용 ID를 저장하지 않는다.
식별정보 등록부(142)는 복수의 개별 프로그램 중 어느 하나가 데이터베이스(111)에 사용자 ID를 새롭게 저장하는 경우에, 검증용 ID를 연관지어 저장하게 한다. 구체적으로 말하자면, 식별정보 등록부(142)는 복수의 개별 프로그램 중 어느 하나가 사용자 ID와 사용자 명칭을 포함한 레코드를 새롭게 고객 마스터 테이블에 저장하는 경우에, 검증용 ID를 생성한다. 그리고 식별정보 등록부(142)는 사용자 ID와 사용자 명칭과 검증용 ID가 포함된 레코드를 고객 마스터 테이블에 저장하게 한다.
여기에서 식별정보 등록부(142)가 구비한 기능은 고객 마스터 테이블에 대해 설정되는 데이터베이스 엔진의 보안 정책 및 트리거에 의해 실현된다. 이로 인해 개별 프로그램이 고객 마스터 테이블에 레코드를 추가하는 경우에는 반드시 식별정보 등록부(142)의 기능이 실행되므로 해당 테이블에 사용자 ID가 저장하는 경우에, 해당 사용자 ID와 검증용 ID를 확실하게 저장할 수 있다.
또한, 본 실시 형태에는 로그인 사용자 테이블과 고객 마스터 테이블에 서로 다른 타이밍으로 사용자 ID를 포함한 정보가 저장하였지만, 이에 한정되지 않는다. 예컨대, 로그인 사용자 테이블과 고객 마스터 테이블에 가령 일련의 처리로 인해 같은 타이밍에 사용자 ID를 포함한 정보가 저장되게끔 할 수 있다.
추가부(143)는 사용자 ID에 근거하여 데이터베이스(111)에 접속한 후, 복수의 개별 프로그램 중 어느 하나가 해당 사용자 ID가 포함된 레코드를 데이터베이스(111)에 추가하는 경우 해당 레코드에 취득부(141)를 취득한 검증용 ID를 부여하고 추가한다. 구체적으로 말하자면, 추가부(143)는 데이터베이스(111)에 저장된 복수의 테이블 중, 로그인 사용자 테이블과 고객 마스터 테이블과는 다른 테이블에 사용자 ID가 포함된 레코드를 추가하는 경우 해당 레코드에 세션 정보로서 저장부(11)에 일시적으로 저장된 검증용 ID를 부여한다. 추가부(143)는 사용자 ID 및 검증용 ID가 포함된 레코드를 테이블에 저장한다. 본 실시 형태에서는 상품 마스터 테이블 및 상품 상세 마스터 테이블에 사용자 ID가 포함된 레코드를 추가하는 경우에, 해당 레코드에 검증용 ID를 부여하여 추가한다.
여기서 추가부(143)는 사용자 ID가 포함된 레코드를 데이터베이스(111)에 저장된 테이블에 추가하는 경우에, 취득부(141)에 의해 검증용 ID가 취득되지 않는 경우, 사용자 ID가 포함된 레코드를 추가하지 않고 오류 정보를 출력한다. 예컨대, 추가부(143)는 데이터베이스(111)에 저장된 테이블에 레코드를 추가하기 위해 공통 프로그램을 호출한 개별 프로그램으로 검증용 ID를 취득할 수 없다고 나타내는 오류 정보가 포함된 실행 결과를 출력한다. 이로 인해 개별 프로그램 측에 검증용 ID가 취득되지 않았음을 통지할 수 있다.
또한, 추가부(143)가 구비한 기능은 사용자 ID를 포함하는 테이블에 대해 설정된 데이터베이스 엔진의 보안 정책 및 트리거에 의해 실현된다. 이로 인해 개별 프로그램이 추가부(143)가 구비한 기능에 대응하는 보안 정책 및 트리거가 설정된 테이블에 레코드를 추가하는 경우에는 반드시 추가부(143)의 기능이 실행되므로 해당 테이블에 사용자 ID가 저장되는 경우에, 확실하게 검증용 ID도 저장할 수 있다.
조작부(144)는 사용자 ID에 근거하여 데이터베이스(111)에 접속한 후, 복수의 개별 프로그램 중 어느 하나가 데이터베이스(111)에 저장된 해당 사용자 ID가 포함된 정보를 조작하는 경우에, 취득부(141)가 취득한 검증용 ID와 해당 정보가 연관된 검증용 ID에 근거하여 정보를 조작한다. 여기서 정보 조작은 테이블로부터 정보를 선택하는 선택 조작, 테이블에 저장된 정보를 갱신하는 갱신 조작, 테이블에 저장된 레코드를 삭제하는 삭제 조작이 포함된다.
구체적으로 말하자면, 조작부(144)는 데이터베이스(111)에 저장된 테이블로부터 사용자 ID가 포함된 레코드를 선택할 경우에, 취득부(141)가 취득한 검증용 ID가 포함된 정보를 선택한다. 구체적으로 말하자면, 조작부(144)는 데이터베이스(111)에 저장된 테이블로부터 사용자 ID가 포함된 레코드를 선택한다. 그 후, 조작부(144)는 선택된 레코드 중 취득부(141)가 취득한 검증용 ID를 포함하지 않는 레코드를 파기한다. 조작부(144)는 파기되지 않은 레코드가 포함된 정보를 실행 결과로서 개별 프로그램에 출력한다.
도 7은 취득부(141)가 취득한 검증용 ID를 포함하지 않는 레코드의 파기 사례를 설명하는 도면이다. 예컨대, 개별 프로그램이 사용자 ID '1'에 대응하는 로그인 정보에 의해 데이터베이스(111)에 접속하고, 취득부(141)가 사용자 ID '1'에 대응하는 검증용 ID 'AAA'를 취득했다고 가정한다 (도 7의 (1)). 또한 개별 프로그램에서 도 7에 나타난 상품 마스터 테이블로부터 사용자 ID '1'의 데이터를 선택하는 경우에, 사용자 ID '1'을 선택 조건으로 하려다가, 사용자 ID의 값에 오류로 상품 ID의 값을 지정하고, 상품 ID가 '2'라고 가정한다. 이 경우에는 조작부(144)는 사용자 ID '2'의 레코드를 선택한다 (도 7의 (2)). 조작부(144)는 사용자 ID '2'의 레코드에 포함된 검증용 ID가 'BBB'이고 취득부(141)가 취득한 검증용 ID 'AAA'가 포함되지 않음을 이유로 하여 선택한 레코드를 파기한다 (도 7의 (3)).
이로 인해 서버(1)는 타 사용자 ID에 대응하는 레코드가 개별 프로그램에 출력되지 않게 할 수 있다. 또한, 조작부(144)는 사용자 ID가 포함된 레코드를 선택한 후, 해당 레코드 중 취득부(141)가 취득한 검증용 ID를 포함하지 않는 레코드를 파기하기 때문에, 사용자 ID에 인덱스(index)가 부가된 경우에, 취득부(141)가 취득한 검증용 ID가 포함된 정보를 빠른 속도로 선택할 수 있다.
또한, 조작부(144)는 데이터베이스(111)에 저장된 테이블에서 사용자 ID를 포함한 레코드를 갱신하는 경우에, 해당 레코드에 포함된 검증용 ID와 취득부(141)가 취득한 검증용 ID가 일치할 때, 해당 레코드를 갱신하고 레코드가 갱신됨을 나타내는 정보를 실행 결과로서 개별 프로그램에 출력한다.
또한, 조작부(144)는 데이터베이스(111)에 저장된 테이블에서 사용자 ID를 포함한 기록을 갱신하는 경우에, 해당 레코드에 포함된 검증용 ID와 취득부(141)가 취득한 검증용 ID가 일치하지 않는 경우, 해당 레코드를 갱신하지 않고 오류 정보를 출력한다. 조작부(144)는 레코드가 갱신되지 않음을 나타내는 정보를 실행 결과로서 개별 프로그램에 출력한다.
또한, 조작부(144)는 데이터베이스(111)에 저장된 테이블에서 사용자 ID가 포함된 레코드를 삭제하는 경우에, 해당 레코드에 포함된 검증용 ID와 취득부(141)가 취득한 검증용 ID가 일치할 때, 해당 레코드를 삭제하고 레코드가 삭제됨을 나타내는 정보를 실행 결과로서 개별 프로그램에 출력한다.
또한, 조작부(144)는 데이터베이스(111)에 저장된 테이블에서 사용자 ID가 포함된 레코드를 삭제하는 경우에, 해당 레코드에 포함된 검증용 ID와 취득부(141)가 취득한 검증용 ID가 일치하지 않는 경우, 해당 레코드를 삭제하지 않고 오류 정보를 출력한다. 조작부(144)는 레코드가 삭제되지 않음을 나타내는 정보를 실행 결과로서 개별 프로그램에 출력한다.
또한, 조작부(144)가 구비한 기능은 사용자 ID를 포함하는 테이블에 대해 설정된 데이터베이스 엔진의 보안 정책 및 트리거에 의해 실현된다. 이로 인해 개별 프로그램이 조작부(144)가 구비한 기능에 대응하는 보안 정책 및 트리거가 설정된 테이블을 조작(선택, 갱신, 삭제)하는 경우에는 반드시 조작부(144)의 기능이 실행되므로 타 사용자에 대한 정보 조작을 확실하게 방지할 수 있다.
[본 실시 형태의 효과]
이상 설명한 바와 같이, 본 실시 형태에 따른 서버(1)는 공통 프로그램을 실행함으로써 복수의 개별 프로그램 중 어느 하나가 사용자 ID에 근거하여 데이터베이스(111)에 접속을 요구하는 경우에, 해당 사용자 ID와 연관된 검증용 ID를 취득하고, 사용자 ID에 근거하여 데이터베이스(111)에 접속하여 복수의 개별 프로그램 중 어느 하나가 사용자 ID가 포함된 정보를 데이터베이스(111)에 추가하는 경우에, 해당 정보에 취득된 검증용 ID를 부여하고 추가하여, 해당 사용자 ID에 근거하여 데이터베이스(111)에 접속하여 복수의 개별 프로그램 중 어느 하나가 데이터베이스(111)에 저장된 해당 사용자 ID가 포함된 정보를 조작하는 경우 취득한 검증용 ID와 해당 정보가 연관된 검증용 ID에 근거하여 해당 정보를 조작한다. 이로 인해 서버(1)는 취득된 검증용 ID와 해당 정보가 연관된 검증용 ID가 일치하지 않는 경우에, 정보를 조작하지 않게 할 수 있어 타 사용자의 정보를 조작하지 않게 할 수 있다.
이상, 본 발명은 실시 형태를 예로써 설명했지만 본 발명의 기술적 범위는 상기 실시 형태에 기재된 범위로는 한정되지 않는다. 상기 실시 형태에 다양한 변경 혹은 개량을 더할 수 있음은 통상의 기술자에게 명백하다. 그러한 변경 혹은 개량을 더한 형태 역시 본 발명의 기술적 범위에 포함될 수 있음이 청구 범위의 기재로부터 명백하다.
1
서버
11 저장부
111 데이터베이스
12 제어부
13 개별 프로그램 실행부
14 공통 프로그램 실행부
141 취득부
142 식별정보 등록부
143 추가부
144 조작부
2 클라이언트 단말
S 업무시스템
11 저장부
111 데이터베이스
12 제어부
13 개별 프로그램 실행부
14 공통 프로그램 실행부
141 취득부
142 식별정보 등록부
143 추가부
144 조작부
2 클라이언트 단말
S 업무시스템
Claims (9)
- 복수의 개별 프로그램에서 호출되는 공통 프로그램에 있어서,
컴퓨터를,
상기 복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보를 연관지어 저장하는 식별정보 등록부;
상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 취득부;
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득부가 취득한 상기 검증용 식별정보를 부여하고 추가하는 추가부; 및
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득부가 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여 상기 정보를 조작하는 조작부
로서 기능하게 하는 공통 프로그램. - 제1항에 있어서,
상기 취득부는, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보와 연관된 로그인 정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는
공통 프로그램. - 제1항 또는 제2항에 있어서,
상기 조작부는, 상기 데이터베이스로부터 상기 사용자 식별정보가 포함된 정보를 선택할 경우에, 상기 취득부가 취득한 상기 검증용 식별정보가 포함된 정보를 선택하는,
공통 프로그램. - 제3항에 있어서,
상기 조작부는, 상기 데이터베이스로부터 상기 사용자 식별정보가 포함된 정보를 선택한 후, 선택된 정보 중 상기 취득부가 취득한 상기 검증용 식별정보를 포함하지 않는 정보를 파기하는,
공통 프로그램. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 조작부는, 상기 데이터베이스에서 상기 사용자 식별정보가 포함된 정보를 갱신하는 경우에, 해당 정보에 포함된 상기 검증용 식별정보와 상기 취득부가 취득한 상기 검증용 식별정보가 일치하지 않는 경우, 해당 정보를 갱신하지 않고 에러 정보를 출력하는,
공통 프로그램. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 조작부는, 상기 데이터베이스에서 상기 사용자 식별정보가 포함된 정보를 제거하는 경우에, 해당 정보에 포함된 상기 검증용 식별정보와 상기 취득부가 취득한 상기 검증용 식별정보가 일치하지 않는 경우, 해당 정보를 제거하지 않고 에러 정보를 출력하는,
공통 프로그램. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 추가부는, 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에서, 상기 취득부에 의해 상기 검증용 식별정보가 취득되지 않는 경우, 해당 정보를 추가하지 않고 에러 정보를 출력하는,
공통 프로그램. - 복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보를 연관지어 저장하는 식별정보 등록부;
상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 취득부;
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득부가 취득한 상기 검증용 식별정보를 부여하고 추가하는 추가부; 및
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득부가 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여, 상기 정보를 조작하는 조작부
를 포함하는 데이터베이스 관리장치. - 컴퓨터가 실행하는,
복수의 개별 프로그램 중 어느 하나가 복수의 사용자의 정보를 저장하는 데이터베이스에 사용자를 식별하는 사용자 식별정보를 새롭게 저장하는 경우에, 상기 사용자를 식별함과 동시에 상기 사용자 식별정보와는 다른 검증용 식별정보에 연관지어 저장하는 단계;
상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보에 근거하는 상기 데이터베이스에 접속을 요구하는 경우에, 해당 사용자 식별정보와 연관된 상기 검증용 식별정보를 취득하는 단계;
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 사용자 식별정보가 포함된 정보를 상기 데이터베이스에 추가하는 경우에, 해당 정보에 상기 취득하는 단계에서 취득된 상기 검증용 식별정보를 부여하고 추가하는 단계; 및
상기 사용자 식별정보에 근거하여 상기 데이터베이스에 접속한 후, 상기 복수의 개별 프로그램 중 어느 하나가 상기 데이터베이스에 저장된 상기 사용자 식별정보가 포함된 정보를 조작하는 경우에, 상기 취득하는 단계에서 취득한 상기 검증용 식별정보와 해당 정보가 연관된 상기 검증용 식별정보에 근거하여 상기 정보를 조작하는 단계
를 포함하는 데이터베이스 관리방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2016-246211 | 2016-12-20 | ||
JP2016246211A JP6419143B2 (ja) | 2016-12-20 | 2016-12-20 | 共通プログラム、データベース管理装置、及びデータベース管理方法 |
PCT/JP2017/045566 WO2018117107A1 (ja) | 2016-12-20 | 2017-12-19 | 共通プログラム、データベース管理装置、及びデータベース管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190086777A true KR20190086777A (ko) | 2019-07-23 |
KR102087325B1 KR102087325B1 (ko) | 2020-03-10 |
Family
ID=62626488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197020090A KR102087325B1 (ko) | 2016-12-20 | 2017-12-19 | 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190303595A1 (ko) |
JP (1) | JP6419143B2 (ko) |
KR (1) | KR102087325B1 (ko) |
WO (1) | WO2018117107A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3696707B1 (en) * | 2019-02-15 | 2021-07-14 | MasterCard International Incorporated | A computer-implemented method for removing access to data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007164266A (ja) * | 2005-12-09 | 2007-06-28 | Nhk Engineering Services Inc | データベース管理方法および個人情報管理システム |
JP2009518713A (ja) * | 2005-12-02 | 2009-05-07 | セールスフォース ドット コム インコーポレイティッド | マルチテナント環境において顧客データを機密保護するためのシステムおよび方法 |
JP2012133645A (ja) * | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Information Systems Corp | 情報制御装置および情報制御プログラム |
KR20130008480A (ko) * | 2011-07-12 | 2013-01-22 | 애플 인크. | 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법 |
JP2013088830A (ja) | 2011-10-13 | 2013-05-13 | Hitachi Ltd | マルチテナント情報処理方法、装置及びプログラム |
JP2014219762A (ja) * | 2013-05-02 | 2014-11-20 | 株式会社リコー | データ共有システム、データ共有方法および情報処理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6540063B2 (ja) * | 2015-02-05 | 2019-07-10 | 日本電気株式会社 | 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム |
-
2016
- 2016-12-20 JP JP2016246211A patent/JP6419143B2/ja active Active
-
2017
- 2017-12-19 KR KR1020197020090A patent/KR102087325B1/ko active IP Right Grant
- 2017-12-19 WO PCT/JP2017/045566 patent/WO2018117107A1/ja active Application Filing
-
2019
- 2019-06-18 US US16/443,888 patent/US20190303595A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009518713A (ja) * | 2005-12-02 | 2009-05-07 | セールスフォース ドット コム インコーポレイティッド | マルチテナント環境において顧客データを機密保護するためのシステムおよび方法 |
JP2007164266A (ja) * | 2005-12-09 | 2007-06-28 | Nhk Engineering Services Inc | データベース管理方法および個人情報管理システム |
JP2012133645A (ja) * | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Information Systems Corp | 情報制御装置および情報制御プログラム |
KR20130008480A (ko) * | 2011-07-12 | 2013-01-22 | 애플 인크. | 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법 |
JP2013088830A (ja) | 2011-10-13 | 2013-05-13 | Hitachi Ltd | マルチテナント情報処理方法、装置及びプログラム |
JP2014219762A (ja) * | 2013-05-02 | 2014-11-20 | 株式会社リコー | データ共有システム、データ共有方法および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190303595A1 (en) | 2019-10-03 |
JP2018101239A (ja) | 2018-06-28 |
JP6419143B2 (ja) | 2018-11-07 |
WO2018117107A1 (ja) | 2018-06-28 |
KR102087325B1 (ko) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109873804A (zh) | 基于行为的服务识别方法、装置、设备及可读存储介质 | |
CN111478961A (zh) | 多租户的服务调用方法及装置 | |
KR101810755B1 (ko) | 액세스 제어를 위한 자유형식 메타데이터의 사용 | |
US9043312B2 (en) | Identifying symbolic links | |
CN110197064A (zh) | 进程处理方法和装置、存储介质及电子装置 | |
CN107196915B (zh) | 权限设置方法、装置及系统 | |
CN113395340A (zh) | 一种信息更新方法、装置、设备、系统和可读存储介质 | |
JP2014127037A (ja) | 情報処理プログラム、情報処理方法及び装置 | |
US10445213B2 (en) | Non-transitory computer-readable storage medium, evaluation method, and evaluation device | |
CN111324799B (zh) | 搜索请求的处理方法及装置 | |
KR20190086777A (ko) | 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법 | |
US20180020075A1 (en) | Apparatus and method for providing data based on cloud service | |
CN107911443A (zh) | 一种会话信息处理方法、装置、服务器和可读存储介质 | |
US11782898B2 (en) | Content data holding system, storage medium, content data holding server, and data management method | |
JP6184316B2 (ja) | ログイン中継サーバ装置、ログイン中継方法、及びプログラム | |
US11102188B2 (en) | Multi-tenant enterprise application management | |
US11998838B2 (en) | Content data holding system, storage medium, content data holding server, and data management method | |
CN114020962A (zh) | 视频系统管理方法、电子设备和计算机可读存储介质 | |
CN115905206A (zh) | 多租户数据隔离方法、装置、设备及存储介质 | |
JP6884652B2 (ja) | ホワイトリスト管理システムおよびホワイトリスト管理方法 | |
CN110750727A (zh) | 数据处理方法、装置、系统和计算机可读存储介质 | |
JP5467032B2 (ja) | 情報管理システムとそのデータ更新操作方法 | |
CN117828672B (zh) | 细粒度动态授权的访问控制与高并发处理方法及装置 | |
CN117608677B (zh) | 插件的生成方法、云服务系统及服务访问方法 | |
CN116684282B (zh) | 新增云端服务器初始化方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |