秘匿化を利用するためには、秘匿化ポリシーの設定が必要です。秘匿化ポリシーは運用時に作成、変更、削除、有効化/無効化が可能です。
秘匿化ポリシーの利用方法について、例を用いて以下の手順で説明します。
利用手順
データベースpostgresのt1テーブルに秘匿化ポリシーp1を作成します。
設定する値は以下とします。
秘匿化対象:数値型のc1
秘匿化種別:FULL
秘匿化条件:'1=1'
秘匿化ポリシーp1に秘匿化対象を追加します。
追加する内容は以下とします。
秘匿化対象:文字型のc2
秘匿化種別:PARTIAL
秘匿化形式:'VVVFVVVVFVVVV, VVV-VVVV-VVVV, *, 4, 11'
秘匿化ポリシーp1を確認します。
秘匿化ポリシーp1を有効化/無効化します。
秘匿化ポリシーp1を削除します。
注意
秘匿化ポリシーの設定はDWHサーバ管理者ユーザーのみ実行可能です。
以下にサーバ上からの実行例を示します。
データベースpostgresへの接続
psqlコマンドを使用して、データベースpostgresに接続します。
サーバのIPアドレスが“192.0.2.0”、ポート番号が“26500”の場合の例を示します。
psql -d postgres -h 192.0.2.0 -p 26500 psql (9.2.8) Type "help" for help.
表示されるデータの確認
元データが表示されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 1 | 012-3456-7890 2 | 012-3456-7891 3 | 012-3456-7892 (3 row)
秘匿化ポリシーの作成
秘匿化ポリシーを作成するために、pgxa_create_confidential_policyシステム関数を実行します。
postgres=# select pgxa_create_confidential_policy(table_name := 't1', policy_name := 'p1', expression := '1=1', column_name := 'c1', function_type := 'FULL'); pgxa_create_confidential_policy --------------------------------- t (1 row)
表示されるデータの確認
秘匿化対象のデータ(列c1)が正しく改訂されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 0 | 012-3456-7890 0 | 012-3456-7891 0 | 012-3456-7892 (3 row)
データベースpostgresとの切断
psqlコマンドを終了するために、“\q”を実行します。
postgres=# \q
参照
pgxa_create_confidential_policyシステム関数の詳細は、“J.4.13 pgxa_create_confidential_policy”を参照してください。
psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。
注意
秘匿化ポリシーはテーブルに対し1つのみ作成可能です。
以下にサーバ上からの実行例を示します。
データベースpostgresへの接続
psqlコマンドを使用して、データベースpostgresに接続します。
サーバのIPアドレスが“192.0.2.0”、ポート番号が“26500”の場合の例を示します。
psql -d postgres -h 192.0.2.0 -p 26500 psql (9.2.8) Type "help" for help.
秘匿化ポリシーの変更
秘匿化ポリシーを変更するために、pgxa_alter_confidential_policyシステム関数を実行します。
postgres=# select pgxa_alter_confidential_policy(table_name := 't1', policy_name := 'p1', action := 'ADD_COLUMN', column_name := 'c2', function_type := 'PARTIAL', function_parameters := 'VVVFVVVVFVVVV, VVV-VVVV-VVVV, *, 4, 11'); pgxa_alter_confidential_policy -------------------------------- t (1 row)
表示されるデータの確認
秘匿化対象のデータが正しく改訂されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 0 | 012-****-**** 0 | 012-****-**** 0 | 012-****-**** (3 row)
データベースpostgresとの切断
psqlコマンドを終了するために、“\q”を実行します。
postgres=# \q
参照
pgxa_alter_confidential_policyシステム関数の詳細は、“J.4.14 pgxa_alter_confidential_policy”を参照してください。
psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。
以下にサーバ上からの実行例を示します。
データベースpostgresへの接続
psqlコマンドを使用して、データベースpostgresに接続します。
サーバのIPアドレスが“192.0.2.0”、ポート番号が“26500”の場合の例を示します。
psql -d postgres -h 192.0.2.0 -p 26500 psql (9.2.8) Type "help" for help.
秘匿化ポリシーが設定されている秘匿化対象に関する情報の確認
秘匿化ポリシーが設定されている秘匿化対象を確認するために、pgxa_confidential_columnsテーブルを参照します。
postgres=# select * from pgxa_confidential_columns; schema_name | table_name | policy_name | column_name | function_type | function_parameters | regexp_pattern | regexp_replacement | regexp_flags | column_description -------------+------------+-------------+-------------+---------------+----------------------------------------+----------------+--------------------+-------------+-------------------- public | t1 | p1 | c1 | FULL | | | | | public | t1 | p1 | c2 | PARTIAL | VVVFVVVVFVVVV, VVV-VVVV-VVVV, *, 4, 11 | | | | (2 row)
秘匿化ポリシーの内容に関する情報の確認
秘匿化ポリシーの内容を確認するために、pgxa_confidential_policiesを参照します。
postgres=# select * from pgxa_confidential_policies; schema_name | table_name | policy_name | expression | enable | policy_description -------------+------------+-------------+------------+--------+-------------------- public | t1 | p1 | 1=1 | t | (1 row)
データベースpostgresとの切断
psqlコマンドを終了するために、“\q”を実行します。
postgres=# \q
参照
pgxa_confidential_columnsシステム表の詳細は、“J.2.1 pgxa_confidential_columns”を参照してください。
pgxa_confidential_policiesシステム表の詳細は、“J.2.2 pgxa_confidential_policies”を参照してください。
psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。
以下にサーバ上からの実行例を示します。
データベースpostgresへの接続
psqlコマンドを使用して、データベースpostgresに接続します。
サーバのIPアドレスが“192.0.2.0”、ポート番号が“26500”の場合の例を示します。
psql -d postgres -h 192.0.2.0 -p 26500 psql (9.2.8) Type "help" for help.
秘匿化ポリシーの無効化
秘匿化ポリシーを無効にするために、pgxa_enable_confidential_policyシステム関数を実行します。
postgres=# select pgxa_enable_confidential_policy(table_name := 't1', policy_name := 'p1', enable := 'f'); pgxa_enable_confidential_policy --------------------------------- t (1 row)
表示されるデータの確認
秘匿化ポリシーの無効化により元データが表示されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 1 | 012-3456-7890 2 | 012-3456-7891 3 | 012-3456-7892 (3 row)
秘匿化ポリシーの有効化
秘匿化ポリシーを有効にするために、pgxa_enable_confidential_policyシステム関数を実行します。
postgres=# select pgxa_enable_confidential_policy(table_name := 't1', policy_name := 'p1', enable := 't'); pgxa_enable_confidential_policy --------------------------------- t (1 row)
表示されるデータの確認
秘匿化ポリシーの有効化により秘匿化対象のデータが正しく改訂されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 0 | 012-****-**** 0 | 012-****-**** 0 | 012-****-**** (3 row)
データベースpostgresとの切断
psqlコマンドを終了するために、“\q”を実行します。
postgres=# \q
参照
pgxa_enable_confidential_policyシステム関数の詳細は、“J.4.16 pgxa_enable_confidential_policy”を参照してください。
psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。
以下にサーバ上からの実行例を示します。
データベースpostgresへの接続
psqlコマンドを使用して、データベースpostgresに接続します。
サーバのIPアドレスが“192.0.2.0”、ポート番号が“26500”の場合の例を示します。
psql -d postgres -h 192.0.2.0 -p 26500 psql (9.2.8) Type "help" for help.
秘匿化ポリシーの削除
秘匿化ポリシーを削除するために、pgxa_drop_confidential_policyシステム関数を実行します。
postgres=# select pgxa_drop_confidential_policy(table_name := 't1', policy_name := 'p1'); pgxa_drop_confidential_policy ------------------------------- t (1 row)
表示されるデータの確認
秘匿化ポリシーの削除により元データが表示されていることを確認します。
postgres=# select * from t1; c1 | c2 ----+--------------- 1 | 012-3456-7890 2 | 012-3456-7891 3 | 012-3456-7892 (3 row)
データベースpostgresとの切断
psqlコマンドを終了するために、“\q”を実行します。
postgres=# \q
参照
pgxa_drop_confidential_policyシステム関数の詳細は、“J.4.15 pgxa_drop_confidential_policy”を参照してください。
psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。