(57)【要約】【課題】データベース中のセンシティブ情報を削除するための技術が提供される。【解決手段】ステートメントによってアクセスされるデータベース中の１つまたは複数のオブジェクトが、識別される。識別された１つまたは複数のオブジェクトの中の少なくとも１つのオブジェクトがセンシティブ情報を含んでいると、少なくとも１つのオブジェクトのインジケータをチェックすることによって判断する。少なくとも１つのオブジェクトと関連する１つまたは複数のセキュリティ・ポリシーを識別する。少なくとも１つのオブジェクトに対して識別された１つまたは複数のセキュリティ・ポリシーを実行してセンシティブ情報を削除する。【選択図】図１
2014099169.tif 000002
【特許請求の範囲】
【請求項１】
ステートメントによってアクセスされるデータベース中の１つまたは複数のオブジェクトを識別するステップと、
前記識別された１つまたは複数のオブジェクトの中の少なくとも１つのオブジェクトがセンシティブ情報を含んでいると、前記少なくとも１つのオブジェクトのインジケータをチェックすることによって判断するステップと、
前記少なくとも１つのオブジェクトと関連する１つまたは複数のセキュリティ・ポリシーを識別するステップと、
前記少なくとも１つのオブジェクトに対して前記識別された１つまたは複数のセキュリティ・ポリシーを実行してセンシティブ情報を削除するステップと
を含む、方法。
【請求項２】
前記ステートメントが、そのステートメントによってアクセスされる少なくとも１つのオブジェクトに対して安全な削除が行われるべきであることを示し、安全な削除のレベルを識別する文節を含み、前記レベルを使用して、安全な削除の手順の詳細を指定する前記１つまたは複数のセキュリティ・ポリシーを識別する、請求項１に記載の方法。
【請求項３】
データベース・カタログが、前記インジケータおよび前記少なくとも１つのオブジェクトの前記１つまたは複数のセキュリティ・ポリシーへのポインタを格納する、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのオブジェクトを前記データベースに格納することに応じて、
前記オブジェクトがセンシティブ情報を含んでいることを示すように、データベース・カタログにある前記インジケータを設定するステップと、
その少なくとも１つのオブジェクトを削除するときに実行されるべき前記１つまたは複数のセキュリティ・ポリシーの位置を格納するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
各セキュリティ・ポリシーが、デフォルトのセキュリティ選択、および安全な削除の選択の許容範囲を提供する、請求項４に記載の方法。
【請求項６】
前記オブジェクトが、テーブルスペース、テーブル、およびインデックスのうちの１つを含む、請求項１に記載の方法。
【請求項７】
クラウド環境におけるサービス（ＳａａＳ）として、ソフトウェアが提供される、請求項１に記載の方法。
【請求項８】
請求項１〜７の何れか１項に記載の方法の各ステップを、コンピュータに実行させる、コンピュータ・プログラム。
【請求項９】
請求項８記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記録した、記録媒体。
【請求項１０】
請求項１〜７の何れか１項に記載の方法の各ステップを、ハードウェアによる手段として構成した、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えばデータベース・システムにおいてセンシティブ情報の破棄を確実なものにすることに関する。
【背景技術】
【０００２】
今日、階層データベース・システム、カラムナ（columnar）・データベース・システム、および関係データベース・システムのような多くの商用ソフトウェア・システムにおいて、ならびにＨａｄｏｏｐ／Ｂｉｇ  Ｄａｔａ処理インフラストラクチャにおいて、個人情報（ＰＩＩ）が格納されている。従来のシステムは、例えば認証および許可を使用するアクセス制限を用いてＰＩＩを保護することができる。
【０００３】
さらに、従来のシステムは、例えば暗号化を用いてＰＩＩを保護することができる。このような暗号化は、保存データ（バックアップなど）の暗号化と、伝送中のデータの暗号化（例えば、通信チャネルを暗号化すること（例えば、Secure Socket Layer（セキュア・ソケット・レイヤ、SSL））による、転送中のデータを暗号化すること（メッセージの暗号化）による、通信チャネルおよび転送中のデータを暗号化することの組合せによる、ならびに監査証跡による）とが含まれる。
【０００４】
一部の従来のシステムは、データベースにおいてＰＩＩを検出する。しかしながらＰＩＩは、センシティブ情報の一例にすぎず、（給与情報、勤務評定、機密の製品計画などのような）他のタイプのセンシティブ情報がある。
【０００５】
従来のデータベース・システムではセンシティブ情報（例えばＰＩＩ）は、必要とされなくなると、破棄されなければならない。しかしながら、一部の従来のシステムは、このようなセンシティブ情報を適切に破棄しない。例えば、センシティブ情報を含むテーブルがデータベースで削除されるが、テーブルが格納されていたハード・ディスク上の適切な領域を上書きするための対策をとらない場合、これによりハード・ディスク上のセンシティブ情報は、ハード・ディスク発見ツールに攻撃を受けやすい状態で放置されることとなる。
【０００６】
単一ノードのデータベース・システムを、４つのテーブルスペースを有するサーバにインストールされたデータベースとして説明することができ、ここではテーブルスペースＴＳ１がテーブルＴ１、テーブルＴ２、およびテーブルＴ３を含み、テーブルスペースＴＳ２がテーブルＴ４、テーブルＴ５、およびテーブルＴ６を含み、テーブルスペースＴＳ３がテーブルＴ７、テーブルＴ８、およびテーブルＴ９を含み、テーブルスペースＴＳ４がテーブルＴ１０、およびテーブルＴ１１を含む。データベースのストレージとして、２つのストレージ・システムがあり、それぞれが６つのハード・ディスクを含んでおり、２つのストレージ・システムにおいて、ハード・ディスクのうちの８つは、オペレーティング・システムによって管理されるファイル・システムを有し、ハード・ディスクのうちの４つは、ロー（raw）・デバイスとして使用され、これは、こうした４つのハード・ディスク上にはオペレーティング・システムによって管理されるファイル・システムがないことを意味する。
【０００７】
単一ノードのデータベース・システムを参照すると、テーブルスペースＴＳ４は、４つのロー・デバイスを使用して次のステートメント１を用いて作成されたと仮定する：
ステートメント１
CREATE TABLESPACE T4
MANAGED BY DATABASE
USING (DEVICE '/dev/rhdisk0' 10000,
DEVICE '/dev/rhdisk1' 10000,
DEVICE '/dev/rhdisk2' 10000,
DEVICE '/dev/rhdisk3'10000 )
【０００８】
ステートメント１を用いて、テーブルＴ１０およびテーブルＴ１１がテーブルスペースＴＳ４に作成される。テーブルＴ１０がセンシティブ情報（例えばＰＩＩ）を含み、削除されると仮定する。このシナリオでは、ＰＩＩを削除するためにファイル・システムで使用される従来の技術を使用して、センシティブ情報を含んでいた４つのロー・デバイスの部分を（例えば、センシティブ情報をゼロで数回上書きすることなどによって）安全に削除して、情報がディスク復元ツールで復元できないものになることを確実にすることができない。これは、オペレーティング・システムおよびファイル・システムが、データベースによって管理されるロー・デバイスとして使用されるハード・ディスクに作用することができないからである。
【０００９】
単一ノードのデータベース・システムの例を続けると、テーブルスペースＴＳ１は次のステートメント２を用いて作成されたと仮定する：
ステートメント２
CREATE TABLESPACE T1
MANAGED BY DATABASE USING (FILE'C.\db2\file1' 1 M, FILE 'D:\db2\file2' 1 M)
AUTORESIZE YES
INCREASESIZE 2 M
MAXSIZE 100 M
【００１０】
この場合、テーブルスペースＴＳ１は、初期サイズ１メガバイト（ＭＢ）、増加率２メガバイト、および最大サイズ１００メガバイトの２つのファイル・コンテナを使用する。ファイル・コンテナを、ファイル・システム上のファイルとして説明することができる。つまり、テーブルスペースＴＳ１のテーブルＴ１、Ｔ２、およびＴ３が、合わせて最大サイズ２００ＭＢ（２つのファイル・コンテナがそれぞれ最大サイズ１００メガバイトを有する）を割り当てることができる。ここで、Ｔ２はセンシティブ情報を含むテーブルであり、Ｔ２は削除されると仮定する。ステートメント１を使用するシナリオとは異なり、ここではオペレーティング・システムとデータベースとの間にファイル・システム・レイヤがある。しかしながら、２つのファイル・コンテナのファイル１およびファイル２のどの部分をデータベースが使用し、したがってセンシティブ情報を確実に復元できないようにするために（例えば、適切な部分をゼロで上書きすることなどによって）削除する必要があるかを認識しているのは、データベースのみである。したがって、ＰＩＩの削除にファイル・システムで使用される、よく理解された技術を使用して、センシティブ情報を含んだ部分を確実に安全に削除することはできない。
【００１１】
マルチノードのデータベース・システムは、複数のノードを含む。ノードをサーバ・システムのような個々のコンピューティング・デバイスとして説明することができる。この例については、データベースは、複数のノードにわたって分割される。データベースのストレージとして、ネットワーク・アタッチト・ストレージ（Network Attached Storage、NAS）がアクセスする３つのストレージ・システムがあり、このストレージ・システムのそれぞれが、６つのハード・ディスクを含み、２つのストレージ・システムにおいて、ハード・ディスクのうちの６つがファイル・システムをオペレーティング・システムによって管理され、ハード・ディスクのうちの６つがロー・デバイスとして使用され、オペレーティング・システムによって管理されるファイル・システムがなく、ハード・ディスクのうちの４つは、暗号化ファイル・システム（EncryptingFile System、EFS）を有する。
【００１２】
テーブルスペースが、１つまたは複数のノードにまたがることがある。パーティション・グループ節を使用して、テーブルスペースがまたがることができるノードの数を微細な粒度で調整することができる。テーブルをいくつかのパーティションにわたって分割することができる。
【００１３】
グローバル・パラレル・ファイル・システム（Global Parallel FileSystem、GPFS）のようなファイル・システム技術と組み合わされる場合、ストレージ・デバイスと関連するファイル・システムとの間に追加の抽象化レイヤが存在し、データベースのようなファイル・スペースの消費者から、下にある物理ストレージ・ハードウェアの詳細を隠して、ビジネス・レジリエンシ（businessresiliency）を向上させる。
【００１４】
単一ノードのデータベース・システムと同様に、マルチノードのデータベース・システムでは、テーブルスペースが削除されるとき、センシティブ情報を破棄することが困難である。
【００１５】
従来のシステムでは、ハード・ディスク／ファイル・システムのどの部分がテーブルに属し、センシティブ情報を破棄するために削除されるべきであるかを認識しているのはデータベースのみである。
【００１６】
一部の従来のシステムは、ファイル・システムの暗号化技術を使用する。データベースで高性能を要求される場合、このようなファイル・システムの暗号化技術は、その性能への影響のために使用することができず、いかなるデータベースの操作に対しても入力／出力（Ｉ／Ｏ）操作が性能の制約となる。さらに、ロー・デバイスの場合は、関連するファイル・システムがないので、こうしたファイル・システムの暗号化技術は利用できない。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
従って、本発明が解決しようとする課題は、データベース中のセンシティブ情報を削除するための方法、コンピュータ・プログラムおよびコンピュータ・システムを提供することである。
【課題を解決するための手段】
【００１８】
データベース中のセンシティブ情報を削除するための方法、コンピュータ・プログラム製品、およびシステムを提供する。ステートメントによってアクセスされるデータベース中の１つまたは複数のオブジェクトが、識別される。識別された１つまたは複数のオブジェクトの中の少なくとも１つのオブジェクトがセンシティブ情報を含んでいると、少なくとも１つのオブジェクトのインジケータをチェックすることによって判断される。この少なくとも１つのオブジェクトと関連する１つまたは複数のセキュリティ・ポリシーを識別する。この少なくとも１つのオブジェクトに対して識別された１つまたは複数のセキュリティ・ポリシーを実行してセンシティブ情報を削除する。
【００１９】
次に、同じ参照符号が全体を通して対応する部分を表す図面を参照する。
【図面の簡単な説明】
【００２０】
【図１】ある実施形態に従ったコンピューティング環境を示す図である。
【図２】ある代替的実施形態に従ったコンピューティング環境を示す図である。
【図３】ある実施形態に従ったデータベース・カタログ中のテーブル例を示す図である。
【図４】ある実施形態に従ったデータベース・カタログにデータを格納するための操作を流れ図で示す図である。
【図５】ある実施形態に従ったセンシティブ情報の安全な削除を伴うステートメントを処理するための操作を流れ図で示す図である。
【図６】ある実施形態に従ったセンシティブ情報の安全な削除を伴うステートメントを処理するための操作を流れ図で示す図である。
【図７】ある実施形態に従った１つまたは複数のセキュリティ・ポリシーを実行するための操作を流れ図で示す図である。
【図８】ある実施形態に従った単一サーバを有するコンピューティング環境を示す図である。
【図９】ある代替的実施形態に従った単一サーバを有するコンピューティング環境を示す図である。
【図１０】ある実施形態に従ったクラウド・コンピューティング・ノードを示す図である。
【図１１】ある実施形態に従ったクラウド・コンピューティング環境を示す図である。
【図１２】ある実施形態に従った抽象化モデル・レイヤを示す図である。
【発明を実施するための形態】
【００２１】
本発明の様々な実施形態の記述を、説明の目的で提示したが、網羅的であること、または開示する実施形態に限定することを意図していない。説明される実施形態の範囲および趣旨を逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、実際の応用、または市場に見られる技術に関する技術的改良を最も良く説明するように、または、当業者が本明細書に開示する実施形態を理解できるように選択した。
【００２２】
図1は、ある実施形態に従った複数のサーバを有するコンピューティング環境を示す。サーバ１００ａ・・・１００ｎ（ここでａおよびｎは正の整数を表す）が、エンタープライズ・サービス・バス（EnterpriseService Bus、ESB）１５０に結合される。各サーバ１００ａ・・・１００ｎは、データベース１１０ａ・・・１１０ｎを含んでいる。各データベース１１０ａ・・・１１０ｎは、１つまたは複数のテーブルスペースを含んでおり、各テーブルスペースが１つまたは複数のテーブル１１２ａ・・・１１２ｎを格納している。各データベース１１０ａ・・・１１０ｎは、データベース・カタログ１１４ａ・・・１１４ｎおよびデータベースＩ／Ｏレイヤ１１６ａ・・・１１６ｎもまた含んでいる。
【００２３】
各サーバ１００ａ・・・１００ｎは、ストレージ・システムに結合される。様々な実施形態では、異なるサーバが、異なる数のストレージ・システムに結合される場合がある。図１では、サーバ１００ａはストレージ・システム１２０ｂ・・・１２０ｍ（ここでｂおよびｍは正の整数を表す）に結合される。各ストレージ・システム１２０ｂ・・・１２０ｍは、１つまたは複数のファイル・システム・デバイス１２２ｂ・・・１２２ｍと、１つまたは複数のロー・ストレージ・デバイス１２４ｂ・・・１２４ｍとを含む。図１では、サーバ１００ｎはストレージ・システム１３０ｃ・・・１３０ｐ（ここでｃおよびｐは正の整数を表す）に結合される。各ストレージ・システム１３０ｃ・・・１３０ｐは、１つまたは複数のファイル・システム・デバイス１３２ｃ・・・１３２ｐと、１つまたは複数のロー・ストレージ・デバイス１３４ｃ・・・１３４ｐとを含む。
【００２４】
また、セキュリティ・ポリシー・システム１６０、センシティブ情報検出器１６２、およびライトウェイト・ディレクトリ・アクセス・プロトコル（Lightweight Directory Access Protocol、LDAP）・システム１６４は、ＥＳＢ１５０に結合される。ＥＳＢ１５０を介して、サーバ１００ａ・・・１００ｎは、セキュリティ・ポリシー・システム１６０、センシティブ情報検出器１６２、およびＬＤＡＰシステム１６４と対話する。ＬＤＡＰシステム１６４が使用されて、データベースおよびサーバのユーザを識別する、およびユーザがどのグループにあるかを特定する（ここではデータベースおよびサーバにアクセスするときに使用される認証ルールにグループ・メンバーシップが使用される）。ある実施形態では、データベース・システムは、ＬＤＡＰシステム１６４で統合することによってユーザの認証のためのタスクを企業規模のＬＤＡＰシステム１６４に委託することができる。データベースが許可特権を執行する前に認証が行われるので、ＬＤＡＰシステム１６４は、ＬＤＡＰリポジトリに登録された既知のユーザに対するポリシーおよびアクセス・プロセスに関する全状況について含まれる。
【００２５】
図２は、ある代替的実施形態に従ったコンピューティング環境を示す。図２では、サーバ２００ａが、４つのテーブルスペースに１１のテーブル（Ｔ１〜Ｔ１１）を有するデータベース２１０ａを含んでいる。同様にサーバ２００ｎが、４つのテーブルスペースに１１のテーブル（Ｔ１〜Ｔ１１）を有するデータベース２１０ｎを含んでいる。またサーバ２００ａは、ストレージ・システム２２０ｂ、２２０ｍに結合され、それぞれのストレージ・システム２２０ｂ、２２０ｍは４つのファイル・システム・デバイス（それぞれ「ＦＳ」で表す）と、２つのロー・デバイス（Raw device）（それぞれ「Ｒ」で表す）とを含んでいる。同様にサーバ２００ｎは、ストレージ・システム２３０ｃ、２３０ｐに結合され、それぞれのストレージ・システム２３０ｃ、２３０ｐは４つのファイル・システム・デバイス（それぞれ「ＦＳ」で表す）と、２つのロー・デバイス（それぞれ「Ｒ」で表す）とを含んでいる。
【００２６】
実施形態は、以下を提供する：
・  データベース・カタログにおける拡張
・  データベースに対して発行されるステートメント（例えば、StructuredQuery Language（SQL）ステートメント）のステートメント構文の拡張
・  データベースＩ／Ｏレイヤにおける拡張
・  セキュリティ・ポリシー・システム
・  センシティブ情報検出器
・  これらの構成要素を統合して統一された、エンド・ツー・エンド（ｅ２ｅ）の強固に統合されたソリューションにすること
データベース・カタログにおける拡張
【００２７】
データベース・カタログは、テーブルに関するメタデータを含んだテーブル（「OBJECT_TABLES」）と、インデックスに関するメタデータを含んだテーブル（「OBJECT_INDEX」）と、テーブルスペースについてのメタデータを含んだテーブル（「OBJECT_TABLESPACE」）とを含む。実施形態では、テーブル（「OBJECT_TABLES」、「OBJECT_INDEX」、および「OBJECT_TABLESPACE」）のそれぞれは、オブジェクトがセンシティブ情報を含んでいるかどうかを示す、各オブジェクト（例えばTABLE、INDEX、TABLESPACE）の安全な削除インジケータ（「indicator」）を格納する安全な削除の列を含んでいる。ある実施形態では、安全な削除インジケータは、Booleanフラグである。安全な削除インジケータの１つの設定（例えば、真または「１」に設定する）は、オブジェクトがセンシティブ情報を含んでいることを示し、安全な削除インジケータの別の設定（例えば、偽または「０」に設定する）は、オブジェクトがセンシティブ情報を含んでいないことを示す。
【００２８】
また、実施形態では、テーブル（「OBJECT_TABLES」、「OBJECT_INDEX」、および「OBJECT_TABLESPACE」）のそれぞれは、関連する１つまたは複数のセキュリティ・ポリシーの位置を格納するセキュリティ・ポリシー列（すなわちフィールド）を含んでいる。ある実施形態では、（あるオブジェクトと関連する）セキュリティ・ポリシー列の各行が、そのオブジェクトの適用可能なセキュリティ・ポリシーへの１つまたは複数のポインタ（例えば、UniformResource Locator（URL））を含む。実施形態では、適用可能なセキュリティ・ポリシーへのポインタは、外部から管理することができる。このため、セキュリティ・ポリシーをいつでも変更し、実行時に実施することができる。
【００２９】
様々な実施形態では、他のオブジェクト（テーブル、インデックス、およびテーブルスペース以外）が、データベース・カタログに、やはり安全な削除列およびセキュリティ・ポリシー列で拡張されたテーブルを有することができる。
【００３０】
図３は、ある実施形態に従ったデータベース・カタログ中の例示的テーブル３００を示している。テーブル３００は、オブジェクト識別子３１０と、安全な削除列３２０と、セキュリティ・ポリシー列３３０とを含んでいる。省略符号は、テーブル３００が他の列を含む場合があることを示している。
【００３１】
図４は、ある実施形態に従ったデータベース・カタログにデータを格納するための操作を流れ図で示している。制御は、ブロック４００から始まり、センシティブ情報検出器がセンシティブ情報を格納しているデータベース中の１つまたは複数のオブジェクトを識別する。ブロック４０２では、１つまたは複数のオブジェクトのそれぞれについて、センシティブ情報検出器は、オブジェクトがセンシティブ情報を含んでいることを示すように安全な削除インジケータを設定し、データベース・カタログでそのオブジェクトの１つまたは複数のセキュリティ・ポリシーを識別する。
【００３２】
したがって、ある実施形態では、センシティブ情報検出器は、各データベースにおいて定期的監査を行って、センシティブ情報を含んでいるオブジェクトを検索し、見つかった場合、データベース・カタログにおいて安全な削除インジケータを設定して、オブジェクトがセンシティブ情報を含んでいることを示す。
ステートメント構文の拡張
【００３３】
実施形態が、「DELETE SECURE LEVEL」をステートメントに追加することによってデータベースに対して発行されるステートメントの構文を拡張する。「DELETESECURE LEVEL」を使用することにより、安全な削除が行われるべきであることをデータベースに示し、「LEVEL」は、行われるべき安全な消去の度合いを示す。例えば、一部の標準は、ディスク上のデータを安全に削除するには、ランダム・データまたはゼロを用いたワンパスの上書きで十分であると考える。これは、レベル１とみなすことができる。他の標準は、異なるデータ・パターンを用い、複数の書込みを使用してデータを上書きすることができる。これは、レベル２とみなすことができる。例えば以下は、拡張構文を有する（例えばＳＱＬの）例示的ステートメントを含むリストである。ただし、実施形態はこのような例に限定されない：
・DROP TABLE […] DELETE SECURE LEVEL<INT>
・DROP INDEX […] DELETE SECURE LEVEL<INT>
・DROP TABLESPACE […] DELETE SECURE LEVEL<INT>
・ALTER TABLESPACE […] DELETE SECURE LEVEL<INT>
・ADMIN_MOVE_TABLE […] DELETE SECURE LEVEL<INT>
【００３４】
様々な実施形態では、センシティブ情報を含むデータベース中に他のオブジェクト（例えば、データベースが処理に使用することができる一時テーブルまたは一時テーブルスペース）がある場合がある。したがって、上記のリストは非網羅的であり、様々なデータベースの実行にわたって「DELETE SECURE LEVEL」を使用することを含めるために他のステートメントを拡張することができる。
【００３５】
「DELETE SECURE」は、データベースにアクセスするステートメントのオプションの文節である。ステートメントにおいて「DELETESECURE」オプションが指定される場合、選択されるＬＥＶＥＬに応じて、センシティブ情報の安全な破棄は、複数の方法のうちの１つで行われる。以下は、センシティブ情報の安全な破棄の例である：
・  ロー・デバイスが解放される（例えば、DROP TABLESPACEまたはALTERTABLESPACEステートメント後）
・  ファイル・コンテナが解放される（例えば、DROP TABLESPACEまたはALTERTABLESPACEコマンドでファイル・システム上のファイルが解放されるとき）
・  ファイルの一部が解放される（例えば、DROP TABLEまたはADMIN_MOVE_TABLE後）
【００３６】
異なるオペレーティング・システムのプラットフォームについては、センシティブ情報の安全な破棄に利用できる異なる実行が存在する場合がある。さらに、一連のすべての利用できる技術からセキュリティ・ポリシーによって略述される要件に応じて、一部の実施形態では、利用できる技術の一部が許容される場合がある。ある実施形態では、データベースは、各オペレーティング・システムのプラットフォームに少なくとも１つの実装を含み、追加の技術には追加のライブラリを提供する。
【００３７】
図５は、ある実施形態に従って、センシティブ情報の安全な削除と共にステートメントを処理するための操作を流れ図で示す。安全な削除を行われるべきであることを示し、かつ安全な削除のレベルを識別する文節（例えば、「DELETE SECURE」節）を含むことができるステートメントをデータベースが受信して、ブロック５００から制御が始まる。上述のように、「DELETESECURE」節はオプションであって、場合によってはステートメントの作成者は、「DELETE SECURE」節を入れ忘れる可能性がある。「DELETESECURE」節がステートメントに含まれているかどうかに関わらず、データベースはセンシティブ情報の安全な削除を行う。ブロック５０２において、データベースはステートメントを処理する。例えば、ステートメントがテーブルを削除することである場合、テーブルは削除される。ブロック５０４においてデータベースは、ステートメントによってアクセスされるオブジェクトを識別する。ブロック５０６においてデータベースは、データベース・カタログで各オブジェクトと関連する安全な削除インジケータを使用して、ある場合、識別されたオブジェクトのどれがセンシティブ情報を含むかを判断する。すなわち、データベースは識別されたオブジェクトのそれぞれについてデータベース・カタログをチェックし、オブジェクトがセンシティブ情報を含むことを示すように安全な削除インジケータが設定されているかどうかを判断する。
【００３８】
ブロック５０８においてデータベースは、オブジェクトのいずれかがセンシティブ情報を含んでいると識別されたかどうかを判断する。このようなオブジェクトが識別された場合、処理はブロック５１０（図６）へ進み、そうでない場合、処理は完了する。
【００３９】
ブロック５１０において、データベースは、識別されたオブジェクトから、第１の識別されたオブジェクトから始まる、次の識別されたオブジェクトを選択する。ブロック５１２において、選択されたオブジェクトについてデータベースは、そのオブジェクトのデータベース・カタログから１つまたは複数のセキュリティ・ポリシーを取得する。ブロック５１２では、（ブロック５００で受け取られた）ステートメントが、安全な削除が行われるべきであることを示し、安全な削除のレベルを識別する文節を含んでいた場合、この情報はデータベースによって、１つまたは複数のセキュリティ・ポリシーを選択するために使用される。ステートメントがこの文節を含んでいなかった場合、データベースはデフォルトのセキュリティ・ポリシーを選択する。ブロック５１４において、選択されたオブジェクトに対してデータベースは、１つまたは複数のセキュリティ・ポリシーを実行する。ブロック５１６においてデータベースは、識別されたオブジェクトのすべてが選択されたかどうかを判断する。すべてが選択された場合、処理は完了し、そうでない場合、処理はブロック５１０に進む。
【００４０】
ある実施形態では、ブロック５１４の動作について、１つまたは複数のセキュリティ・ポリシーがどのように実施されるかは、ロー・ディスクに対するファイル・システム（ひいては関連するオペレーティング・システム）、および他の低レベル技術の詳細のような要素によって決まる。したがって、ブロック５１４のポリシー実施動作は、このような技術の詳細により異なる可能性がある。
【００４１】
図７は、ある実施形態に従った１つまたは複数のセキュリティ・ポリシーを実行するための操作を流れ図で示す。ファイル・システムにオブジェクトが格納されているかどうかをデータベースが判断して、ブロック６００から制御が始まる。格納されている場合、処理はブロック６０２に進み、そうでない場合、処理はブロック６０４に進む。ブロック６０２において、データベースは、ファイル・システムに対して１つまたは複数のセキュリティ・ポリシーを実行する。
【００４２】
ブロック６０４において、データベースはオブジェクトが暗号化されたファイル・システムに格納されているかどうかを判断する。暗号化されたファイル・システムに格納されている場合、処理はブロック６０６に進み、そうでない場合、処理はブロック６０８に進む。ブロック６０６においてデータベースは、暗号化されたファイル・システムに対して１つまたは複数のセキュリティ・ポリシーを実行する。
【００４３】
ブロック６０８において、データベースはオブジェクトがロー・ディスクに格納されているかどうかを判断する。ロー・ディスクに格納されている場合、処理はブロック６１０に進み、そうでない場合、処理はオブジェクトのストレージのタイプをチェックし続け、そのタイプのストレージに対して１つまたは複数のセキュリティ・ポリシーを実行する（これは、図７では省略符号で表される）。ブロック６１０においてデータベースは、ロー・ディスクに対して１つまたは複数のセキュリティ・ポリシーを実行する。
【００４４】
ある実施形態では、「DELETE SECURE」節は、次のように実行される：
・  センシティブ情報を有する各オブジェクトに対して、データベース・カタログでは、安全な削除インジケータが有効にされ、１つまたは複数のセキュリティ・ポリシーが識別される。セキュリティ・ポリシーは、SECURE_DELETE選択、ならびにデフォルト選択の許容範囲を定める。
・  作成者が、（例えば、センシティブ情報を含んでいるテーブルを削除するとき）オブジェクトがセンシティブ情報を含んでいることを示すために安全な削除インジケータが設定される、センシティブ情報を含んでいる少なくとも１つのオブジェクトにアクセスするステートメントにDELETE SECUREオプション文節を忘れた場合、データベースは、デフォルトの選択を用いてオブジェクトは安全に削除されるべきであると判断する。
・  作成者が明示的にDELETE SECURE節を設定し、レベルを識別する場合、レベルは（例えば一連の許容選択から）１つまたは複数のセキュリティ・ポリシーを示す。ある実施形態では、作成者はデータベース・カタログに問い合わせて、一連の許容選択を取得することができる。
データベースＩ／Ｏレイヤにおける拡張
【００４５】
データベースＩ／Ｏレイヤは、安全な削除操作を行っているライブラリを呼び出して、適切な削除を確実にするために必要とされるハード・ディスク領域を上書きする。ある実施形態では、このような呼び出しは、トランザクションのデータベースの原子性（Atomicity）、一貫性（Consistency）、独立性（Isolation）、耐久性（Durability）（ＡＣＩＤ）特性に準拠するものであり、バックグラウンドで行うことができ、停電に対して回復力があるものとすることができる。
セキュリティ・ポリシー・システム
【００４６】
ある実施形態では、セキュリティ・ポリシー・システムは、データベースの管理者または他のユーザが１つまたは複数のセキュリティ・ポリシーを作成できるようにする。各セキュリティ・ポリシーは、セキュア情報を破棄するための特定の手段を定める。ある実施形態では、セキュリティ・ポリシーは、レベルに相当する。例えばセキュリティ・ポリシーが、セキュア情報は３回上書きされなければならないことを示すことができる。ある追加的実施形態では、１つまたは複数のセキュリティ・ポリシーは、関連セキュリティ標準の一部として取り込むことができる。
【００４７】
図８は、ある実施形態に従った単一サーバを有するコンピューティング環境を示す。図８では、サーバ７００はデータベース７１０を含む。データベース７１０は、１つまたは複数のテーブルスペースを含んでおり、各テーブルスペースが１つまたは複数のテーブル７１２を格納している。データベース７１０はまた、データベース・カタログ７１４と、データベースＩ／Ｏレイヤ７１６と、センシティブ情報検出器７４０と、セキュリティ・アドミニストレータ７４２とを含む。セキュリティ・アドミニストレータ７４２は、セキュリティ・ポリシー・システム７４４を含む。
【００４８】
サーバ７００はストレージ・システム７２０ｂ・・・７２０ｍ（ここでｂおよびｍは正の整数を表す）に結合される。各ストレージ・システム７２０ｂ・・・７２０ｍは、１つまたは複数のファイル・システム・デバイス７２２ｂ・・・７２２ｍと、１つまたは複数のロー・ストレージ・デバイス７２４ｂ・・・７２４ｍとを含む。
【００４９】
図９は、ある代替的実施形態に従った単一サーバを有するコンピューティング環境を示す。図９では、サーバ８００が、４つのテーブルスペースに１１のテーブル（Ｔ１〜Ｔ１１）を有するデータベース８１０を含んでいる。またサーバ８００は、ストレージ・システム８２０ｂ、８２０ｍに結合され、それぞれのストレージ・システム８２０ｂ、８２０ｍは４つのファイル・システム・デバイス（それぞれ「ＦＳ」で表す）と、２つのロー・デバイス（それぞれ「Ｒ」で表す）とを含んでいる。
【００５０】
ある実施形態では、セキュリティ・アドミニストレータが、データベースのセキュリティ面を制御する。ある実施形態では、セキュリティ・アドミニストレータは、センシティブ情報の安全な破棄に関するポリシー概念で拡張される。このような実施形態では、センシティブ情報検出器１６２は、データベースに移される。その後、セキュリティ・アドミニストレータは、例えばセンシティブ情報検出器がデータベースでセンシティブ情報を検索する頻度、センシティブ情報検出器をトリガしてセンシティブ情報の検索を開始することができるデータベース・ユーザを制御することができる。
【００５１】
ある実施形態では、各サーバ（例えば、１００ａ・・・１００ｎ、２００ａ、２００ｎ、３００、４００）が、コンピューティング・ノード９１０（図１０に示す）のアーキテクチャを有し、クラウド環境の一部である。ある代替的実施形態では、サーバはクラウド環境の一部ではない。
【００５２】
実施形態は、センシティブ情報技術の安全な破棄をデータベース・システムに密接に統合させて、ハード・ディスク上の機微領域の削除を確実なものにする。
【００５３】
実施形態は、データベースにおいてセンシティブ情報を発見し、センシティブ情報を含んでいるものとしてテーブルまたはテーブルスペースを、データベース・カタログにおいてマーク付けし、テーブルまたはテーブルスペースによって使用される空間を、下にある物理デバイスに結びつける。実施形態では、データベースは、ファイル・システムへの適切なインタフェースを用いて真の「破棄」操作をトリガする。実施形態では、データベースは、トランザクションのログ・ファイルにおいて真の「破棄」をトリガする。実施形態は、異なるレベルのセキュリティを指定することができるように、ポリシー言語を提供する。
【００５４】
実施形態は、センシティブ情報がもはや必要とされなくなったとき、センシティブ情報の削除を確実にし、データベースと密接に統合することにより低運用コストで、センシティブ情報の漏洩の危険性を低減する。
【００５５】
実施形態は、DROP TABLESPACE、ALTER TABLESPACE（例えば、このステートメントを使用してコンテナを削除することがある）、DROPTABLE、DROP INDEX（例えば、インデックス構造のフィールドがセンシティブ情報を含むことがある）、ONLINE TABLE MOVE、DROPDATABASEのようなデータベース操作に対して、データベースでセンシティブ情報の安全な破棄を行う。
【００５６】
実施形態は、ハード・ディスク保存（persistency）も有するデータベースのトランザクション・ログにおけるセンシティブ情報の安全な破棄を提供する。実施形態は、いかなるファイル・システムも含まないロー・デバイスを使用するデータベースに対して、および、センシティブ情報を含むどの部分がテーブルスペースのテーブルに属するかをファイル・システムが認識していないとき、センシティブ情報の安全な破棄を行う。
【００５７】
実施形態は、ハード・ディスク／ファイル・システムの暗号化またはデータベースの暗号化、あるいはその両方を使用することができないとき、センシティブ情報の適切な削除を確実なものにする。
【００５８】
実施形態は、データベースが使用中（例えば、別のデータベース・システムへの移動が実行可能ではない監査中）になった後に、センシティブ情報が検出されるとき、センシティブ情報の安全な破棄を行う。このような場合、データはすでに暗号化されずに物理的に作成されてしまっているので、ハード・ディスク／ファイル・システムの暗号化も、データベースの暗号化も使用されない。
【００５９】
実施形態は、ポリシーを作成できるようにしてセンシティブ情報の対処方法をデータベースに伝えること、およびデータベース・カタログ中のメタデータを使用して、センシティブ情報を含んでいるとしてテーブルまたはテーブルスペースをマーク付けすることによって、センシティブ情報の安全な破棄を行う。
【００６０】
新しい規則により以前機微ではなかったものが機微になる可能性があるとき、会社が強固なデータ保護法を有する国に拡大する（例えば米国の会社が欧州諸国に拡大する）とき、データベース・システムがセンシティブ情報を含んでおり、より強力なセキュリティ制御に従うべきであることを監査が示すとき、実施形態を使用することができる。このようなシナリオでアクセスを制限することはできるが、実施形態はセンシティブ情報の安全な削除を行う。実施形態は、非暗号化ファイル・システムを使用したあるデータベースから、暗号化ファイル・システムを使用した別のデータベースにデータを移動させる必要（コストおよび時間の理由のため困難である可能性がある）がない。
【００６１】
データベースによってセンシティブ情報の安全な削除を行わなければ、投棄されたハード・ディスクが依然としてセンシティブ情報を含んでいるかどうかを知ることは困難であり、会社をセキュリティの危険にさらすことになる。また、ファイル・システムのレイヤへのアクセス（ただし多くの企業は個々のオペレーティング・システムおよびデータベース管理チームを有するのでデータベースには必要ではない）を用いた内部攻撃が、データベースの観点からのデータがＤＲＯＰ操作で削除されたハード・ディスク上にセンシティブ情報を発見できる可能性がある。
【００６２】
実施形態は、クラウド・サービス・プロバイダからのインフラストラクチャにデータベース・システムが配備されたクラウド・コンピューティングのインフラストラクチャにおいてセンシティブ情報の適切な削除を確実なものとする。
【００６３】
実施形態は、データベースＩ／Ｏレイヤを強化して、ＳＱＬ言語の強化に基づく様々な動作中にセンシティブ情報を破棄する。ある実施形態では、データベースは関係データベース管理システム（Relational Database Management System、RDBMS）である。
クラウド環境
【００６４】
この開示は、クラウド・コンピューティングに関する詳細な説明を含んでいるが、本明細書で説明する教示内容の実施は、クラウド・コンピューティング環境に限定されないことをあらかじめ理解されたい。正確には、本発明の実施形態は、現在知られている、または将来開発される、他のいかなるタイプのコンピューティング環境とも関連して実施されることが可能である。
【００６５】
クラウド・コンピューティングは、最小限の経営努力またはサービスのプロバイダとの対話で迅速にプロビジョンし、リリースすることができる構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利で、オンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの配備モデルを含むことができる。
【００６６】
特徴は、次の通りである：
【００６７】
オンデマンドのセルフサービス：クラウドの消費者が、サービスのプロバイダとの人的対話を必要とせず、必要に応じて自動的に、サーバの時刻およびネットワーク・ストレージのようなコンピューティング機能を一方的に（unilaterally）プロビジョンすることができる。
【００６８】
広範なネットワーク・アクセス：機能は、ネットワークを通じて利用でき、異種のシン・クライアントまたはシック・クライアントのプラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する標準的機構によりアクセスされる。
【００６９】
リソースのプール：プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用する複数の消費者に、需要により動的に割当ておよび再割当てされる異なる物理リソースおよび仮想リソースを供給するためにプールされる。消費者は一般に、提供されるリソースの正確な位置に関する制御または知識を持たないという点において、位置の独立（location independence）の意味があるが、より高い抽象レベルで位置（例えば、国、州、またはデータセンタ）を指定することができる可能性がある。
【００７０】
迅速な弾力性（Rapid elasticity）：機能は、迅速にかつ弾性的にプロビジョンされて、場合によっては自動的に、すばやくスケール・アウトし、迅速にリリースされてすばやくスケール・インすることができる。消費者には、プロビジョニングに利用できる機能は無制限であるように見えることが多く、いつでもいかなる量でも購入することができる。
【００７１】
従量に基づくサービス（Measured service）：クラウド・システムは、サービスのタイプ（例えばストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に適切なある抽象レベルで計測機能を活用することにより、リソースの利用を自動的に制御し、最適化する。利用されるサービスのプロバイダと消費者の両方に透明性（transparency）を提供して、リソースの利用を、監視、制御、および報告することができる。
【００７２】
サービス・モデルは次の通りである：
【００７３】
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供される機能は、クラウド・インフラストラクチャ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザのようなシン・クライアント・インタフェース（例えば、ウェブベースの電子メール）を介して様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ指定アプリケーションの構成設定の可能性を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能など、根底にあるクラウド・インフラストラクチャを管理または制御しない。
【００７４】
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供される機能は、プロバイダがサポートするプログラミング言語およびツールを使用して作成された、消費者が作成したアプリケーションまたは取得アプリケーションをクラウド・インフラストラクチャに配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージなど、根底にあるクラウド・インフラストラクチャを管理または制御しないが、配備されるアプリケーションおよび場合によってはアプリケーションホスト環境の設定を制御する。
【００７５】
サービスとしてのインフラストラクチャ（ＩａａＳ）：消費者に提供される機能は、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを配備し、実行することができる他の基本的コンピューティング・リソースをプロビジョニングすることである。消費者は、根底にあるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配備されるアプリケーションの制御、および場合によっては選択ネットワーキング構成要素（例えばホスト・ファイヤウォール）の限られた制御を行う。
【００７６】
配備モデルは次の通りである：
【００７７】
プライベート・クラウド：クラウド・インフラストラクチャは、単にある組織のために運営される。クラウド・インフラストラクチャは、この組織または第三者が管理することができ、自社運用型（on-premise）または他社運用型（off-premise）で存在することができる。
【００７８】
コミュニティ・クラウド：クラウド・インフラストラクチャはいくつかの組織によって共有され、問題（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項）を共有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、この組織または第三者が管理することができ、自社運用型または他社運用型で存在することができる。
【００７９】
パブリック・クラウド：クラウド・インフラストラクチャは、一般の人々または大規模な企業団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【００８０】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティのままでありながら、データおよびアプリケーションの移植性を有効にする標準化技術または独自技術（例えば、クラウド間の負荷バランシングのためのクラウド・バースティング（cloud bursting））によって結合された、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の組合せである。
【００８１】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味相互運用性（semantic interoperability）に重点を置いて適応されたサービスである。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【００８２】
次に図１０を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード９１０は、好適なクラウド・コンピューティング・ノードの一例にすぎず、本明細書に記載する本発明の実施形態の使用または機能の範囲に関するいかなる制限を示唆することも意図していない。それとは関係なく、クラウド・コンピューティング・ノード９１０は、実装されること、または以上に示す機能のいずれかを行うこと、あるいはその両方が可能である。
【００８３】
クラウド・コンピューティング・ノード９１０には、コンピュータ・システム／サーバ９１２があり、数多くの他の汎用または特殊用途コンピューティング・システム環境または構成で動作可能である。コンピュータ・システム／サーバ９１２と共に使用するのに適している可能性がある、よく知られているコンピューティング・システム、または環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスなどのいずれかを含む分散クラウド・コンピューティング環境が含まれるが、これらに限定しない。
【００８４】
コンピュータ・システム／サーバ９１２は、コンピュータ・システムによって実行される、プログラム・モジュールのような、コンピュータ・システム実行可能命令の一般的な状況で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ９１２は、通信ネットワークを介してリンクされたリモート処理装置によりタスクが実行される分散クラウド・コンピューティング環境で実行することができる。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含んだローカルとリモートの両方のコンピュータ・システムの記憶媒体に置くことができる。
【００８５】
図１０に示すように、クラウド・コンピューティング・ノード９１０中のコンピュータ・システム／サーバ９１２が、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ９１２の構成要素は、１つもしくは複数のプロセッサまたは処理ユニット９１６と、システム・メモリ９２８と、システム・メモリ９２８を含む様々なシステム構成要素をプロセッサ９１６に結合するバス９１８とを含むことができるが、これらに限定しない。
【００８６】
バス９１８は、メモリ・バスもしくはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート（accelerated graphics port）、および様々なバス・アーキテクチャのいずれかを使用するプロセッサもしくはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの１つまたは複数を表す。例として、限定ではないが、このようなアーキテクチャには、IndustryStandard Architecture（ＩＳＡ）バス、Micro Channel Architecture（ＭＣＡ）バス、Enhanced ISA（ＥＩＳＡ）バス、VideoElectronics Standards Association（ＶＥＳＡ）ローカル・バス、およびPeripheral ComponentInterconnects（ＰＣＩ）バスが含まれる。
【００８７】
コンピュータ・システム／サーバ９１２は、一般に様々なコンピュータ・システム可読媒体を含んでいる。このような媒体は、コンピュータ・システム／サーバ９１２によってアクセス可能であるいかなる利用可能媒体とすることもでき、揮発媒体と不揮発媒体、取り外し可能な媒体と取り外し不可能な媒体を共に含む。
【００８８】
システム・メモリ９２８は、ランダム・アクセス・メモリ（ＲＡＭ）９３０、またはキャッシュ・メモリ９３２、あるいはその両方のような揮発メモリの形式のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ９１２は、他の取り外し可能／取り外し不可能、揮発性／不揮発性の、コンピュータ・システム記憶媒体をさらに含むことができる。単に例として、取り外し不可能な、不揮発性磁気媒体（図示せず、一般に「ハード・ドライブ」と呼ばれる）の読み書き操作を行うために、ストレージ・システム９３４を設けることができる。図示していないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）の読み書き操作を行うための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭもしくは他の光媒体のような取り外し可能な不揮発性光ディスクの読み書き操作を行うための光ディスク・ドライブを設けることができる。このような場合、１つまたは複数のデータ媒体のインタフェースによりそれぞれをバス９１８に接続することができる。以下にさらに示し、説明するように、メモリ９２８は、本発明の実施形態の機能を実行するように構成された一組（例えば少なくとも１つ）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むことができる。
【００８９】
一組（少なくとも１つ）のプログラム・モジュール９４２を有するプログラム／ユーティリティ９４０は、限定ではなく例としてメモリ９２８に、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データに格納することができる。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、あるいはその何らかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール９４２は、一般に、本明細書に記載する本発明の実施形態の機能または方法、あるいはその両方を実行する。
【００９０】
コンピュータ・システム／サーバ９１２は、キーボード、ポインティング・デバイス、ディスプレイ９２４などのような１つまたは複数の外部デバイス９１４、またはユーザがコンピュータ・システム／サーバ９１２と対話できるようにする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ９１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、あるいはその組合せと通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース９２２を介して行うことができる。さらにコンピュータ・システム／サーバ９１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、または一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えばインターネット）、あるいはその組合せのような、１つまたは複数のネットワークと、ネットワーク・アダプタ９２０を介して通信することができる。図示するように、ネットワーク・アダプタ９２０は、コンピュータ・システム／サーバ９１２の他の構成要素とバス９１８を介して通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素、あるいはその両方を、コンピュータ・システム／サーバ９１２と併せて使用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
【００９１】
次に図１１を参照すると、例示的なクラウド・コンピューティング環境１０５０が示されている。図のように、クラウド・コンピューティング環境１０５０は、例えば携帯情報端末（ＰＤＡ）もしくは携帯電話１０５４Ａ、またはデスクトップ・コンピュータ１０５４Ｂ、またはラップトップ・コンピュータ１０５４Ｃ、または自動車コンピュータ・システム１０５４Ｎ、あるいはその組合せのような、クラウドの消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる１つまたは複数のクラウド・コンピューティング・ノード９１０を備える。ノード９１０は、互いと通信することができる。ノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せのような、１つまたは複数のネットワークにおいて、物理的にまたは仮想的にグループ分けすることができる（図示せず）。これにより、クラウド・コンピューティング環境１０５０は、クラウドの消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、またはプラットフォーム、またはソフトウェア、あるいはその組合せを提供できる。図１１に示すコンピューティング・デバイス１０５４Ａ〜Ｎのタイプは、単に例示となることを意図していること、コンピューティング・ノード９１０およびクラウド・コンピューティング環境１０５０は、任意のタイプのネットワークまたはネットワーク・アドレス可能接続、あるいはその両方を通じて（例えばウェブ・ブラウザを使用して）任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【００９２】
次に図１２を参照すると、クラウド・コンピューティング環境１０５０（図１１）によって提供される一組の機能抽象化レイヤが示されている。図１２に示す構成要素、レイヤ、および機能は、単に例示となることを意図しており、本発明の実施形態はこれに限定されないことを、あらかじめ理解されたい。図示するように、次のレイヤおよび対応する機能が提供される。
【００９３】
ハードウェアおよびソフトウェア・レイヤ１１６０は、ハードウェアおよびソフトウェアの構成要素を含む。ハードウェア構成要素の例には、メインフレーム、一例ではＩＢＭ（Ｒ）のｚＳｅｒｉｅｓ（Ｒ）システム、ＲＩＳＣ（Reduced Instruction Set Computer、縮小命令セットコンピュータ）アーキテクチャに基づくサーバ、一例ではＩＢＭのｐＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭのｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭのＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、ストレージ・デバイス、ネットワークおよびネットワーキング構成要素が含まれる。ソフトウェア構成要素の例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではＩＢＭのＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例ではＩＢＭのＤＢ２（Ｒ）データベース・ソフトウェアが含まれる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界中の多くの管轄において登録されたInternationalBusiness Machines Corporationの商標である。）
【００９４】
仮想化レイヤ１１６２は、抽象化レイヤを提供し、そこから仮想エンティティの次の例を提供することができる：仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークなどの仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアント。
【００９５】
１つの例では、管理レイヤ１１６４は、以下に記載する機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計測および価格決定は、クラウド・コンピューティング環境内でリソースが利用されるとき、コストの追跡を行い、これらのリソースの消費に対して請求を行うまたはインボイスを作る。１つの例では、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含むことができる。セキュリティは、クラウドの消費者およびタスクの同一性確認、ならびにデータおよび他のリソースの保護を行う。ユーザ・ポータルは、消費者およびシステム管理者のためにクラウド・コンピューティング環境へアクセスできるようにする。サービス・レベル管理は、要求されるサービス・レベルに合うようなクラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス品質保証契約（Service Level Agreement、ＳＬＡ）の計画および履行は、ＳＬＡに従って将来の要求が予想されるクラウド・コンピューティング・リソースの事前手配および調達を行う。
【００９６】
作業負荷レイヤ１１６６は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。このレイヤから提供することができる作業負荷および機能の例には、マッピングおよびナビゲーション、ソフトウェアの開発およびライフサイクルの管理、仮想教室の教育配信、データ分析処理、トランザクション処理、および安全な削除の処理が含まれる。
【００９７】
したがって、ある実施形態では、本明細書に記載する実施形態に従ってセンシティブ情報の安全な削除を実行するソフトウェアまたはプログラムが、クラウド環境におけるサービスとして提供される。
さらなる実施形態の詳細
【００９８】
当業者には理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではすべて一般的に「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、コンピュータ可読プログラム・コードを組み入れた１つまたは複数のコンピュータ可読媒体で具体化されるコンピュータ・プログラム製品の形をとることができる。
【００９９】
１つまたは複数のコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であることが可能である。コンピュータ可読記憶媒体は、例えば電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組合せであることが可能であるが、これらに限定されない。コンピュータ可読記憶媒体のさらなる具体例（非網羅的リスト）には、１つもしくは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶装置、磁気記憶装置、ソリッド・ステート・メモリ、磁気テープ、または上記の任意の好適な組合せが含まれる。この文書の文脈においては、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに接続して使用するためにプログラムを収容または格納することができる任意の有形媒体とすることができる。
【０１００】
コンピュータ可読信号媒体は、例えばベースバンドに、または搬送波の一部としてコンピュータ可読プログラム・コードを組み入れた伝搬データ信号を含むことができる。このような伝搬信号は、電磁気、光、またはその任意の好適な組合せを含むが、これらに限定されない、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに接続して使用するためにプログラムを伝える、伝搬する、または伝送することができる任意のコンピュータ可読媒体とすることができる。
【０１０１】
コンピュータ可読媒体に組み込まれたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、または上記の任意の好適な組合せを含むが、これらに限定されない、任意の適切な媒体を使用して送信することができる。
【０１０２】
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのようなオブジェクト指向プログラミング言語、ならびに「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、スタンドアロン型ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で、一部ユーザのコンピュータ上で、一部はユーザのコンピュータ上でかつ一部はリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）などの、任意のタイプのネットワークを介してユーザのコンピュータに接続することができる、または（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに接続を行うことができる。
【０１０３】
本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して、本発明の実施形態の諸態様について以下に記載する。フローチャート図またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図、あるいはその両方の中のブロックの組合せは、コンピュータ・プログラム命令によって実行できることを理解されるであろう。こうしたコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供することができ、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行動を実行するための手段を作り出すようにする。
【０１０４】
またこうしたコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように命令することができるコンピュータ可読媒体に格納することができ、したがってコンピュータ可読媒体に格納された命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックで指定される機能／動作を実行する命令を内蔵した製品を生み出す。
【０１０５】
またコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、一連の演算処理（例えば、操作またはステップ）をコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させてコンピュータ実行プロセスを作り出すことができ、したがってコンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行動を実行するためのプロセスを提供する。
【０１０６】
記載した操作を実行するコードはさらに、ハードウェア論理または回路（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）で実行することもできる。ハードウェア論理は、プロセッサに結合して演算を行うことができる。
【０１０７】
互いと通信しているデバイスは、他に特に指定されない限り、互いと連続的に通信している必要はない。さらに、互いと通信しているデバイスは、直接的に通信する、または１つもしくは複数の媒介物を通して間接的に通信することができる。
【０１０８】
いくつかの構成要素が互いと通信している実施形態の説明は、このような構成要素のすべてが必要とされることを意味しない。むしろ、様々な任意選択の構成要素を記載して、本発明の多様な考えられる実施形態を示している。
【０１０９】
さらに、処理ステップ、方法ステップ、アルゴリズムなどは、一連の順序で説明することができるが、このようなプロセス、方法、およびアルゴリズムは、交互に動作するように構成することができる。言い換えれば、説明することができるステップのいかなる連続または順序も、必ずしもステップがその順序で行われる必要を示しているわけではない。本明細書に記載する処理のステップは、実際のいかなる順序でも行うことができる。さらに、一部のステップは、同時に行うことができる。
【０１１０】
本明細書で単一のデバイスまたは物について記載するとき、単一のデバイス／物の代わりに２つ以上のデバイス／物（協働するか否かを問わず）を使用する可能性があることは容易にわかるであろう。同様に、本明細書で（協働するか否かを問わず）２つ以上のデバイスまたは物について記載する場合、２つ以上のデバイスまたは物の代わりに単一のデバイス／物を使用する可能性がある、あるいは示した数のデバイスまたはプログラムに代えて異なる数のデバイス／物を使用する可能性があることは、容易にわかるであろう。デバイスの機能または特徴、あるいはその両方は、このような機能／特徴を有すると明示的に記載していない１つまたは複数の他のデバイスで代替的に具体化することができる。したがって、本発明の他の実施形態は、デバイス自体を含む必要がない。
【０１１１】
流れ図の例示の動作は、ある順序で発生するあるイベントを示す。代替的実施形態では、ある動作を異なる順序で行う、変更する、または削除することができる。さらに、上述の論理に動作を追加してもやはり記載の実施形態に従うことができる。さらにまた、本明細書に記載する動作は、逐次的に発生する可能性があり、またはある動作は、並行して処理することができる。さらにまた動作は、単一処理ユニットで行う、または分散された処理ユニットで行うことができる。
【０１１２】
本明細書で使用する用語は、特定の実施形態を説明するためだけであって、本発明を限定するものとなることを意図していない。本明細書で使用される単数形、「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈上明らかに他の意味を示す場合を除いて、複数形も含むものとする。「含む」または「含んでいる」、あるいはその両方の用語は、本明細書で使用されるとき、提示する特徴、または完全体、またはステップ、または動作、または要素、または構成要素、あるいはその組合せの存在を明記するが、１つもしくは複数の他の特徴、または完全体、またはステップ、または動作、または要素、または構成要素、またはそのグループ、あるいはその組合せの存在または追加を排除しないことを、さらに理解されたい。
【０１１３】
「一実施形態」、「実施形態」、「諸実施形態」、「１つの特定の実施形態」、「複数の特定の実施形態」、「１つまたは複数の実施形態」、「いくつかの実施形態」、および「１つの実施形態」という用語は、他に特に指定されない限り、「（１つまたは複数の）本発明の１つまたは複数の(ただしすべてとは限らない)実施形態」を意味する。
【０１１４】
「含む」、「備える」、「有する」、およびその変形は、他に特に指定されなければ、「含むがこれに限定されない」ことを意味する。
【０１１５】
項目の列挙されているリストは、他に特に指定されない限り、項目の一部または全部が相互排他的であることを意味しない。
【０１１６】
添付の特許請求の範囲中のあらゆる手段またはステップさらに機能要素の対応する構造、材料、行動、および等価物は、具体的に請求される他の請求要素と組み合わせて機能を行うためのいかなる構造、材料、または行動も含むものとする。本発明の実施形態の説明は、例示および説明のために提示したが、網羅的であること、または開示した形態の発明に限定されることを意図していない。本発明の範囲および趣旨を逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本発明の原理および実際の応用を最も良く説明するために、また当業者が予想される特定の利用に適した様々な変更形態と共に様々な実施形態について本発明を理解できるように、実施形態を選択して説明した。
【０１１７】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実行のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、コードのモジュール、セグメント、または一部を表すことができ、（１つまたは複数の）指定された論理機能を実行するための１つまたは複数の実行可能命令を含む。またいくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに注意されたい。例えば、連続して示した２つのブロックは、実際には実質的に同時に行われる場合があり、またはブロックは、関与する機能に応じて、時には逆の順序で行われる場合がある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または行動を行う特殊用途ハードウェアベースのシステム、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって実行可能であることに注意されたい。
【０１１８】
本発明の実施形態の前述の説明を、例示および説明の目的で提示した。網羅的であること、または開示した正確な形に本実施形態を限定することを意図していない。上記の教示に照らして多くの変更形態および変形形態が考えられる。実施形態の範囲は、この詳細な説明によってではなく、正確にはこれに添付する特許請求の範囲によって限定されることを意図している。上記の明細書、例、およびデータは、実施形態の構成物の製作および使用についての完全な記述を提供する。本発明の趣旨および範囲を逸脱することなく多くの実施形態を作成することができるので、実施形態は、添付の特許請求の範囲または後の出願のすべての特許請求の範囲、およびその均等物に属する。
【図１】
2014099169.tif 000003
【図２】
2014099169.tif 000004
【図３】
2014099169.tif 000005
【図４】
2014099169.tif 000006
【図５】
2014099169.tif 000007
【図６】
2014099169.tif 000008
【図７】
2014099169.tif 000009
【図８】
2014099169.tif 000010
【図９】
2014099169.tif 000011
【図１０】
2014099169.tif 000012
【図１１】
2014099169.tif 000013
【図１２】
2014099169.tif 000014