Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
データベースファイル、トランザクションログ、トランザクションログミラー、または 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 文を使用します。
Windows Mobile では、ARM プロセッサ用に AES_FIPS および AES256_FIPS アルゴリズムのみがサポートされています。
この文は、プロシージャ、トリガ、イベント、またはバッチではサポートされていません。
FIPS 認定の暗号化をサポートしないプラットフォームもあります。サポートされるプラットフォームのリストについては、 http://www.sybase.com/detail?id=1002288を参照してください。
この文の実行能力は、-gu データベースオプションの設定と SERVER OPERATOR システム権限の有無によって異なります。
なし
SQL/2008 ベンダー拡張。
次の例は、サンプルデータベース demo.db を暗号化し、AES_FIPS で暗号化された新しいデータベース demo2.db を作成します。新しいデータベースファイルはサーバの現在の作業ディレクトリに保存されます。
CREATE ENCRYPTED FILE 'demo2.db' FROM 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.db' KEY 'Sd8f6654*Mnn' ALGORITHM 'AES_FIPS';
次の例は、サンプルデータベース demo.db とそのトランザクションログファイル demo.log を暗号化します。新しいデータベースファイルとそのログファイルは、サーバの現在の作業ディレクトリに保存されます。新しいデータベースファイル demo3.db はまだ古いログファイルを指しているため、dblog -ek Sd8f6654*Mnn -t demo3.log demo3.db を実行する必要があります。
dblog -ek Sd8f6654*Mnn -t demo3.log demo3.db
CREATE ENCRYPTED FILE 'demo3.db' FROM 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.db' KEY 'Sd8f6654*Mnn'; CREATE ENCRYPTED FILE 'demo3.log' FROM 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.log' KEY 'Sd8f6654*Mnn';
データベースの暗号化キーを変更するには、次の文に示すように最初に新しいキーを使用してデータベースファイルのコピーを作成します。
CREATE ENCRYPTED FILE 'newdemo.db' FROM 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.db' KEY 'newkey' OLD KEY 'oldkey';
新しいデータベースファイルはサーバの現在の作業ディレクトリに保存されます。暗号化されたファイルを作成したら、demo.db を削除し、newdemo.db を古いファイルと同じディレクトリに移動して、その名前を demo.db に変更します。