暗号化テーブル空間を作成するには、事前にキーストアがオープンされている必要があります。
暗号化するテーブル空間を作成するときに、実行時パラメータに暗号化アルゴリズムを設定します。たとえば、暗号化アルゴリズムとしてキー長が256ビットのAESを用い、secure_tablespaceという名前のテーブル空間を作成するには、次のようにします。
-- 以降に作成するテーブル空間の暗号化アルゴリズムを指定 SET tablespace_encryption_algorithm = 'AES256'; CREATE TABLESPACE secure_tablespace LOCATION '/My/Data/Dir'; -- 以降に作成するテーブル空間は暗号化しないように指定 SET tablespace_encryption_algorithm = 'none';
または
CREATE TABLESPACE secure_tablespace LOCATION '/My/Data/Dir' tablespace_encryption_algorithm = 'AES256';
暗号化アルゴリズムとして、キー長が128または256ビットのAESを使用できます。256ビットのAESを推奨します。実行時パラメータの指定方法については“付録A パラメータ”を参照してください。
テーブル空間を作成するときにGUCとコマンドラインオプションの両方を提供した場合、コマンドラインオプションが選択されます。
テーブル空間pg_defaultおよびpg_globalを暗号化することはできません。
そして、作成した暗号化テーブル空間にテーブルやインデックスを作成します。暗号化テーブル空間に作成されたリレーションは自動的に暗号化されます。
例
CREATE TABLE my_table (...) TABLESPACE secure_tablespace;
SET default_tablespace = 'secure_tablespace'; CREATE TABLE my_table (...);
一時テーブルと一時インデックスを暗号化する場合も同様です。つまり、TABLESPACE句を明示的に指定するか、またはtemp_tablespacesパラメータに暗号化テーブル空間を列挙し、CREATE TEMPORARY TABLEやCREATE INDEXを実行します。
データベースを作成するときに、CREATE DATABASE文のTABLESPACE句に暗号化テーブル空間を指定すると、明示的にテーブル空間を指定しないでそのデータベースに作成されたリレーションは暗号化されます。さらに、システムカタログも暗号化されるので、ユーザー定義関数のソースコードも保護されます。
注意
pgAdminのテーブル空間作成画面または、クエリーツールから、暗号化テーブル空間の作成はできません。暗号化テーブル空間を作成する場合は、[プラグイン(P)]メニューの[PSQL Console]をクリックし、psqlのコンソール画面で暗号化テーブル空間の作成を行ってください。