InterBase データベース暗号化
データベース アプリケーションの開発 への移動
InterBase の暗号化は InterBase 2009 以降でサポートされています。InterBase では、以下のどちらかのレベルまたは両方のレベルで情報を暗号化することができます。
- データベース レベル 暗号化(InterBase では、ユーザー情報が含まれているデータベース ページをすべて暗号化します)。
- 列レベル暗号化(列レベル暗号化の方が柔軟性が高く限定的です)。
InterBase データベース暗号化を使って、データベース バックアップ ファイルを暗号化することもできます。InterBase でのデータ暗号化の詳細については、『データ定義ガイド』(英語版)を参照してください。
目次
InterBase での暗号化タスクの作成
InterBase に特定の暗号化タスクを作成するには、システム データ セキュリティ所有者(SYSDSO)を作成する必要があります。SYSDSO と SYSDBA(データベース所有者)のどちらのユーザーも InterBase 暗号化についての責任があります。ユーザーのタスクの違いを以下の表に示します。
権限 | データベース 所有者 |
SYSDSO |
---|---|---|
暗号化キーの作成 |
× | ○
|
SEP の設定 |
× | ○
|
暗号化権限の付与 |
× | ○
|
データベースの暗号化 |
○
|
× |
列の暗号化 |
○
|
× |
暗号解読権限の付与 |
○
|
× |
また、テーブルの列を暗号化する権限を付与されている個々のテーブル所有者も暗号化タスクを実行できます。
IBConsole でのデータベースの暗号化
InterBase でデータベースを暗号化する方法は 2 とおりあります。isql を使って暗号化の有効化や実装を行うこともできますし、IBConsole でデータベースを暗号化することもできます。 このトピックでは、2 番目の選択肢である IBConsole でのデータベースの暗号化を使用します。
データベースを新規作成するときに暗号化を実行するには、以下の手順に従います。
- IBConsole を開きます。
- メニューから[サーバー|ログイン...]を選択します。
- SYSDBA またはデータベース所有者としてログインします。
- メニューから[データベース|データベースの作成]を選択します。
- [保存する場所]フィールドで、データベースを保存するフォルダを選択します。
- ファイル名を指定し、[保存]をクリックすると、ダイアログが閉じます。
- [埋め込みユーザー認証]フィールドの値を[Yes]に変更します。
- メモ: [暗号化の使用]フィールドが表示されます。
- [暗号化の使用]フィールドの値を[Yes]に変更します。
- [OK]ボタンをクリックすると、データベースが作成されます。
- 接続情報を入力して[接続...]ボタンをクリックします。
- [暗号化ウィザード]で[次へ >]ボタンをクリックします。
- SYSDSO のパスワードを入力し、[次へ >]ボタンをクリックします。
- SEP のパスワードを入力し、[次へ >]ボタンをクリックします。
- [暗号化キー]の名前を入力します。
- [暗号]オプションで[DES]を選択します。
- [OK]ボタンをクリックします。
- [バックアップ キー名]とパスワードを入力します。
- メモ: 暗号化されたデータベースのセキュリティと機密性を維持するには、データベース バックアップ ファイルも暗号化する必要があります。
- [OK]ボタンをクリックします。
- 開いたダイアログで[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 では、TSQLConnection の Params コレクションに SEP 値を設定するか、SEP 値をプログラムで設定することができます。
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 パラメータを設定できます。
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)では、TIBDatabase の SysEncryptPassword パラメータをプログラムで設定します。
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
IBDatabase1.SysEncryptPassword:='password';
IBDatabase1.Open;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
関連項目