COPY TOコマンドが出力するファイルは暗号化されません。そのため、他のシステムにファイルを転送する場合は、OpenSSLのコマンドなどでファイルを暗号化したり、Windows用の暗号化通信を行うファイル転送ソフトウェアを利用して、通信中のデータを暗号化してください。
平文のファイルは、不要になったら安全な方法で削除してください。
ファイルを安全に削除するには、以下の方法が利用できます。
fsutilコマンド
例
# テーブルmy_tableの内容をCSV形式のファイルにエクスポートする。 > psql -c "COPY my_table TO 'C:\WINDOWS\Temp\my_table.csv' (FORMAT CSV)" postgres # エクスポートしたファイルを暗号化する。 > C:\OpenSSL-Win32\bin\openssl enc -e -aes256 -in C:\WINDOWS\Temp\my_table.csv -out my_table.csv.enc (ここで暗号化に使うパスフレーズの入力が求められる) # 平文ファイルのサイズを確認し、ゼロパディング後に削除 > dir C:\WINDOWS\Temp\my_table.csv > fsutil file setzerodata offset=0 length=7 C:\WINDOWS\Temp\my_table.csv > del C:\WINDOWS\Temp\my_table.csv # 他のシステムで、暗号化ファイルを復号する。 > C:\OpenSSL-Win32\bin\openssl enc -d -aes256 -in my_table.csv.enc -out my_table.csv (ここで復号に使うパスフレーズの入力が求められる)
COPY FROMコマンドのインポート先となるテーブルやインデックスが暗号化テーブル空間にある場合、インポートされたデータは自動的に暗号化された形で格納されます。