JP7193615B2 - マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法 - Google Patents

マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法 Download PDF

Info

Publication number
JP7193615B2
JP7193615B2 JP2021504785A JP2021504785A JP7193615B2 JP 7193615 B2 JP7193615 B2 JP 7193615B2 JP 2021504785 A JP2021504785 A JP 2021504785A JP 2021504785 A JP2021504785 A JP 2021504785A JP 7193615 B2 JP7193615 B2 JP 7193615B2
Authority
JP
Japan
Prior art keywords
tenant
data
fragments
tenant data
encryption key
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
Application number
JP2021504785A
Other languages
English (en)
Other versions
JP2021533619A (ja
Inventor
テリー チョン
ジャメイソン ベア マーティン
トーマス ファンハエネル
アンドリュー トゥッカー
ナタニエル ワイアット
ラガヴェンドラン ハヌマンタラウ
ベン-グア,アサッフ
ウィリアム チャールズ モーティモレ
Original Assignee
セールスフォース ドット コム インコーポレイティッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by セールスフォース ドット コム インコーポレイティッド filed Critical セールスフォース ドット コム インコーポレイティッド
Publication of JP2021533619A publication Critical patent/JP2021533619A/ja
Application granted granted Critical
Publication of JP7193615B2 publication Critical patent/JP7193615B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

いくつかの現在のマルチテナントデータベースシステムは、テナントデータの暗号化を提供することがある。しかしながら、このような暗号化は、データベースとは別個のアプリケーションにより実行される。すなわち、アプリケーションがテナントデータを暗号化し、暗号化されたテナントデータが記憶のためにデータベースに送信される。この構成では、フィルタリング、ソート、インデキシングなどの典型的なデータベース機能は、暗号化されたデータに対して実行することができない。すなわち、現在のマルチテナントデータベースシステムでは、マルチテナントデータベース内の特定のデータの暗号化は、データベースの使用に制限を課すことになる。いくつかの例において、暗号化されたデータを用いて典型的なデータベース機能を実行する試みは、使用されているアプリケーションの機能を壊すことになる。従来のシングルテナントデータベースシステムは、テナントデータの暗号化を可能にし得るが、異なるテナントに対して異なる暗号化を取り扱うことはできない。いくつかのデータベースシステムは、テナント暗号化を提供するが、テナントデータが異なるデータベース、表領域などに論理的に分けられる必要がある。
開示される主題事項のさらなる理解を提供するために含まれる添付の図面は、本明細書に組み込まれ、本明細書の一部を構成する。図面はまた、開示される主題事項の実装を例示し、詳細な説明と共に、開示される主題事項の実装の原理を説明するのに役立つ。開示される主題事項及びそれが実施され得る様々な方法の基本的理解のために必要であり得る以上に詳細な構造的詳細を示す試みは行われない。
開示される主題事項の一実装による、第1及び第2のテナントデータを分離し、第1テナントデータの1つ以上のフラグメントを暗号化する一例示的な方法を示す。 開示される主題事項の一実装による、データベースクエリ要求に応答して第1テナントデータの非暗号化フラグメントを取り出す一例示的な方法を示す。 開示される主題事項の一実装による、要求されたフラグメントがブロックキャッシュメモリに存在しないときにデータベースクエリに応答して第1テナントデータのフラグメントを取り出して復号する一例示的な方法を示す。 開示される主題事項の一実装による、第1テナントデータに関連づけられた第1暗号化鍵を変更し、変更された鍵に基づいて第1テナントデータを新しいバージョンとして不変ストレージに記憶する一例示的な方法を示す。 開示される主題事項の一実装による、第1テナントの第1テナントデータからの少なくとも1つの新しいサンドボックステナントデータのための少なくとも1つの新しいサンドボックスを作成し、サンドボックステナントデータを暗号化する一例示的な方法を示す。 開示される主題事項の一実装による、第1テナントデータのメタデータを使用してソースデータベースインスタンスから宛先データベースインスタンスに第1テナントデータを移行する一例示的な方法を示す。 開示される主題事項の実装による、図1~図5に示す例示的な方法の分離に関連して使用され得るシステムアーキテクチャの一例を示す。 開示される主題事項の一実装による、図4に示す例示的な方法を使用して第1テナントデータの異なるフラグメントに対して異なるサンドボックスを作成する一例示的なアーキテクチャを示す。 開示される主題事項の実装による、鍵管理のための一例示的なアーキテクチャを示す。 開示される主題事項の一実装によるコンピュータを示す。 開示される主題事項の一実装によるネットワーク構成を示す。
開示される主題事項の実装は、暗号化された形式で記憶されるテナントデータのフィルタリング、ソート、及びインデキシングなどのデータベース動作がサポートされる、マルチテナントデータベースシステムの暗号化を提供する。テナントデータの暗号化は、アプリケーションサーバでなくマルチテナントデータベースシステムにより実行することができ、それにより、データベース動作(例えば、フィルタリング、ソートなど)を利用することができる。マルチテナントデータベースシステムの各テナントは、各テナントがその独自のテナント識別子と暗号化鍵を有する場合、別個に暗号化されてもよい。マルチテナントデータベースシステムにおいて、異なるテナントデータの部分は、同じデータベースオブジェクトの少なくとも1つに論理的に属することができる。
特に、特定のテナントのテナントデータのレコードを含むフラグメント(fragments)を暗号化することができる。フラグメントは、開示される主題事項のマルチテナントデータベースシステムにおける基本データ単位であり得、複数のフラグメントがエクステント(extent)を構成する。データエクステントは、テナントデータの1つ以上のフラグメント及びブロックインデックスを含むことができる。フラグメントは、テナント識別子に基づいて分離することができ、分離されたフラグメントは、そのフラグメントのテナントの暗号化鍵を使用して個々に暗号化することができる。
開示される主題事項の実装は、テナント暗号化がアプリケーションレベルで(すなわち、アプリケーションサーバで)実行される現在のマルチテナントデータベースシステムを向上させる。すなわち、このようなシステムにおいて、テナントデータの暗号化は、テナントデータが別個のデータベースシステムに記憶される前にアプリケーションにより実行される。アプリケーションでデータを暗号化することの欠点は、フィルタリング、ソート、インデキシングなどのデータベース動作を典型的に実行できないことである。アプリケーションは、テナントデータがアプリケーションにより符号化されてマルチテナントデータベースに記憶されているときにデータベース動作(例えば、フィルタリング、ソート等)を試みたとき、失敗及び/又はエラーを経験する可能性がある。すなわち、現在のマルチテナントデータベースシステムでは、マルチテナントデータベース内の特定のデータの暗号化は、データベースの使用に制限を課すことになる。いくつかの従来のシングルテナントデータベースシステムは、テナントデータの暗号化を可能にする場合があるが、異なるテナントに対して異なる暗号化を取り扱うことはできない。
開示される主題事項の実装において、開示される主題事項のマルチテナントデータベースシステムのメモリストレージ(memory storage)は、マルチテナントデータベース内に永続化するように(to persistence)書き込まれていないコミットされたトランザクション及びコミットされていないトランザクションの双方を含み得る。コミットされたトランザクションは、マルチテナントデータベースシステムの不変ストレージ(immutable storage)に永続化するように書き込まれる前に、暗号化することができる。いくつかの実装において、マルチテナントデータベースシステムは、デーモンを使用して、コミットされるべきトランザクションのテナントデータの、フラグメントへの分離を管理する。すなわち、異なるテナント(すなわち、異なるテナント識別子を有するテナント)を分離することができる。鍵キャッシュは、各テナントの暗号化鍵を記憶することができる。鍵キャッシュに暗号化鍵のコピーを保持することで、鍵管理システム(Key Management System、KMS)から暗号化鍵を取り出すことの時間オーバーヘッドを低減させることができる。
マルチテナントデータベースシステムのデーモンは、特定のテナントのデータのフラグメントの暗号化を管理するために、テナントの暗号化鍵を取り出すことができる。非暗号化ヘッダが、テナントデータの暗号化されたフラグメントの各々に生成され、関連づけられてもよく、このヘッダは、(認可されたとき、テナントの暗号化鍵を取り出すために使用され得る)テナント識別子を有するメタデータを含むことができる。デーモンは、マルチテナントデータベースシステムの不変ストレージにおいて永続化するようにテナントデータの暗号化されたフラグメント及び読取可能なヘッダの書き込みを管理することができる。
特定のテナントデータに関してマルチテナントデータベースシステムによりクエリを受信したとき、マルチテナントデータベースシステムのクエリエンジンによりブロックキャッシュが最初にチェックされて、データが暗号化されておらず入手できるかどうかを判定する。これは、それをデータベースから取り出すよりも速いためである。マルチテナントデータベースシステムのクエリエンジンは、ブロックキャッシュ内のデータが暗号化されていない(すなわち、データが平文であり、暗号文でない)とき、テナントデータを取り出すように動作することができる。データがブロックキャッシュで入手できない場合、要求されたテナントデータは、それが暗号化された形式で記憶されている不変ストレージから取り出すことができる。テナントデータは、復号し、ブロックキャッシュに提供することができ、それにより、それをクエリエンジンにより使用してデータベース動作(例えば、フィルタ、ソート等)を実行することができる。特に、マルチテナントデータベースシステムは、クエリエンジンにより識別されたテナントデータのデータフラグメントのヘッダからテナント識別子を有するメタデータを取り出すことができ、鍵キャッシュ又はKMSから暗号化鍵を取り出して、取り出されたメタデータに基づいてデータフラグメントを復号することができる。要求元は、それが鍵キャッシュ又はKMSから特定のテナントの暗号化鍵を取り出し得る前に、(例えば、証明書を介して)認証されてもよい。(暗号文から平文に復号されている)復号されたデータフラグメントは、データベース動作を行うためにブロックキャッシュに提供することができる。
すなわち、開示される主題事項の実装は、各テナントに特有の暗号化鍵でテナントデータを暗号化することができる。テナントデータのフラグメントは、暗号化され、マルチテナントデータベースシステムの不変ストレージに記憶することができる。暗号化されたテナントデータは、非暗号化ヘッダ内のメタデータに基づいて不変ストレージから取り出すことができる。取り出された暗号化されたデータは、鍵キャッシュ又はKMSから取り出された鍵を使用して復号することができ、復号されたデータは、ブロックキャッシュに提供することができ、そこでは、データベース動作を実行することができる。テナント間(Cross-tenant)データ(例えば、1つ以上のテナントを含むブロックインデックス、トランザクションログなど)は、テナント暗号化鍵のいずれとも異なるシステム暗号化鍵を使用して暗号化及び復号することができる。開示される主題事項の実装は、個々のテナントデータの暗号化を提供し、フィルタリング、ソートなどのデータベース動作を、典型的には標準的なマルチテナントデータベースシステムに関連づけられるエラー又は失敗なしにマルチテナントデータベースシステムにより実行することを可能にする。
開示される主題事項の実装は、テナント暗号化のための鍵管理、例えば、マルチテナントデータベースシステムにより管理される鍵のローテーションなどを提供することができる。鍵管理には、テナント暗号化鍵、テナント間データを暗号化するシステム暗号化鍵の管理、及び/又は暗号化鍵の作成と削除を含むことができる。いくつかの実装において、暗号化鍵(例えば、テナント暗号化鍵及び/又はシステム暗号化鍵)は、セキュリティを維持するために、所定の頻度でローテートされ(rotated)(すなわち、変更され)てもよい。いくつかの実装において、ユーザは、(セキュリティ目的のために)鍵のローテーションを要求することができ、データは、別個のデータエクステントに新しい鍵を用いて新しいバージョンとして再書き込みすることができる。
開示される主題事項の実装は、1つ以上のサンドボックステナントのためのデータの暗号化を提供することができる。サンドボックス化されたデータがオリジナルテナントの物理的データに裏打ちされるとき、サンドボックスとオリジナルテナントは同じ暗号化鍵を共有することができる。作成後、サンドボックスに対して異なる鍵が選択されてもよい。1つ以上のサンドボックステナントは、オリジナルテナントデータから、又は別のサンドボックステナントデータから形成することができる。
開示される主題事項の実装は、暗号化されたテナントデータをあるマルチテナントデータベースインスタンスから異なるマルチテナントデータベースインスタンスに転送することができる、テナント移行(migration)のための暗号化を提供することができる。データの暗号化は、暗号化鍵複製を提供することにより維持することができる。すなわち、移行されるテナントの暗号化鍵も移行することができる。
図1は、開示される主題事項の一実装による、マルチテナントデータベースシステムにおいて第1及び第2のテナントデータを分離し、第1テナントデータの1つ以上のフラグメントを暗号化する一例示的な方法10を示す。方法10は、第1テナントの第1テナントデータと第2テナントの第2テナントデータを少なくとも記憶することができるマルチテナントデータベースシステム(例えば、図6に示すマルチテナントデータベースシステム100、図8に示すマルチテナントデータベースシステム200、及び図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200d)の第1テナントの第1テナントデータの少なくとも一部のセキュリティを管理することができる。
第1テナントの第1テナントデータは、典型的には、第1テナント識別子に関連づけられたマルチテナントデータベースシステムの不変ストレージ(例えば、図6及び図8に示す不変ストレージ108)に記憶することができ、第2テナントの第2テナントデータは、典型的には、第2テナント識別子に関連づけられたマルチテナントデータベースシステムの不変ストレージに記憶することができる。いくつかの実装において、第1テナントデータ及び第2テナントデータは、図6に示すメモリストレージ102及び/又はブロックキャッシュ118、図8に示すデータベースサーバ208、210、図9に示す固定ストレージ630、メモリ670、リムーバブル媒体650、中央コンポーネント700、及び/又はストレージ810、及び/又は図10に示すデータベースシステム1200a~1200dに記憶することができる。
コミットされたトランザクション及び/又はコミットされていないトランザクションの双方のための第1テナントデータ及び/又は第2テナントデータが、マルチテナントデータベースシステムに結合されたメモリストレージ(例えば、図6に示すメモリストレージ102)に記憶され得る。動作12において、少なくとも第2テナントの第2テナントデータから第1テナントの第1テナントデータが、第1テナント識別子に基づいて、マルチテナントデータベースシステムに結合されたメモリストレージにおいて分離され得る。第1テナントデータのコミットされたトランザクションは、コミットされた及び/又はコミットされていない可能性のある第1テナント及び/又は第2テナントデータのコミットされていないトランザクションデータから分離することができる。
いくつかの実装において、第1テナントデータのコミットされたトランザクションは、不変ストレージで永続化するように書き込まれる前に暗号化されてもよい。マルチテナントデータベースシステムのデーモンが、第1テナントデータの第2テナントデータからの分離と、第1テナントデータの1つ以上のフラグメントの形成を管理することができる。デーモンは、図6に示すマルチテナントデータベースシステム100、図8に示すマルチテナントデータベースシステム200のデータベースサーバ208、210、図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200dにより実行されてもよい。
図1に示す動作14において、第1テナントに関連づけられた第1暗号化鍵が、第1テナント識別子に基づいて、鍵キャッシュメモリ(例えば、図8に示す鍵キャッシュ208、212)から取り出され得る。取り出された第1暗号化鍵は、第1テナントデータの1つ以上のフラグメントを暗号化するために使用することができる。第1テナントに関連づけられた第1暗号化鍵は、第2テナントに関連づけられた第2暗号化鍵とは異なり得る。鍵キャッシュ内に暗号化鍵のコピーを保持することで、鍵管理システム(KMS)(例えば、図6及び図8に示すKMS128)から鍵を取り出すことの時間オーバーヘッドを低減させることができる。デーモンは、第1テナントデータのフラグメントの暗号化を管理するために、第1テナントのための暗号化鍵を取り出すことができる。
いくつかの実装において、キャッシュメモリから第1暗号化鍵を取り出すために、第1テナントに関連づけられた第1暗号化鍵の要求元にアクセスが許可される必要があり得る。要求元は、例えば、図8に示すアプリケーションサーバ202、204、及び/又は図9に示すコンピュータ600でもよい。例えば、要求元は、認証されるべき証明書又は他の識別情報を提供することができる。要求元が認証されたとき、要求元は、第1テナントデータの1つ以上のフラグメントを暗号化するための第1暗号化鍵を受け取ることができる。いくつかの実装において、図8に示すデータベースサーバ208、210、図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200dが、要求元を認証してもよい。
動作16において、マルチテナントデータベースシステムが、取り出された暗号化鍵に基づいて、第1テナントデータの1つ以上のフラグメントのうち1つを暗号化し得る。いくつかの実装において、デーモンが、取り出された第1暗号化鍵を使用する第1テナントデータの1つ以上のフラグメントの暗号化を管理してもよい。
動作18において、第1テナントデータの暗号化された1つ以上のフラグメントの各々についての非暗号化ヘッダ情報が、マルチテナントデータベースシステムにおいて生成され得る。第1テナントのヘッダ情報は、第1テナント識別子を含むメタデータを有し得る。各々の生成された非暗号化ヘッダ情報は、第1テナントデータの各フラグメントに関連づけることができる。動作20において、第1テナントデータの暗号化された1つ以上のフラグメント及び対応する非暗号化ヘッダ情報が、不変ストレージ(例えば、図6及び図8に示す不変ストレージ、図9に示す第2コンピュータ800のストレージ810、図10のデータベースシステム1200a~dなど)に記憶され得る。いくつかの実装において、動作20は、(例えば、図6に示すフラッシャ106による)「フラッシュ」動作の一部でもよく、これにおいて、メモリストレージ(例えば、図6に示すメモリストレージ102)における利用可能な記憶領域を増加させるために、第1テナントデータのコミットされたトランザクションが識別され、暗号化され、マルチテナントデータベースシステムの不変ストレージに記憶される。
図2Aは、開示される主題事項の一実装による、データベースクエリ要求に応答して第1テナントデータの非暗号化フラグメントを取り出す一例示的な方法30を示す。動作32において、マルチテナントデータベースシステム(図6に示すマルチテナントデータベースシステム100、図8に示すマルチテナントデータベースシステム200、及び図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200d)が、第1テナントデータの1つ以上のフラグメントの要求を受信し得る。要求は、図8に示すアプリケーションサーバ202、204、及び/又は図9に示すコンピュータ600からでもよく、図6に示すクエリ126により受信されてもよい。動作34において、マルチテナントデータベースシステムが、マルチテナントデータベースシステムに通信上結合されたブロックキャッシュメモリ(例えば、図6に示すブロックキャッシュ122)が第1テナントデータの要求された1つ以上のフラグメントを含むかどうかを判定し得る。動作36において、ブロックキャッシュメモリが、第1テナントデータの要求された1つ以上のフラグメントを、ブロックキャッシュメモリ内にあると判定されたとき、マルチテナントデータベースシステムに提供し得る。開示される主題事項の実装において、ブロックキャッシュメモリの内容は、暗号化されていなくてもよい(すなわち、暗号文でなく、平文であり得る)。第1テナントデータの1つ以上のフラグメントがブロックキャッシュ内に存在するとき、データベース動作が第1テナントデータのフラグメントに対して実行されてもよく、復号が実行される必要はない。ブロックキャッシュからの1つ以上のフラグメントの取り出しは、不変ストレージにおいて暗号化された1つ以上のフラグメントの位置を特定し、第1テナントの暗号化鍵を取り出し、1つ以上のフラグメントを復号し、復号されたフラグメントをブロックキャッシュに提供するより速いという利点を有し得る。
図2Bは、開示される主題事項の一実装による、要求されたフラグメントがブロックキャッシュメモリに存在しないときにデータベースクエリに応答して第1テナントデータのフラグメントを取り出して復号する一例示的な方法40を示す。第1テナントデータの要求された1つ以上のフラグメントがブロックキャッシュメモリに存在しないと判定されたとき(例えば、図2Aに示す例示的な方法30が、キャッシュメモリにおいて第1テナントデータの暗号化されていないフラグメントを見つけることができないとき)、動作42において、暗号化された第1テナントデータの要求された1つ以上のフラグメントが、第1テナントデータの1つ以上のフラグメントについての非暗号化ヘッダ情報のメタデータを使用することにより不変ストレージ(例えば、図6及び図8に示す不変ストレージ108)において識別され得る。
動作44において、第1暗号化鍵が、非暗号化ヘッダ情報のメタデータに基づいて、第1テナントデータの1つ以上のフラグメントを復号するために鍵キャッシュメモリ(例えば、図8に示す鍵キャッシュ)又は鍵管理システム(KMS)(例えば、図6に示すKMS)から取り出され得る。いくつかの実装において、鍵キャッシュメモリ(例えば、図8に示す鍵キャッシュ208、212)からの第1暗号化鍵の取り出しを試みることができる。第1暗号化鍵は、鍵キャッシュメモリに存在しないとき、KMS(例えば、図6及び図8に示すKMS128)から取り出されてもよい。鍵キャッシュメモリ又はKMSは、要求元が認証されたとき、第1テナントに関連づけられた第1暗号化鍵へのアクセスを許可することができる。例えば、要求元は、認証されるべき証明書又は他の識別情報を提供してもよい。要求元が認証されたとき、要求元は、第1テナントデータの1つ以上のフラグメントを復号するための第1暗号化鍵を受け取ることができる。
動作46において、第1テナントデータの1つ以上のフラグメントが、鍵キャッシュメモリ又はKMSから取り出された第1暗号化鍵を使用して復号され得る。動作48において、第1テナントデータの復号された1つ以上のフラグメントが、ブロックキャッシュメモリ(例えば、図6に示すブロックキャッシュ118)に提供され得る。
1つ以上のフラグメントが復号され(例えば、データは平文形式である)、ブロックキャッシュメモリに存在するとき、フィルタリング、ソート、及び/又はインデキシングなどの1つ以上のデータベース動作が、マルチテナントデータベースシステムにより第1テナントデータの1つ以上のフラグメントに対して実行され得る。すなわち、開示される主題事項の実装は、テナントデータが暗号化されるときにデータベース動作が制限されるか又は利用できない可能性のあるいくつかの従来のマルチテナントシステムと異なり、マルチテナントデータベースシステム内のテナントデータを暗号化し、データベース動作を実行することができる。いくつかの従来のデータベースは、テナントの暗号化をサポートし得るが、テナントが異なるデータベース又は表領域(tablespaces)に論理的に分けられることを要する。開示される主題事項のマルチテナントデータベースシステムにおいて、テナントは、同じデータベース内にコロケートされ(collocated)てもよく、あるいは(例えば、同じテーブル及び/又はインデックス内に)データベースオブジェクトとしてコロケートされてもよく、暗号化された形式で記憶され得るデータに対してデータベース動作を実行してもよい。
いくつかの実装において、マルチテナントデータベースシステムは、第1暗号化鍵及び第2暗号化鍵とは別個であって第1テナント及び第2テナントに関連づけられていないシステム鍵を使用して、マルチテナントデータベースのインデックス(例えば、図6に示すデータエクステント110のブロックインデックス114及び/又はブロックキャッシュ118のブロックインデックス122)及び/又はトランザクションログ(例えば、図6に示すトランザクションログ104)のうち1つ以上を暗号化することができる。以下に詳細に論じるように、図6に示すストレージカタログ116及び一時スピル124も、テナント暗号化鍵とは別個のシステム鍵を使用して暗号化されてもよい。
図3は、開示される主題事項の一実装による、第1テナントデータに関連づけられた第1暗号化鍵を変更し、変更された鍵に基づいて第1テナントデータを新しいバージョンとして不変ストレージに記憶する一例示的な方法50を示す。動作52において、マルチテナントデータベースシステム(例えば、図6に示すマルチテナントデータベースシステム100、図8に示すマルチテナントデータベースシステム200、及び図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200d)が、所定の期間で、又は鍵変更要求を受信したとき、第1暗号化鍵を変更し得る。動作54において、マルチテナントデータベースシステムの不変ストレージ(例えば、図6及び図8に示す不変ストレージ108)が、変更された鍵に基いて第1テナントデータを新しいバージョンとして記憶し得る。暗号化されたテナントデータのセキュリティを維持するために、暗号化鍵の定期的な変更が用いられてもよい。
開示される主題事項の実装において、サンドボックステナントが、既存の非サンドボックステナントデータに基づいて、例えば米国特許公開第2018/0129585号に開示されているように作成されてもよく、該特許公開の開示は、その全体を参照により組み込まれる。いくつかの実装において、1つ以上の新しいサンドボックスが、オリジナルサンドボックスから、例えば米国特許出願第16/133,106号に開示されているように作成されてもよく、該特許出願の開示は、その全体を参照により組み込まれる。例えば、オリジナルサンドボックスは、オリジナルテナントのオリジナルテナントデータから作成されるサンドボックスでもよい。オリジナルサンドボックスは、少なくとも1つのデータソースからのコード、スキーマ、レコード、及びテストデータのうち1つ以上を含むようにテンプレートから形成されてもよい。コード及び/又はテストデータの検証テストが、サンドボックスの複製前に実行されてもよい。1つ以上の複製サンドボックスが、同じ内容を有して作成されてもよい。
記載される主題事項の実装において、ハードウェア及びソフトウェアの組み合わせが、特定のサンドボックステナント識別子とオリジナルテナント識別子との間の対応を作成して、サンドボックステナントに、オリジナルテナントに関連づけられた時点データへの読み取りアクセスを提供することができる。このように、サンドボックステナントは、オリジナルテナントデータをサンドボックステナントの名前空間(namespace)にコピーする必要なく、オリジナルテナントデータを利用することができる。同様に、1つ以上の新しいサンドボックステナント識別子とオリジナルサンドボックステナント識別子との間の対応は、新しいサンドボックステナントに、オリジナルサンドボックステナントに関連づけられた時点データへの読み取りアクセスを提供することができる。
サンドボックステナントにより生成された新しいトランザクションデータは、オリジナルテナントがアクセスできないサンドボックステナント名前空間に書き込むことができる。オリジナルテナントにより生成された新しいトランザクションデータは、サンドボックステナントがアクセスできないオリジナルテナント名前空間に書き込むことができる。このように、新しいサンドボックステナントデータは、オリジナルテナントデータを破壊せず、新しいオリジナルテナントデータ(例えば、これは、後の不変オリジナルテナントデータと呼ばれることがある)は、アプリケーションをテストするためにサンドボックスにより読み書きされるテストデータを破壊しない。同様に、少なくとも1つのサンドボックステナントにより生成された新しいトランザクションデータは、オリジナルサンドボックステナントがアクセスできない少なくとも1つのサンドボックステナント名前空間に書き込むことができる。オリジナルサンドボックステナントにより生成された新しいトランザクションデータは、少なくとも1つの新しいサンドボックステナントがアクセスできないオリジナルサンドボックステナント名前空間に書き込むことができる。少なくとも1つの新しいサンドボックステナントデータは、オリジナルサンドボックステナントデータを破壊せず、新しいオリジナルサンドボックステナントデータは、アプリケーションをテストするために少なくとも1つの新しいサンドボックスにより読み書きされるテストデータを破壊しない。これらの実装は、レコードの永続的な内容を例えばログ構造マージ(Log Structured Merge、LSM)ツリーに記憶する関係データベースと共に使用することができる。
図4は、開示される主題事項の一実装による、第1テナントの第1テナントデータから少なくとも1つの新しいサンドボックステナントデータのための少なくとも1つの新しいサンドボックスを作成し、サンドボックステナントデータを暗号化する一例示的な方法60を示す。動作62において、マルチテナントデータベースシステム(例えば、図6に示すマルチテナントデータベースシステム100、図8に示すマルチテナントデータベースシステム200、及び図9に示す中央コンポーネント700及び/又は第2コンピュータ800、及び/又は図10に示すデータベースシステム1200a~1200d)が、サンドボックステナントを、サンドボックステナント識別子を第1テナントデータの仮想スナップショットに、及びサンドボックス作成時点の後にサンドボックステナントにより作成されたサンドボックステナントデータに関連づけることにより、作成し得る。動作64において、サンドボックステナントデータが、第1暗号化鍵で暗号化され得る。サンドボックステナント及び/又は暗号化されたサンドボックステナントデータは、不変ストレージ(例えば、図6及び図8に示す不変ストレージ108)に記憶することができる。いくつかの実装において、マルチテナントデータベースシステムは、サンドボックステナントが作成された後、サンドボックステナントのための新しい鍵を選択してもよい。
図5は、第1テナントデータのメタデータを使用してソースデータベースインスタンスから宛先データベースインスタンスに第1テナントデータを移行する一例示的な方法を示す。開示される主題事項の実装は、マルチテナントデータベースシステムのテナントをソースデータベースインスタンスから宛先データベースインスタンスへ、行ごとのデータコピー、本番(production)データの複製、又は複製された本番データに対する操作を要することなく移行させることができる。この移行は、従来のテナント移行手法より速く、プロセッサリソース、データ記憶及び永続リソース、及び/又はデータパス(例えば、通信ネットワーク)リソースの観点でより低コストで完了することができる。多くの場合、移行されたデータに関して一貫性チェック又は他の修正措置が行われる必要はなく、それにより、さらなる時間及びシステムリソースを節約する。ソースデータベースインスタンスから宛先データベースへのテナントデータの移行は、例えば米国特許公開第2018/0373708号で詳細に説明され得、該特許公開の開示は、その全体を参照により組み込まれる。
図5に示す動作72において、ソースデータベースインスタンス(例えば、図8に示すデータベースサーバ208)から移行されるべき第1テナントのメタデータが、宛先データベースインスタンス(例えば、図8に示すデータベースサーバ210)に送信され得る。宛先データベースインスタンスは、ソースデータベースインスタンスと異なる物理的サーバ又は仮想化サーバ上に位置してもよい。動作74において、宛先データベースインスタンスにおける第1テナントのメタデータが、宛先データベースインスタンスが第1テナントデータにアクセスするための宛先データベースのストレージ内のデータのグルーピングを指し示す情報を有するように、修正され得る。移行テナントデータは、その暗号化を保持することができ、暗号化鍵は、テナントデータと共に移行することができる。移行テナントデータは、不変ストレージ(例えば、図8に示す不変ストレージ108)に記憶されてもよい。いくつかの実装において、マルチテナントデータベースシステムは、データが移行された後、移行されたテナントデータのための新しい鍵を選択してもよい。
図6は、開示される主題事項の実装による、図1~図5に示す例示的な方法の分離に関連して使用され得るマルチテナントデータベースシステム100のシステムアーキテクチャの一例を示す。
マルチテナントデータベースシステム100は、データベースシステム、サーバシステム、クラウドサーバシステムなどでもよい。メモリストレージ(memory storage)102は、第1テナント及び/又は第2テナントのコミットされた及び/又はコミットされていないトランザクションデータ(例えば、第1テナントデータ及び/又は第2テナントデータ)を記憶するためのシステム100のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。いくつかの実装において、メモリストレージ102は、半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせでもよい。メモリストレージ102に記憶されたテナントデータは、暗号化されていないデータであり得る。
トランザクションログ104は、データベースシステムに対する任意の動作及び/又は変更(例えば、データの取り出し、トランザクションのコミット、データのフラッシュ、データの記憶など)を記憶するためのシステム100のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。メモリストレージ102内のテナントデータに対して実行される各トランザクションは、トランザクションログ104に記憶され得る。トランザクションログ104は、いかなる特定テナントにも属し得ないシステム暗号化鍵を使用して暗号化されてもよい。
フラッシャ(Flusher)106は、メモリストレージ102に記憶されたコミットされたトランザクションを不変ストレージ(immutable storage)108に対してデータエクステント(例えば、データエクステント110)に記憶するためのシステム100のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。不変ストレージ108は、物理的データストレージ、例えば半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせなどでもよい。
メモリストレージ102に記憶されたコミットされたテナントデータ(例えば、第1テナントデータ)が、不変ストレージ108に記憶されるべきとき、フラッシャ106は、データを暗号化し、それを不変ストレージ108のデータエクステント(例えば、データエクステント110)に記憶するために、鍵キャッシュ(例えば、図8に示す鍵キャッシュ)又は鍵管理システム128から暗号化鍵(例えば、第1暗号化鍵)を取り出すことができる。いくつかの実装において、テナントデータは、暗号化されて不変ストレージ118に記憶される前に、圧縮されてもよい。
データエクステント(data extent)110は、テナントデータのフラグメント111、112、及び113を含み得る。図6に示すように、テナントデータのフラグメント111及びテナントデータのフラグメント112は、第1テナント(例えば、テナントA)に関してもよく、テナントデータのフラグメント113は、第2テナント(例えば、テナントB)に関してもよい。テナントデータのフラグメント111、112、及び113の各々は、単一のテナントのレコードのみを含んでもよい。第1テナントのテナントデータのフラグメント111及び112は、第1暗号化鍵で暗号化されてもよく、第2テナントのテナントデータのフラグメント113は、第2暗号化鍵で暗号化されてもよい。ブロックインデックス114は、テナントデータのフラグメント111、112、及び113の不変ストレージ108内のデータベーステーブルのインデックス番号を含み、データベーステーブルにおけるそれらの位置を示し得る。ブロックインデックス114は、いかなる特定テナントにも属し得ないシステム暗号化鍵で暗号化されてもよい。
ストレージカタログ(storage catalog)116は、不変ストレージに通信上結合され得、データエクステント(データエクステント110など)及びエクステント参照(extent references)を記憶するためのシステム100のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。例えば、ストレージカタログは、メモリストレージ102は、半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせでもよい。エクステント参照は、物理的ストレージ(例えば、記憶デバイス)に記憶された物理的エクステントへの論理的参照として使用することができ、物理的ストレージへのアクセスを仮想化するために使用することができる。データエクステントは、テナントデータの1つ以上のフラグメント(例えば、テナントデータのフラグメント111、112、113など)及びブロックインデックスを含み得る。ストレージカタログ116は、いかなる特定テナントにも属し得ないシステム暗号化鍵を使用して暗号化されてもよい。
ブロックキャッシュ118は、半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせであり得る。ブロックキャッシュ118は、テナントデータのフラグメント119、120、及び121を含むことができる。テナントデータのフラグメント119、120、及び121の各々は、単一のテナントのレコードのみを含んでもよい。テナントデータのフラグメント119、120、及び121は、暗号化されていなくてもよい(すなわち、平文でもよい)。ブロックインデックス122は、テナントデータのフラグメント119、120、及び120のインデックス番号を含み、テーブル内のそれらの位置を示し得る。ブロックインデックス122は、暗号化されていなくてもよい。図1~図2Bに関連して上述したように、フィルタリング、ソート、インデキシングなどのデータベース動作は、ブロックキャッシュ118内の非暗号化データに対して実行され得る。
一時スピル(Temp spills)124は、ブロックキャッシュ118に記憶されたデータのオーバーフローを取り扱うための半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせであり得る。すなわち、テナントデータのフラグメント119、120、及び121、及び/又はブロックインデックス122のデータサイズが、ブロックキャッシュ118のデータキャパシティを超えるとき、一時スピル124は、オーバーフローデータ(例えば、データキャパシティを超える可能性があるためブロックキャッシュ118に適合しないデータ)を記憶することができる。ブロックキャッシュ118のデータキャパシティは、トランザクションがメモリストレージ102に書き込まれるとき(ここで、コミットされたトランザクションは不変ストレージ108にフラッシュされ得る)、増加されてもよい。一時スピルに記憶されたテナントデータのフラグメント及び/又はブロックインデックスデータは、暗号化されていなくてもよい。
クエリ126は、マルチテナントデータベースシステム100により、例えば、1つ以上のアプリケーション及び/又はアプリケーションサーバ(例えば、図8に示すアプリケーションサーバ202及び/又はアプリケーションサーバ204)により受信することができ、メモリストレージ102及び/又はブロックキャッシュ118内に暗号化されていないテナントデータとして記憶され得る及び/又は不変ストレージ108内に暗号化されたテナントデータとして記憶され得るテナントデータを要求する。いくつかの実装において、マルチテナントデータベースシステム100のデーモンが、要求されたテナントデータがブロックキャッシュ118に存在するかどうかを判定することができる。要求されたテナントデータがブロックキャッシュ118に存在せず、暗号化されて不変ストレージ118に記憶されている場合、図2A~図2Bに関連して上述したように、テナントデータを復号し、それをブロックキャッシュ118に提供するために、暗号化鍵(例えば、第1データの第1暗号化鍵)が鍵キャッシュ(例えば、図8に示す鍵キャッシュ)から、又は鍵管理システム128から取り出され得る。
マージ器(Merger)130は、既存のレコードを更新し(かつ、それらを新しいレコードとして書き込み)、かつ/あるいはマルチテナントデータベースシステム100において新しいレコードを生成し得る。
図7は、開示される主題事項の一実装による、図4に示す例示的な方法を使用して第1テナントデータの異なるフラグメントに対して異なるサンドボックスを作成する一例示的なアーキテクチャを示す。いくつかの実装において、図4に示す動作62において、マルチテナントデータベースシステム100は、サンドボックステナントを、サンドボックステナント識別子を第1テナントデータ(例えば、図7に示す第1テナントデータのフラグメント111)の仮想スナップショットに、及びサンドボックス作成時点の後にサンドボックステナント(例えば、サンドボックステナント1a1a)により作成されたサンドボックステナントデータ(第1テナントの第1サンドボックス111aのサンドボックステナントデータ)に関連づけることにより、作成することができる。サンドボックステナント111aのサンドボックステナントデータは、図4の動作64において、第1暗号化鍵(例えば、第1テナントのテナントデータのフラグメント111を暗号化するために使用されるのと同じ暗号化鍵)で暗号化されてもよい。
いくつかの実装において、マルチテナントデータベースシステムは、サンドボックステナントが作成された後、サンドボックステナント(例えば、サンドボックステナント111a)に対して新しい鍵を選択することができる。マルチテナントデータベースシステム100は、新しい暗号化鍵を使用してサンドボックステナント111aのサンドボックステナントデータを暗号化してもよく、再暗号化されたデータは、不変ストレージ108内のデータエクステントに記憶されてもよい。新たに暗号化されたデータは、サンドボックスが開始した際のデータのテナントデータと、サンドボックス作成時点の後に生成された任意のサンドボックスデータを含み得る。
いくつかの実装において、第1テナントデータのフラグメント111から複数のサンドボックスを作成することができる。他の実装において、マルチテナントデータベースシステム100は、同じテナント(例えば、第1テナント)の異なるデータフラグメントに対して異なるサンドボックスを作成することができる。図7に示すように、第1テナントデータのフラグメント111を使用して、サンドボックステナント111aを作成してもよく、第1テナントの異なるフラグメント112を使用して、サンドボックステナント112aを作成してもよい。
図8は、開示される主題事項の実装による、鍵管理を備えた一例示的なマルチテナントデータベースシステム200を示す。システム200は、アプリケーションサーバ202及び/又はアプリケーションサーバ204などの1つ以上のアプリケーションサーバを含むことができる。アプリケーションサーバ202及び/又はアプリケーションサーバ204は、物理的サーバ、仮想化サーバ、及び/又はクラウドサーバシステムでもよい。
アプリケーションサーバ202、204は、1つ以上のアプリケーションを実行し、データベースサーバ206及び/又はデータベースサーバ210などの1つ以上のデータベースサーバに対してクエリ及び/又は書き込み要求を発行することができる。データベースサーバ206、210は、物理的サーバ、仮想化サーバ、及び/又はクラウドサーバシステムでもよい。いくつかの実装において、データベースサーバ206、210は、上述した図6に示すシステム100のメモリストレージ102、トランザクションログ104、フラッシャ106、ブロックキャッシュ118、及び/又は一時スピル124のうち1つ以上を含むことができる。
データベースサーバ206は鍵キャッシュ208を含んでもよく、データベースサーバ210は鍵キャッシュ212を含んでもよい。上述のように、鍵キャッシュ208、212は、テナントデータを暗号化及び/又は復号するための1つ以上の暗号化鍵を記憶することができる。データベースサーバ206、210は、図6に関連して詳細に上述した不変ストレージ108に通信上結合することができる。
KMS128は、テナントデータを暗号化及び/又は復号するための暗号化鍵を生成し、割り当て、記憶し、管理し、及び/又は取り出すためのハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。例えば、KMS128は、第1テナントに関連づけられた第1暗号化鍵又は第2テナントに関連づけられた第2暗号化鍵などの暗号化鍵を生成し、割り当て、記憶し、及び/又は取り出すことができる。KMS128は、テナント暗号化鍵及び/又はシステム暗号化鍵(すなわち、インスタンス鍵)を管理することができ、該システム暗号化鍵は、テナント間データを暗号化するために使用され得る(例えば、トランザクションログ104、一時スピル124、ストレージカタログ116、及び/又はブロックインデックス114を暗号化するために使用される暗号化鍵)。いくつかの実装において、第1暗号化鍵及び/又は第2暗号化鍵などの暗号化鍵は、KMS128に記憶することができ、KMS128は、半導体メモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ、光学メモリ、光学記憶デバイス、又は任意の他の適切な物理的データ記憶媒体、又はこれらの何らかの組み合わせを含み、かつ/あるいはこれらに通信上結合され得る。KMS128は、鍵のローテーション、鍵の削除、鍵の使用監視などの鍵ライフサイクル管理を提供することができる。KMS128は、アプリケーションサーバ202、204により提供され得る1つ以上のテナントに対して独自鍵持ち込み(bring-your-own-key、BYOK)をサポートしてもよい。
本開示の主題事項の実装は、様々なコンポーネント及びネットワークアーキテクチャにおいて実装され、それらと共に使用され得る。いくつかの実装において、図6及び図8に示すシステムアーキテクチャは、上述のように、図9~図10に示すコンポーネント及びネットワークアーキテクチャを使用して実装することができる。
図9は、本開示の主題事項の実装を実施するのに適した一例示的なコンピュータ600である。本明細書でさらに詳細に論じるように、コンピュータ600は、複数のコンピュータのネットワーク内の単一のコンピュータでもよい。図9に示すように、コンピュータ600は、中央又は分散コンポーネント700(例えば、サーバ、クラウドサーバ、データベース、クラスタ、アプリケーションサーバなど)と通信することができる。中央コンポーネント700は、第2コンピュータ800などの1つ以上の他のコンピュータと通信することができ、第2コンピュータ800は、ストレージ810を含み得る。第2コンピュータ800は、サーバ、クラウドサーバなどでもよい。ストレージ810は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光学媒体、フラッシュメモリ、テープドライブ、レジスタ、及びランダムアクセスメモリ等、又はこれらの任意の組み合わせを含む、任意の適切な揮発性及び不揮発性物理記憶媒体の任意の適切な組み合わせを使用することができる。
データは、任意の適切なファイルシステム又は記憶スキーム又は階層を使用して、任意の適切なフォーマットで、例えばストレージ810に記憶することができる。例えば、ストレージ810は、複数のレベルを有するログ構造マージ(LSM)ツリーを使用してデータを記憶することができる。さらに、図9~図10に示すシステムがマルチテナントシステムである場合、ストレージは、テナントのためのデータベースの各インスタンスについて別個のログ構造マージツリーに編成することができる。あるいは、特定のサーバ又はシステム上の全てのレコードの内容が、単一のログ構造マージツリー内に記憶されてもよく、その場合、レコードのバージョンに関連づけられた一意のテナント識別子を、本明細書に開示されるように、各テナントのデータを区別するために使用することができる。例えば、ある一意テナント識別子が第1テナントに関連づけられてもよく、異なる識別子が第2テナントに関連づけられてもよい。より最近のトランザクションは、ツリーの最も高いレベル又は上位レベルに記憶することができ、より古いトランザクションは、ツリーのより低いレベルに記憶することができる。あるいは、各レコードの最も最近のトランザクション又はバージョン(すなわち、各レコードの内容)が、ツリーの最も高いレベルに記憶され、前のバージョン又は前のトランザクションが、ツリーのより低いレベルに記憶されてもよい。
中央コンポーネント700に対して、及び/又は中央コンポーネント700から得られる情報は、コンピュータ600がコンピュータ800と情報を共有し得ないように、各コンピュータについて分離することができる。あるいは又はさらに、コンピュータ600は、第2コンピュータ800と直接通信してもよい。
コンピュータ(例えば、ユーザコンピュータ、エンタープライズコンピュータ等)600は、中央プロセッサ640、メモリ670(典型的にはRAMだが、ROM、フラッシュRAM等も含むことができる)、入力/出力コントローラ680、ディスプレイ又はタッチスクリーンなどのユーザディスプレイ620、ユーザ入力インターフェース660などのコンピュータ600の主要コンポーネントを相互接続するバス610を含み、ユーザ入力インターフェース660は、1つ以上のコントローラと、キーボード、マウス、WiFi/セルラ無線機、タッチスクリーン、マイクロフォン/スピーカなどの関連するユーザ入力又は装置を含み得、I/Oコントローラ680と、ハードドライブ、フラッシュストレージ、ファイバチャネルネットワーク、SAN装置、SCSI装置などの固定ストレージ630と、光ディスク、フラッシュドライブ等を制御し及び受けるように動作するリムーバブル媒体コンポーネント650に密に結合され得る。
バス610は、前述したように、中央プロセッサ640とメモリ670との間のデータ通信を可能にし、メモリ670には、読取専用メモリ(ROM)又はフラッシュメモリ(いずれも図示せず)、及びランダムアクセスメモリ(RAM)(図示せず)を含んでもよい。RAMは、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリを含むことができる。ROM又はフラッシュメモリは、他のコードの中でも、周辺コンポーネントとの相互作用などの基本的なハードウェア動作を制御する基本入出力システム(BIOS)を含むことができる。コンピュータ600に存在するアプリケーションは、ハードディスクドライブ(例えば、固定ストレージ630)、光学ドライブ、フロッピーディスク、又は他の記憶媒体650などのコンピュータ読取可能媒体に記憶され、これを介してアクセスすることができる。
固定ストレージ630は、コンピュータ600と一体的でもよく、あるいは別個で、他のインターフェースを通じてアクセスされてもよい。ネットワークインターフェース690は、インターネットサービスプロバイダ(ISP)を介したインターネットへの電話リンクを介したリモートサーバへの直接接続、又はPOP(プレゼンスポイント(point of presence))又は他の手法を介したインターネットへの直接ネットワークリンクを介したリモートサーバへの直接接続を提供することができる。ネットワークインターフェース690は、デジタルセルラー電話接続、セルラーデジタルパケットデータ(CDPD)接続、デジタル衛星データ接続などを含む無線技術を使用して、そのような接続を提供することができる。例えば、ネットワークインターフェース690は、図10に示すように、コンピュータが1つ以上のローカル、ワイドエリア、又は他のネットワークを介して他のコンピュータと通信することを可能にし得る。
多くの他のデバイス又はコンポーネント(図示せず)を、同様の方法で接続することができる(例えば、データキャッシュシステム、アプリケーションサーバ、通信ネットワークスイッチ、ファイアウォールデバイス、認証及び/又は認可サーバ、コンピュータ及び/又はネットワークセキュリティシステムなど)。反対に、本開示を実施するために、図10に示されるコンポーネントの全てが存在する必要はない。コンポーネントは、図示のものと異なる方法で相互接続することができる。図9~図10に示すようなコンピュータの動作は、当該分野で容易にわかり、本出願では詳細に論じない。本開示を実装するためのコードは、メモリ670、固定ストレージ630、リムーバブル媒体650のうち1つ以上などのコンピュータ読取可能記憶媒体に、又はリモートのストレージ位置に記憶することができる。
図10は、開示される主題事項の一実装による一例示的なネットワーク構成を示す。クラウド1202により表されるネットワーク内の異なるノードにおける4つの別個のデータベースシステム1200a~dは、ネットワークリンク1204を通じて互いに、及びユーザ(図示せず)と通信する。データベースシステム1200の各々は、データベースの複数のインスタンスをホストするように動作可能であり得、各インスタンスは、特定のテナント(例えば、第1テナント、第2テナントなど)に関連づけられたユーザのみがアクセス可能である。データベースシステムの各々は、ストレージエリアネットワーク(図示せず)、ロードバランサ、及びバックアップサーバと共に、ファイアウォール、他のセキュリティシステム、及び認証システムと共に、コンピュータのクラスタを構成することができる。システム1200のうちいずれかのインスタンスのうちいくつかが、データを取り込んでインスタンス内のストレージに提供するために、ユーザから、又はコンピューティング要素(図示せず)から受け取ったトランザクションを処理及びコミットするライブ又は本番インスタンスでもよい。
さらに、マルチテナントシステムは、各ノードにコンピューティングシステムを有するネットワーク全体に分散されたサーバシステム上に様々なテナントインスタンスを有することができる。各テナントのライブ又は本番データベースインスタンスは、そのトランザクションを1つのコンピュータシステムでのみ処理させてもよい。そのインスタンスのトランザクションを処理するコンピューティングシステムは、他のテナントのための他のインスタンスのトランザクションをさらに処理してもよい。
より一般的には、本開示の主題事項の様々な実装は、コンピュータにより実装されたプロセス及びこれらのプロセスを実施する装置の形態を含んでもよく、あるいは該形態で実装されてもよい。また、実装は、フロッピーディスケット、CD-ROM、ハードドライブ、USB(ユニバーサルシリアルバス)ドライブ、又は任意の他のマシン読取可能記憶媒体などの非一時的及び/又は有形媒体に実装された命令を含むコンピュータプログラムコードを有するコンピュータプログラムプロダクトの形態で実施されてもよく、コンピュータプログラムコードがコンピュータにロードされ、コンピュータにより実行されたとき、コンピュータは、開示される主題事項の実装を実施する装置になる。また、実装は、例えば、記憶媒体に記憶され、コンピュータにロードされ、及び/又はコンピュータにより実行されるか、あるいは電気配線若しくはケーブル接続を通じて、光ファイバを通じて、又は電磁放射を介してなどで何らかの伝送媒体を通じて伝送されるかにかかわらず、コンピュータプログラムコードの形態で実施されてもよく、コンピュータプログラムコードがコンピュータにロードされ、コンピュータにより実行されたとき、コンピュータは、開示される主題事項の実装を実施する装置になる。汎用マイクロプロセッサ上に実装されたとき、コンピュータプログラムコードセグメントが、特定の論理回路を作り出すようにマイクロプロセッサを構成する。いくつかの構成において、コンピュータ読取可能記憶媒体に記憶されたコンピュータ読取可能命令のセットは、汎用プロセッサにより実施されてもよく、これは、汎用プロセッサ又は汎用プロセッサを含むデバイスを、命令を実施又は実行するように構成された専用デバイスに変換することができる。実装は、ハードウェア及び/又はファームウェアにおける開示される主題事項の実装による手法の全部又は一部を実施する汎用マイクロプロセッサ及び/又は特定用途向け集積回路(ASIC)などの、プロセッサを含み得るハードウェアを使用して実施されてもよい。プロセッサは、RAM、ROM、フラッシュメモリ、ハードディスク、又は電子情報を記憶することができる任意の他のデバイスなどのメモリに結合されてもよい。メモリは、開示される主題事項の実装による手法を実行するために、プロセッサにより実行されるように適合された命令を記憶することができる。
上述の記載は、説明の目的で、特定の実装を参照して記載された。しかしながら、上記の例示的な議論は、網羅的であること、又は開示される主題事項の実装を開示された正確な形態に限定することを意図したものではない。上記の教示を考慮し、多くの修正及びバリエーションが可能である。実装は、開示される主題事項の実装の原理及びそれらの実際の適用を説明し、それにより、当業者がそれらの実装と企図された特定の用途に適し得る様々な修正を備えた様々な実装を利用できるように選択され、記載されている。

Claims (24)

  1. 第1テナントの第1テナントデータと第2テナントの第2テナントデータとを少なくとも記憶するマルチテナントデータベースシステムの前記第1テナントの前記第1テナントデータの少なくとも一部のセキュリティを管理するコンピュータ化された方法であって、前記第1テナントの前記第1テナントデータは、第1テナント識別子に関連づけられた前記マルチテナントデータベースシステムの不変ストレージに記憶され、前記第2テナントの第2テナントデータは、第2テナント識別子に関連づけられた前記マルチテナントデータベースシステムの前記不変ストレージに記憶され、前記第1テナントデータ及び前記第2テナントデータの任意の部分が、前記マルチテナントデータベースシステム内の同じデータベースオブジェクトの少なくとも1つに論理的に属し、当該方法は、
    前記マルチテナントデータベースシステムに結合されたメモリストレージで、前記第1テナント識別子に基づいて、前記第1テナントの前記第1テナントデータを少なくとも前記第2テナントの前記第2テナントデータから分離するステップと、
    前記第1テナント識別子に基づいて、鍵キャッシュメモリから、前記第1テナントデータの1つ以上のフラグメントを暗号化するための前記第1テナントに関連づけられた第1暗号化鍵を取り出すステップであり、前記第1暗号化鍵は、前記第2テナントに関連づけられた第2暗号化鍵と異なる、ステップと、
    前記マルチテナントデータベースシステムで、前記取り出された第1暗号化鍵に基づいて前記第1テナントデータの前記1つ以上のフラグメントのうち少なくとも1つを暗号化するステップと、
    前記マルチテナントデータベースシステムで、前記第1暗号化鍵及び前記第2暗号化鍵と異なるシステム暗号化鍵を使用してテナント間データを暗号化するステップであり、前記テナント間データは前記第1テナント及び前記第2テナントに関するデータであり、ブロックインデックスとトランザクションログとを含む群から選択された少なくとも1つである、ステップと、
    前記マルチテナントデータベースシステムで、前記第1テナントデータの前記暗号化された1つ以上のフラグメントの各々について非暗号化ヘッダ情報を生成するステップであり、前記ヘッダ情報は前記第1テナント識別子を含むメタデータを有する、ステップと、
    前記不変ストレージに、前記第1テナントデータの前記暗号化された1つ以上のフラグメント及び対応する非暗号化ヘッダ情報を記憶するステップと、前記暗号化されたテナント間データを記憶するステップと
    を含む方法。
  2. 前記第1テナントデータは、コミットされたトランザクションに関する、請求項1に記載の方法。
  3. 要求元が認証されたとき、前記第1テナントに関連づけられた前記第1暗号化鍵へのアクセスを許可するステップ
    をさらに含む請求項1に記載の方法。
  4. 前記マルチテナントデータベースシステムで、前記第1テナントデータの前記1つ以上のフラグメントの要求を受信するステップと、
    前記マルチテナントデータベースシステムで、前記マルチテナントデータベースシステムに通信上結合されたブロックキャッシュメモリが前記第1テナントデータの前記要求された1つ以上のフラグメントを含むかどうかを判定するステップと、
    前記ブロックキャッシュメモリ内にあると判定されたとき前記第1テナントデータの前記要求された1つ以上のフラグメントを前記マルチテナントデータベースシステムに提供するステップと、
    をさらに含む請求項1に記載の方法。
  5. 前記第1テナントデータの前記要求された1つ以上のフラグメントが前記ブロックキャッシュメモリ内に存在しないと判定されたとき、前記第1テナントデータの前記1つ以上のフラグメントについての前記非暗号化ヘッダ情報の前記メタデータを使用することにより、暗号化された前記第1テナントデータの前記要求された1つ以上のフラグメントを識別するステップと、
    前記非暗号化ヘッダ情報の前記メタデータに基づいて、前記第1テナントデータの前記1つ以上のフラグメントを復号するために、前記鍵キャッシュメモリ又は鍵管理システム(KMS)から前記第1暗号化鍵を取り出すステップと、
    前記取り出された第1暗号化鍵を使用して前記第1テナントデータの前記1つ以上のフラグメントを復号するステップと、
    前記第1テナントデータの前記復号された1つ以上のフラグメントを前記ブロックキャッシュメモリに提供するステップと、
    さらに含む請求項4に記載の方法。
  6. 要求元が認証されたとき、前記鍵キャッシュメモリで、前記第1テナントに関連づけられた前記第1暗号化鍵へのアクセスを許可するステップ
    をさらに含む請求項5に記載の方法。
  7. 前記第1暗号化鍵は、前記第1暗号化鍵が前記鍵キャッシュメモリで入手できないとき、前記KMSから取り出される、請求項5に記載の方法。
  8. 前記マルチテナントデータベースシステムで、前記ブロックキャッシュメモリにおいて前記第1テナントデータの前記1つ以上のフラグメントをフィルタリングすること、ソートすること、及びインデキシングすることを含む群から選択された動作のうち少なくとも1つを実行するステップ
    をさらに含む請求項4に記載の方法。
  9. 前記マルチテナントデータベースシステムで、所定の期間で、又は鍵変更要求を受信したとき、前記第1暗号化鍵を変更するステップと、
    前記マルチテナントデータベースシステムの前記不変ストレージに、前記第1テナントデータを前記変更された鍵に基づいて新しいバージョンとして記憶するステップと、
    をさらに含む請求項1に記載の方法。
  10. 前記マルチテナントデータベースシステムで、サンドボックステナントを、サンドボックステナント識別子を前記第1テナントデータの仮想スナップショットに、及びサンドボックス作成時点の後に前記サンドボックステナントにより作成されたサンドボックステナントデータに関連づけることにより、作成するステップ
    をさらに含み、
    前記サンドボックステナントデータは、前記第1暗号化鍵で暗号化される、請求項1に記載の方法。
  11. 前記マルチテナントデータベースシステムで、前記サンドボックステナントが作成された後、前記サンドボックステナントに対して新しい鍵を選択するステップ
    をさらに含む請求項1に記載の方法。
  12. ソースデータベースインスタンスから移行されるべき前記第1テナントのメタデータを宛先データベースインスタンスに送信するステップであり、前記宛先データベースインスタンスは、前記ソースデータベースインスタンスと異なる物理的サーバ又は仮想化サーバに位置する、ステップと、
    前記宛先データベースインスタンスで、前記第1テナントの前記メタデータを、前記宛先データベースインスタンスが前記第1テナントデータにアクセスするための宛先データベースのストレージ内のデータのグルーピングを指し示す情報を有するように、修正するステップと、
    をさらに含む請求項1に記載の方法。
  13. 第1テナントの第1テナントデータと第2テナントの第2テナントデータとを少なくとも記憶するマルチテナントデータベースシステムの前記第1テナントの前記第1テナントデータの少なくとも一部のセキュリティを管理するシステムであって、前記第1テナントの前記第1テナントデータは、第1テナント識別子に関連づけられた前記マルチテナントデータベースシステムの不変ストレージに記憶され、前記第2テナントの前記第2テナントデータは、第2テナント識別子に関連づけられた前記マルチテナントデータベースシステムの前記不変ストレージに記憶され、前記第1テナントデータ及び前記第2テナントデータの任意の部分が、同じデータベースオブジェクトの少なくとも1つに論理的に属し、当該システムは、
    前記マルチテナントデータベースシステムに結合されたメモリストレージで、前記第1テナント識別子に基づいて、前記第1テナントの前記第1テナントデータを少なくとも前記第2テナントの前記第2テナントデータから分離するメモリストレージと、
    前記第1テナント識別子に基づいて、前記第1テナントデータの1つ以上のフラグメントを暗号化するための前記第1テナントに関連づけられた第1暗号化鍵を記憶する鍵キャッシュメモリであり、前記第1暗号化鍵は、前記第2テナントに関連づけられた第2暗号化鍵と異なる、鍵キャッシュメモリと、
    前記マルチテナントデータベースシステムの1つ以上のサーバであり、前記メモリストレージ及び前記鍵キャッシュメモリに通信上結合され、取り出された第1暗号化鍵に基づいて前記第1テナントデータの前記1つ以上のフラグメントのうち少なくとも1つを暗号化し、前記第1暗号化鍵及び前記第2暗号化鍵と異なるシステム暗号化鍵を使用してテナント間データを暗号化することであって、前記テナント間データは前記第1テナント及び前記第2テナントに関するデータであり、ブロックインデックスとトランザクションログとを含む群から選択された少なくとも1つであり、前記第1テナントデータの前記暗号化された1つ以上のフラグメントの各々について非暗号化ヘッダ情報を生成することであって、前記ヘッダ情報は前記第1テナント識別子を含むメタデータを有する、前記マルチテナントデータベースシステムの1つ以上のサーバと、
    を備え、
    記第1テナントデータの前記暗号化された1つ以上のフラグメント及び対応する非暗号化ヘッダ情報、並びに前記暗号化されたテナント間データは、前記不変ストレージに記憶される、システム。
  14. 前記第1テナントデータは、コミットされたトランザクションに関する、請求項1に記載のシステム。
  15. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、要求元が認証されたとき、前記第1テナントに関連づけられた前記第1暗号化鍵へのアクセスを許可する、請求項1に記載のシステム。
  16. 前記マルチテナントデータベースシステムの前記1つ以上のサーバに通信上結合されたブロックキャッシュメモリ、をさらに備え、
    前記マルチテナントデータベースシステムの前記1つ以上のサーバは、前記第1テナントデータの前記1つ以上のフラグメントの要求を受信し、前記ブロックキャッシュメモリが前記第1テナントデータの前記要求された1つ以上のフラグメントを含むかどうかを判定し、
    前記ブロックキャッシュメモリは、前記ブロックキャッシュメモリ内にあると判定されたとき前記第1テナントデータの前記要求された1つ以上のフラグメントを前記マルチテナントデータベースシステムに提供する、請求項1に記載のシステム。
  17. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、前記第1テナントデータの前記要求された1つ以上のフラグメントが前記ブロックキャッシュメモリ内に存在しないと判定されたとき、前記第1テナントデータの前記1つ以上のフラグメントについての前記非暗号化ヘッダ情報の前記メタデータを使用することにより、暗号化された前記第1テナントデータの前記要求された1つ以上のフラグメントを識別し、前記非暗号化ヘッダ情報の前記メタデータに基づいて、前記第1テナントデータの前記1つ以上のフラグメントを復号するために、前記鍵キャッシュメモリ又は鍵管理システム(KMS)から前記第1暗号化鍵を取り出し、前記取り出された第1暗号化鍵を使用して前記第1テナントデータの前記1つ以上のフラグメントを復号し、前記第1テナントデータの前記復号された1つ以上のフラグメントを前記ブロックキャッシュメモリに提供する、請求項1に記載のシステム。
  18. 前記鍵キャッシュメモリは、要求元が認証されたとき、前記第1テナントに関連づけられた前記第1暗号化鍵へのアクセスを許可する、請求項1に記載のシステム。
  19. 前記第1暗号化鍵は、前記第1暗号化鍵が前記鍵キャッシュメモリで入手できないとき、前記KMSから取り出される、請求項1に記載のシステム。
  20. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、前記ブロックキャッシュメモリにおいて前記第1テナントデータの前記1つ以上のフラグメントをフィルタリングすること、ソートすること、及びインデキシングすることを含む群から選択された動作のうち少なくとも1つを実行する、請求項1に記載のシステム。
  21. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、所定の期間で、又は鍵変更要求を受信したとき、前記第1暗号化鍵を変更し、
    前記マルチテナントデータベースシステムの前記不変ストレージは、前記第1テナントデータを前記変更された鍵に基づいて新しいバージョンとして記憶する、請求項1に記載のシステム。
  22. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、サンドボックステナントを、サンドボックステナント識別子を前記第1テナントデータの仮想スナップショットに、及びサンドボックス作成時点の後に前記サンドボックステナントにより作成されたサンドボックステナントデータに関連づけることにより、作成し、
    前記サンドボックステナントデータは、前記第1暗号化鍵で暗号化される、請求項1に記載のシステム。
  23. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、前記サンドボックステナントが作成された後、前記サンドボックステナントに対して新しい鍵を選択する、請求項2に記載のシステム。
  24. 前記マルチテナントデータベースシステムの前記1つ以上のサーバは、ソースデータベースインスタンスから移行されるべき前記第1テナントのメタデータを宛先データベースインスタンスに送信することであって、前記宛先データベースインスタンスは、前記ソースデータベースインスタンスと異なる物理的サーバ又は仮想化サーバに位置し、前記宛先データベースインスタンスで、前記第1テナントの前記メタデータを、前記宛先データベースインスタンスが前記第1テナントデータにアクセスするための宛先データベースのストレージ内のデータのグルーピングを指し示す情報を有するように、修正する、請求項1に記載のシステム。
JP2021504785A 2019-01-31 2020-01-10 マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法 Active JP7193615B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/263,751 2019-01-31
US16/263,751 US11238174B2 (en) 2019-01-31 2019-01-31 Systems and methods of database encryption in a multitenant database management system
PCT/US2020/013169 WO2020159694A1 (en) 2019-01-31 2020-01-10 Systems and methods of database encryption in a multitenant database management system

Publications (2)

Publication Number Publication Date
JP2021533619A JP2021533619A (ja) 2021-12-02
JP7193615B2 true JP7193615B2 (ja) 2022-12-20

Family

ID=69526303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021504785A Active JP7193615B2 (ja) 2019-01-31 2020-01-10 マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法

Country Status (5)

Country Link
US (2) US11238174B2 (ja)
EP (2) EP4235475B1 (ja)
JP (1) JP7193615B2 (ja)
CN (1) CN112889054B (ja)
WO (1) WO2020159694A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11438320B1 (en) * 2011-11-27 2022-09-06 Charles Schwab & Co., Inc. System and method for receiving information among computer systems without enabling log ins if the user identifiers are compromised
US11537724B2 (en) * 2019-03-26 2022-12-27 International Business Machines Corporation Generating data migration plan for in-place encryption of data
US11321294B2 (en) 2019-09-09 2022-05-03 Salesforce.Com, Inc. Database index repair
US11573711B2 (en) * 2020-03-23 2023-02-07 Vmware, Inc. Enhanced data encryption in distributed datastores using random tweaks stored in data blocks
US11483150B2 (en) 2020-06-01 2022-10-25 Salesforce.Com, Inc. Private key cache in secure enclave
US12013831B2 (en) 2021-01-29 2024-06-18 Salesforce, Inc. Index for multi-level data structures
US11880495B2 (en) * 2021-05-28 2024-01-23 Sap Se Processing log entries under group-level encryption
CN113641711B (zh) * 2021-08-17 2024-05-31 天津卓盛云科技有限公司 一种针对saas租户的数据缓存处理方法、装置及介质
US20230067054A1 (en) * 2021-08-24 2023-03-02 International Business Machines Corporation Encryption of database log files
KR20230063508A (ko) 2021-11-02 2023-05-09 삼성전자주식회사 멀티 테넌시를 지원하는 스토리지 장치 및 이의 동작 방법
US20230336339A1 (en) * 2022-04-18 2023-10-19 Dell Products L.P. Automatic key cleanup to better utilize key table space
US20230409730A1 (en) * 2022-06-16 2023-12-21 Sap Se Native multi-tenancy for database system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257351A1 (en) 2009-04-01 2010-10-07 Salesforce. Com, Inc. Enhanced system security
JP2012104121A (ja) 2010-11-11 2012-05-31 Samsung Sds Co Ltd カーネルネイティブapiのフッキング処理によるデジタル著作権管理装置及び方法
JP2013528872A (ja) 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US20140050317A1 (en) 2012-08-16 2014-02-20 Digicert, Inc. Cloud Key Management System
JP2016511610A (ja) 2013-03-15 2016-04-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチテナント・コンピューティング・インフラストラクチャにおける鍵管理の方法、装置、コンピュータ・プログラム製品、およびクラウド・コンピュート・インフラストラクチャ(マルチテナント環境における鍵管理)
WO2017090142A1 (ja) 2015-11-26 2017-06-01 株式会社野村総合研究所 サービス提供システム
JP2017162242A (ja) 2016-03-10 2017-09-14 富士通株式会社 データ保護プログラム、データ保護方法、及びデータ保護装置
JP2018010576A (ja) 2016-07-15 2018-01-18 富士通株式会社 情報処理システム、情報処理装置、及び制御プログラム
US20180373741A1 (en) 2017-06-27 2018-12-27 Salesforce.Com, Inc. Systems and methods of creation and deletion of tenants within a database

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081805B1 (en) * 2007-05-08 2015-07-14 Progress Software Corporation Tenant-aware database for software as a service
US10007767B1 (en) * 2007-12-21 2018-06-26 EMC IP Holding Company LLC System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service
US8707264B2 (en) * 2010-05-18 2014-04-22 Salesforce.Com, Inc. Methods and systems for testing methods in a multi-tenant database environment
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
US9460176B2 (en) * 2010-12-29 2016-10-04 Sap Se In-memory database for multi-tenancy
JP6176515B2 (ja) * 2012-04-27 2017-08-09 パナソニックIpマネジメント株式会社 無線基地局装置、無線資源管理方法、及び無線資源管理プログラム
US20140181992A1 (en) * 2012-12-21 2014-06-26 Michael Alexander Janson Multi-tenant content provider
US20140330936A1 (en) * 2013-05-02 2014-11-06 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage systemwith inter-server communication
US9411973B2 (en) * 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US9203815B1 (en) * 2013-11-27 2015-12-01 Symantec Corporation Systems and methods for secure third-party data storage
US10771255B1 (en) * 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
US9811365B2 (en) * 2014-05-09 2017-11-07 Amazon Technologies, Inc. Migration of applications between an enterprise-based network and a multi-tenant network
US9825925B2 (en) * 2014-06-11 2017-11-21 Bijit Hore Method and apparatus for securing sensitive data in a cloud storage system
US10152487B1 (en) * 2014-09-29 2018-12-11 EMC IP Holding Company LLC System and method for a cloud storage provider to safely deduplicate encrypted backup objects
GB2533098B (en) * 2014-12-09 2016-12-14 Ibm Automated management of confidential data in cloud environments
US9667656B2 (en) * 2015-03-30 2017-05-30 Amazon Technologies, Inc. Networking flow logs for multi-tenant environments
JP6419633B2 (ja) * 2015-04-09 2018-11-07 株式会社日立ソリューションズ 検索システム
US10366247B2 (en) * 2015-06-02 2019-07-30 ALTR Solutions, Inc. Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10042782B2 (en) * 2015-06-02 2018-08-07 ALTR Solutions, Inc. Immutable datastore for low-latency reading and writing of large data sets
US10013364B1 (en) * 2015-06-26 2018-07-03 EMC IP Holding Company LLC Securing data using per tenant encryption keys
US10157196B2 (en) * 2015-08-12 2018-12-18 Salesforce.Com, Inc. Intra-platform data migration
US20170213210A1 (en) * 2016-01-22 2017-07-27 International Business Machines Corporation Asset transfers using a multi-tenant transaction database
US10296757B2 (en) * 2016-07-29 2019-05-21 Sap Se Appended key ID for key identification during data encryption
US10003585B2 (en) * 2016-08-02 2018-06-19 Samsung Electronics Co., Ltd. Systems, devices, and methods for preventing unauthorized access to storage devices
US10530578B2 (en) * 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10735394B2 (en) * 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10241896B2 (en) 2016-11-08 2019-03-26 Salesforce, Inc. Formation and manipulation of test data in a database system
US10387661B2 (en) * 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US10911441B2 (en) * 2017-01-18 2021-02-02 CertifID LLC Verifying party identities for secure transactions
US11403019B2 (en) * 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
KR101966767B1 (ko) * 2017-05-31 2019-04-08 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 시스템
US10872066B2 (en) 2017-06-27 2020-12-22 Salesforce.Com, Inc. Systems and methods of database tenant migration
US10902016B2 (en) * 2018-02-12 2021-01-26 Artem Shamsutdinov Autonomous interdependent repositories
US10615976B2 (en) * 2018-02-23 2020-04-07 Sap Se Lightweight key management system for multi-tenant cloud environment
US11513910B2 (en) * 2018-04-26 2022-11-29 EMC IP Holding Company LLC Compliance as a service for multi-cloud backup systems
US10168949B1 (en) * 2018-06-14 2019-01-01 Rubrik, Inc. Envoy for multi-tenant compute infrastructure
US11106810B2 (en) * 2018-07-30 2021-08-31 EMC IP Holding Company LLC Multi-tenant deduplication with non-trusted storage system
US11057359B2 (en) * 2018-08-13 2021-07-06 Salesforce.Com, Inc. Key encryption key rotation
US11106658B2 (en) * 2018-11-28 2021-08-31 Snowflake Inc. Task scheduling in database systems
US11163791B2 (en) * 2019-01-23 2021-11-02 Servicenow, Inc. Transformation configuration in instance data replication with bi-directional replication support

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257351A1 (en) 2009-04-01 2010-10-07 Salesforce. Com, Inc. Enhanced system security
JP2013528872A (ja) 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
JP2012104121A (ja) 2010-11-11 2012-05-31 Samsung Sds Co Ltd カーネルネイティブapiのフッキング処理によるデジタル著作権管理装置及び方法
US20140050317A1 (en) 2012-08-16 2014-02-20 Digicert, Inc. Cloud Key Management System
JP2016511610A (ja) 2013-03-15 2016-04-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチテナント・コンピューティング・インフラストラクチャにおける鍵管理の方法、装置、コンピュータ・プログラム製品、およびクラウド・コンピュート・インフラストラクチャ(マルチテナント環境における鍵管理)
WO2017090142A1 (ja) 2015-11-26 2017-06-01 株式会社野村総合研究所 サービス提供システム
JP2017162242A (ja) 2016-03-10 2017-09-14 富士通株式会社 データ保護プログラム、データ保護方法、及びデータ保護装置
JP2018010576A (ja) 2016-07-15 2018-01-18 富士通株式会社 情報処理システム、情報処理装置、及び制御プログラム
US20180373741A1 (en) 2017-06-27 2018-12-27 Salesforce.Com, Inc. Systems and methods of creation and deletion of tenants within a database

Also Published As

Publication number Publication date
EP3814968A1 (en) 2021-05-05
JP2021533619A (ja) 2021-12-02
WO2020159694A1 (en) 2020-08-06
EP4235475A3 (en) 2023-09-06
US11841967B2 (en) 2023-12-12
CN112889054B (zh) 2023-07-04
CN112889054A (zh) 2021-06-01
EP4235475B1 (en) 2024-09-04
EP4235475A2 (en) 2023-08-30
EP3814968B1 (en) 2023-03-22
US20200250325A1 (en) 2020-08-06
US11238174B2 (en) 2022-02-01
US20220121766A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
JP7193615B2 (ja) マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
US9984006B2 (en) Data storage systems and methods
US9804929B2 (en) Centralized management center for managing storage services
US20200327013A1 (en) Methods and systems for protecting databases of a database availability group
EP3777014B1 (en) Encryption by default in an elastic computing system
JP6568212B2 (ja) 重複排除システムのハッシュ・ベース・マルチテナンシ
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
US11728974B2 (en) Tenant-based database encryption
US20170277435A1 (en) Managing storage space based on multiple dataset backup versions
US11327686B2 (en) Apparatus and method for managing integrated storage supporting hierarchical structure
US20150355862A1 (en) Transparent array migration
US11636011B2 (en) Methods and systems for protecting multitenant databases in networked storage systems
KR20210038285A (ko) 계층형 구조 지원 통합 스토리지 관리 장치 및 방법
US11461181B2 (en) Methods and systems for protecting multitenant databases in networked storage systems
US20240256518A1 (en) Access authorization for audit information in a multi-tenancy data management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220729

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: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221208

R150 Certificate of patent or registration of utility model

Ref document number: 7193615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150