InterBase データベース暗号化

提供: RAD Studio
移動先: 案内検索

データベース アプリケーションの開発 への移動


InterBase の暗号化は InterBase 2009 以降でサポートされています。InterBase では、以下のどちらかのレベルまたは両方のレベルで情報を暗号化することができます。

  • データベース レベル 暗号化(InterBase では、ユーザー情報が含まれているデータベース ページをすべて暗号化します)。
  • 列レベル暗号化(列レベル暗号化の方が柔軟性が高く限定的です)。

InterBase データベース暗号化を使って、データベース バックアップ ファイルを暗号化することもできます。InterBase でのデータ暗号化の詳細については、『データ定義ガイド』(英語版)を参照してください。

InterBase での暗号化タスクの作成

InterBase に特定の暗号化タスクを作成するには、システム データ セキュリティ所有者(SYSDSO)を作成する必要があります。SYSDSOSYSDBA(データベース所有者)のどちらのユーザーも InterBase 暗号化についての責任があります。ユーザーのタスクの違いを以下の表に示します。

権限 データベース  
所有者
SYSDSO

暗号化キーの作成

×

SEP の設定

×

暗号化権限の付与

×

データベースの暗号化

×

列の暗号化

×

暗号解読権限の付与

×

また、テーブルの列を暗号化する権限を付与されている個々のテーブル所有者も暗号化タスクを実行できます。

IBConsole でのデータベースの暗号化

InterBase でデータベースを暗号化する方法は 2 とおりあります。isql を使って暗号化の有効化や実装を行うこともできますし、IBConsole でデータベースを暗号化することもできます。 このトピックでは、2 番目の選択肢である IBConsole でのデータベースの暗号化を使用します。

データベースを新規作成するときに暗号化を実行するには、以下の手順に従います。

  1. IBConsole を開きます。
  2. メニューから[サーバー|ログイン...]を選択します。
  3. SYSDBA またはデータベース所有者としてログインします。
  4. メニューから[データベース|データベースの作成]を選択します。
  5. [保存する場所]フィールドで、データベースを保存するフォルダを選択します。
  6. ファイル名を指定し、[保存]をクリックすると、ダイアログが閉じます。
  7. [埋め込みユーザー認証]フィールドの値を[Yes]に変更します。
    メモ: [暗号化の使用]フィールドが表示されます。
  8. [暗号化の使用]フィールドの値を[Yes]に変更します。
    CreateDatabase-Encryption.png
  9. [OK]ボタンをクリックすると、データベースが作成されます。
  10. 接続情報を入力して[接続...]ボタンをクリックします。
  11. [暗号化ウィザード]で[次へ >]ボタンをクリックします。
  12. SYSDSO のパスワードを入力し、[次へ >]ボタンをクリックします。
  13. SEP のパスワードを入力し、[次へ >]ボタンをクリックします。
    ExternalOptionEnc.png
    メモ: [外部]オプションをオンにすると、ラップトップ コンピュータなどのモバイル デバイスやセキュリティの弱いデスクトップ コンピュータで、権限のないユーザーが暗号化されたデータベースにアクセスすることは難しくなります。
  14. [暗号化キー]の名前を入力します。
  15. [暗号]オプションで[DES]を選択します。
  16. [OK]ボタンをクリックします。
    EncryptionKeyWiz.png
  17. [バックアップ キー名]とパスワードを入力します。
    メモ: 暗号化されたデータベースのセキュリティと機密性を維持するには、データベース バックアップ ファイルも暗号化する必要があります。
  18. [OK]ボタンをクリックします。
    EncDBCompleted.png
  19. 開いたダイアログで[OK]ボタンをクリックします。

InterBase でのシステム暗号化パスワード パラメータ

InterBase でデータベースを暗号化する際には、SEP内部(デフォルト、キーワードを使用しない)か外部(キーワードを使用)として設定できます。

  • 内部 SEP を設定すると、誰かがマシン上で SEP を使って一度データベースを使用すれば、そのデータベースはデータベース ユーザーからアクセスできるようになります。それ以降の接続やマシン再起動後の接続では、SEP 値を指定する必要はありません。RAD Studio アプリケーションが Mac またはモバイル デバイスに配置される場合は、最初の接続で SEP パラメータ値が必要になります。
  • 外部 SEP を設定されたデータベースでは、最初の接続で SEP パラメータ値が必要です。マシンの再起動後、アプリケーションでは、最初の接続で SEP を指定する必要があります。モバイル デバイスには、外部 SEP(システム暗号化パスワード)の方が安全です。
    メモ: 外部 SEP を設定するには、[暗号化ウィザード]で[外部]オプションをオンにするか、alter database set system encryption password <255 文字以内の文字列> [external] コマンドを使用することができます。

dbExpress でのシステム暗号化パスワード

dbExpress では、TSQLConnectionParams コレクションに SEP 値を設定するか、SEP 値をプログラムで設定することができます。

ValueListEditorDBX.png

procedure TForm10.BtnConnectClick(Sender: TObject);
begin
  try
    SQLConnection1.Params.Values['SEP']:='password';
    SQLConnection1.Connected:=true;
  except
    on E:Exception do
        ShowMessage(E.ClassName + ' ' + E.Message);
  end;
end;

FireDAC でのシステム暗号化パスワード

FireDAC では、TFDConnection接続定義パラメータの 1 つである SEPassword パラメータを設定できます。

FDConnectionEdt.png

procedure TForm10.BtnConnectClick(Sender: TObject);
begin
  try
    FDConnection1.Params.Values['SEPasword']:='password';
    FDConnection1.Connected:=true;
  except
    on E:Exception do
        ShowMessage(E.ClassName + ' ' + E.Message);
  end;
end;

InterBase Express でのシステム暗号化パスワード

InterBase Express(IBX)では、TIBDatabaseSysEncryptPassword パラメータをプログラムで設定します。

procedure TForm10.BtnConnectClick(Sender: TObject);
begin
  try
     IBDatabase1.SysEncryptPassword:='password';
     IBDatabase1.Open;
  except
    on E:Exception do
        ShowMessage(E.ClassName + ' ' + E.Message);
  end;
end;

関連項目