ページの先頭行へ戻る
Symfoware Analytics ServerV12.2.0 利用ガイド
FUJITSU Software

7.1.2 利用方法

秘匿化を利用するためには、秘匿化ポリシーの設定が必要です。秘匿化ポリシーは運用時に作成、変更、削除、有効化/無効化が可能です。
秘匿化ポリシーの利用方法について、例を用いて以下の手順で説明します。

利用手順

  1. データベースpostgresのt1テーブルに秘匿化ポリシーp1を作成します。
    設定する値は以下とします。

    • 秘匿化対象:数値型のc1

    • 秘匿化種別:FULL

    • 秘匿化条件:'1=1'

  2. 秘匿化ポリシーp1に秘匿化対象を追加します。
    追加する内容は以下とします。

    • 秘匿化対象:文字型のc2

    • 秘匿化種別:PARTIAL

    • 秘匿化形式:'VVVFVVVVFVVVV, VVV-VVVV-VVVV, *, 4, 11'

  3. 秘匿化ポリシーp1を確認します。

  4. 秘匿化ポリシーp1を有効化/無効化します。

  5. 秘匿化ポリシーp1を削除します。

注意

秘匿化ポリシーの設定はDWHサーバ管理者ユーザーのみ実行可能です。

7.1.2.1 秘匿化ポリシーの作成

以下にサーバ上からの実行例を示します。

  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.
  2. 表示されるデータの確認
    元データが表示されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      1 | 012-3456-7890
      2 | 012-3456-7891
      3 | 012-3456-7892
    (3 row)
  3. 秘匿化ポリシーの作成
    秘匿化ポリシーを作成するために、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)
  4. 表示されるデータの確認
    秘匿化対象のデータ(列c1)が正しく改訂されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      0 | 012-3456-7890
      0 | 012-3456-7891
      0 | 012-3456-7892
    (3 row)
  5. データベースpostgresとの切断
    psqlコマンドを終了するために、“\q”を実行します。

    postgres=# \q

参照

  • pgxa_create_confidential_policyシステム関数の詳細は、“J.4.13 pgxa_create_confidential_policy”を参照してください。

  • psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。

注意

秘匿化ポリシーはテーブルに対し1つのみ作成可能です。

7.1.2.2 秘匿化ポリシーの変更

以下にサーバ上からの実行例を示します。

  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.
  2. 秘匿化ポリシーの変更
    秘匿化ポリシーを変更するために、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)
  3. 表示されるデータの確認
    秘匿化対象のデータが正しく改訂されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      0 | 012-****-****
      0 | 012-****-****
      0 | 012-****-****
    (3 row)
  4. データベースpostgresとの切断
    psqlコマンドを終了するために、“\q”を実行します。

    postgres=# \q

参照

  • pgxa_alter_confidential_policyシステム関数の詳細は、“J.4.14 pgxa_alter_confidential_policy”を参照してください。

  • psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。

7.1.2.3 秘匿化ポリシーの確認

以下にサーバ上からの実行例を示します。

  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.
  2. 秘匿化ポリシーが設定されている秘匿化対象に関する情報の確認
    秘匿化ポリシーが設定されている秘匿化対象を確認するために、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)
  3. 秘匿化ポリシーの内容に関する情報の確認
    秘匿化ポリシーの内容を確認するために、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)
  4. データベース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”を参照してください。

7.1.2.4 秘匿化ポリシーの有効化/無効化

以下にサーバ上からの実行例を示します。

  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.
  2. 秘匿化ポリシーの無効化
    秘匿化ポリシーを無効にするために、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)
  3. 表示されるデータの確認
    秘匿化ポリシーの無効化により元データが表示されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      1 | 012-3456-7890
      2 | 012-3456-7891
      3 | 012-3456-7892
    (3 row)
  4. 秘匿化ポリシーの有効化
    秘匿化ポリシーを有効にするために、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)
  5. 表示されるデータの確認
    秘匿化ポリシーの有効化により秘匿化対象のデータが正しく改訂されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      0 | 012-****-****
      0 | 012-****-****
      0 | 012-****-****
    (3 row)
  6. データベースpostgresとの切断
    psqlコマンドを終了するために、“\q”を実行します。

    postgres=# \q

参照

  • pgxa_enable_confidential_policyシステム関数の詳細は、“J.4.16 pgxa_enable_confidential_policy”を参照してください。

  • psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。

7.1.2.5 秘匿化ポリシーの削除

以下にサーバ上からの実行例を示します。

  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.
  2. 秘匿化ポリシーの削除
    秘匿化ポリシーを削除するために、pgxa_drop_confidential_policyシステム関数を実行します。

    postgres=# select pgxa_drop_confidential_policy(table_name := 't1', policy_name := 'p1');
     pgxa_drop_confidential_policy 
    -------------------------------
     t
    (1 row)
  3. 表示されるデータの確認
    秘匿化ポリシーの削除により元データが表示されていることを確認します。

    postgres=# select * from t1;
     c1 |      c2       
    ----+---------------
      1 | 012-3456-7890
      2 | 012-3456-7891
      3 | 012-3456-7892
    (3 row)
  4. データベースpostgresとの切断
    psqlコマンドを終了するために、“\q”を実行します。

    postgres=# \q

参照

  • pgxa_drop_confidential_policyシステム関数の詳細は、“J.4.15 pgxa_drop_confidential_policy”を参照してください。

  • psqlコマンドの詳細は、“PostgreSQL文書”の“psql”を参照してください。