InterBaseの暗号化は、InterBase 2009以降でサポートされています。InterBaseを使用すると、次のレベルのいずれかまたは両方で情報を暗号化できます。
- データベースレベル暗号化(InterBaseは、ユーザー情報を含むすべてのデータベースページを暗号化します)。
- 列レベル暗号化(列レベルの暗号化はより柔軟で具体的です)。
InterBaseデータベース暗号化を使用して、データベースバックアップファイルを暗号化することもできます。 InterBaseを使用したデータの暗号化の詳細については、「データ定義ガイド」を参照してください。
Table of Contents
InterBaseで暗号化を作成する
InterBaseで暗号化するInterBaseで暗号化を実施するには、System Data Security Owner(SYSDSO)を作成する必要があります。 SYSDSOとSYSDBA(データベース所有者)の両方のユーザーが、InterBase暗号化を担います。 次の表は、ユーザー権限の違いを示しています。
権限 | Database Owner | SYSDSO |
暗号化キーの作成 | NO | YES |
SEPの設定 | NO | YES |
暗号化特権の付与 | NO | YES |
データベースの暗号化 | YES | NO |
列の暗号化 | YES | NO |
複合化特権の付与 | YES | NO |
また、暗号化作業は、テーブル内の列を暗号化する権限を与えられた個々のテーブル所有者が実行できます。
IBConsoleを使用してデータベースを暗号化する
InterBaseでデータベースを暗号化する方法は2つあります。 isqlを使用して暗号化を有効にして実装するか、IBConsoleを使用してデータベースを暗号化することができます。 このトピックでは、2番目の方法であるIBConsoleを使用してデータベース暗号化を使用します。
新しいデータベースを作成するときに暗号化を実行するには、次の手順に従います。
- IBConsoleを開きます。
- メニューから「サーバー」>「ログイン」を選択します。
- SYSDBAまたはデータベース オーナーとしてログインします。
- メニューから「データベース」>「データベースの作成」を選択します。
- 「ファイル名」フィールドで、データベースの保存先を選択します。
- ファイル名を指定し、「保存」をクリックすると、データベースの指定ダイアログが閉じます。
- 「組み込みユーザー認証」フィールドの値を「はい」に変更します。
- 注:「暗号化の使用」フィールドが表示されます。
- 「暗号化の使用」フィールドの値を「はい」に変更します。
- 「OK」ボタンをクリックして、データベースを作成します。
- データベースへ接続ダイアログで接続情報を入力し、「接続」ボタンをクリックします。
- 暗号化ウィザードが表示されますので、「次へ」ボタンをクリックします。
- データベース暗号化ウィザード:ステップ1でSYSDSOパスワードを入力し、「次へ」ボタンをクリックします。
- データベース暗号化ウィザード:ステップ2で「暗号化パスワード」(SEP)を入力し、「次へ」ボタンをクリックします。
注:EXTERNALオプションを使用すると、権限のないユーザーがノートパソコンなどのモバイルデバイスやセキュリティが不十分なデスクトップコンピューターから暗号化されたデータベースにアクセスすることをより困難にします。
- データベース暗号化ウィザード:ステップ3で暗号化名を入力します。
- 暗号を「DES」にします。
- 「次へ」ボタンをクリックします。
- データベース暗号化ウィザード:ステップ4でバックアップキー名とパスワードを入力します。
注:暗号化されたデータベースのセキュリティと機密性を維持するには、データベースのバックアップファイルも暗号化する必要があります。
- 「OK」ボタンをクリックします。
- 「OK」ボタンをクリックし、ダイアログを閉じます。
InterBaseのシステム暗号化パスワードパラメータ
データベースがInterBaseで暗号化されている場合、SEPは内部(デフォルト。キーワード不使用)または外部(キーワード使用)に設定できます。
- 内部SEPを使用すると、誰かがマシン上のSEPでデータベースを最初に使用したときに、データベースユーザーがデータベースにアクセスできます。
以降の接続またはマシンの再起動後の接続では、SEP値を指定する必要はありません。
RAD StudioアプリケーションがMacまたはモバイルデバイスにデプロイされている場合、最初の接続にはSEPパラメーター値が必要です。
- 外部SEPで設定されたデータベースでは、最初の接続にSEPパラメーター値が必要です。 マシンを再起動した後、アプリケーションは最初の接続でSEPを提供する必要があります。 モバイルデバイスにとって外部のシステム暗号化パスワードはより安全です。
注:外部SEPを設定するには、暗号化ウィザードの「外部」オプションをオンにするか、alter database set system encryption password <255-character string> [external]コマンドを使用できます。
dbExpressのシステム暗号化パスワード
dbExpressでは、TSQLConnection ParamsコレクションでSEP値を設定することも、プログラムでSEP値を設定することもできます。
1 2 3 4 5 6 7 8 9 10 |
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 接続定義パラメーターでSEPasswordパラメーターを設定できます。
1 2 3 4 5 6 7 8 9 10 |
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; |
InterBaseExpressのシステム暗号化パスワード
InterBase Express(IBX)では、SysEncryptPassword TIBDatabaseパラメーターをプログラムで設定できます。
1 2 3 4 5 6 7 8 9 10 |
procedure TForm10.BtnConnectClick(Sender: TObject); begin try IBDatabase1.SysEncryptPassword:='password'; IBDatabase1.Open; except on E:Exception do ShowMessage(E.ClassName + ' ' + E.Message); end; end; |
InterBaseに興味を持った方は…
InterBaseには、開発用途に無料で利用できるDeveloper Editionと、InterBase Serverのフル機能を無料で試用できるトライアル版が用意されています。
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition