Postgres 匿名/随机化特定数据所有具有数据域的数据

问题描述

我试图找出如何在 Postgres 中以最佳方式“匿名化”数据。

让我们假设数据库中的每个项目都创建了架构。在模式中,项目完成后可能需要随机化/擦除/匿名化的列。

我想为所有可能包含敏感数据的列创建新域,在项目完成后,只需运行小脚本即可。

我提出了一些遵循此逻辑的小解决方

create domain anonymous_text as text;

create table test (
    username anonymous_text,address anonymous_text
);

create table test2 (
    username anonymous_text,address anonymous_text
);

insert into test values('hello','world');
insert into test2 values('foo','bar');

 
 
 do $$
  declare
    arow record;
  begin
    for arow in
    select 
        'update '||c.table_name||' set '||c.column_name||' = md5((random() * '||c.ordinal_position||')::text);'
        as my_update_query
    from 
        (select 
            table_name,column_name,ordinal_position
        from information_schema.columns 
        where domain_name = 'anonymous_text' and table_schema='myschema') c
     loop
     execute arow.my_update_query;
    end loop;
  end;
$$;

我的问题是。有没有人遇到过类似的问题,有没有更简单的方法可以在 Postgres 中实现这个结果?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...