Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

CREATE ENCRYPTED FILE 文

データベース・ファイル、トランザクション・ログ、トランザクション・ログ・ミラー、または DB 領域の、強力な暗号化が施されたコピーを作成します。

構文
CREATE ENCRYPTED FILE newfile
FROM oldfile
{ KEY key | KEY key OLD KEY oldkey }
[ ALGORITHM { 
   'AES' 
   | 'AES256' 
   | 'AES_FIPS' 
   | 'AES256_FIPS' } ]
パラメータ
  • FROM 句   CREATE ENCRYPTED FILE 文を実行する既存ファイル (oldfile) の名前を指定します。

  • KEY 句   使用する暗号化キーを指定します。

  • OLD KEY 句   ファイルの暗号化に使用する現在のキーを指定します。

  • ALGORITHM 句   ファイルの暗号化に使用されるアルゴリズムを指定します。アルゴリズムを指定しない場合は、デフォルトで AES (128 ビットの暗号化) が使用されます。

備考

この文は、データベースでリカバリが必要であり、データベースの暗号化されたコピーをサポート目的で必要な場合に使用します。この文の使用は、トランザクション・ログ・ファイル、トランザクション・ログ・ミラー・ファイル、DB 領域ファイルなどのデータベース関連ファイルの暗号化でも必要です。

データベース関連ファイルを暗号化するときは、同じデータベースのすべての関連ファイルに同じアルゴリズムとキーを指定する必要があります。

関連する DB 領域またはログが oldfile に存在し、これらも暗号化する場合は、該当するファイルの新しい名前とロケーションを新しいデータベースに格納する必要があります。そのためには、次の手順に従います。

  • 新しいデータベースに対して dblog -t を実行して、トランザクション・ログの名前とロケーションを変更します。

  • 新しいデータベースに対して dblog -m を実行して、トランザクション・ログ・ミラーの名前とロケーションを変更します。

  • 新しいデータベースに対して ALTER DBSPACE 文を実行して、DB 領域ファイルのロケーションと名前を変更します。

この文を使用して、データベースの暗号化アルゴリズムとキーを変更できます。ただし、CREATE ENCRYPTED FILE 文は、新しいファイル (newfile) を作成しますが、前バージョンのファイル (oldfile) を置換または削除することはありません。

このプロセスでトランザクション・ログ・ファイルの名前が変わることはありません。したがって、データベースとトランザクション・ログ・ファイルの名前を変更した場合は、復号化後のデータベースに対して dblog -t を実行する必要があります。

dbunload -an オプションに -ek または -ep を使用してデータベースのアンロードと再ロードを行うと、既存のデータベースを暗号化したり、既存の暗号化キーを変更したりできます。

テーブルの暗号化が有効なデータベースがある場合、この文を使用してデータベースを暗号化することはできません。ただし、この文を使用して、テーブルの暗号化に使用したキーを変更することはできます。テーブル暗号化が有効になっているデータベースを暗号化するには、CREATE ENCRYPTED DATABASE 文を使用します。CREATE ENCRYPTED DATABASE 文を参照してください。

この文は、プロシージャ、トリガ、イベント、またはバッチではサポートされていません。

注意

FIPS は、すべてのプラットフォームで使用できるわけではありません。サポートされるプラットフォームのリストについては、[external link] http://www.ianywhere.jp/sas/os.html を参照してください。

パーミッション

DBA 権限が必要です。

Windows Mobile では、ARM プロセッサ用に AES_FIPS および AES256_FIPS アルゴリズムのみがサポートされています。

関連する動作

なし

参照
標準と互換性
  • SQL/2003   ベンダ拡張。

次の例は、contacts データベースを暗号化し、AES_FIPS で暗号化された新しいデータベース contacts2 を作成します。

CREATE ENCRYPTED FILE 'contacts2.db'
FROM 'contacts.db'
   KEY 'Sd8f6654*Mnn'
   ALGORITHM AES_FIPS;

次の例は、contacts データベースと contacts ログ・ファイルを暗号化して、両ファイルの名前を変更します。ログの名前が変更されていてもデータベース・ファイルは引き続き古いログを指しているため、dblog -ek Sd8f6654*Mnn -t contacts2.log contacts.db を実行する必要があります。

CREATE ENCRYPTED FILE 'contacts2.db'
   FROM 'contacts.db'
   KEY 'Sd8f6654*Mnn';
CREATE ENCRYPTED FILE 'contacts2.log'
   FROM 'contacts.db'
   KEY 'Sd8f6654*Mnn';

次の例は、contacts データベースと contacts ログ・ファイルを暗号化して、元のログ・ファイル名は変更しません。この場合は、ファイル名が変更されないので、dblog を実行する必要はありません。

CREATE ENCRYPTED FILE 'newpath\contacts.db'
   FROM 'contacts.db'
   KEY 'Sd8f6654*Mnn';
CREATE ENCRYPTED FILE 'newpath\contacts.log'
   FROM 'contacts.log'
   KEY 'Sd8f6654*Mnn';

データベースの暗号化キーを変更するには、次の文に示すように最初に新しいキーを使用してデータベース・ファイルのコピーを作成します。

CREATE ENCRYPTED FILE 'newcontacts.db'
 FROM 'contacts.db' 
 KEY 'newkey' OLD KEY 'oldkey';

暗号化されたファイルを作成した後、contacts.db を削除し、次に newcontacts.db の名前を contacts.db に変更します。