对存储在 Amazon RDS 中的 postgres 数据库进行匿名化

问题描述 投票:0回答:1

匿名 postgres 转储的首选方法似乎是使用 Postgresql Anonymizer

RDS 不支持此功能,这意味着您必须手动上传 SQL 文件来添加扩展名。我已经按照here的步骤完成了此操作,但是由于安装不是在 postgres 机器本身上完成的,因此缺少各种数据文件夹。 SQL 文件包含以下行

  SELECT bool_or(results) INTO success
  FROM unnest(array[
    anon.load_csv('anon.identifiers_category',datapath||'/identifiers_category.csv'),
    anon.load_csv('anon.identifier',datapath ||'/identifier_fr_FR.csv'),
    anon.load_csv('anon.identifier',datapath ||'/identifier_en_US.csv'),
    anon.load_csv('anon.city',datapath ||'/city.csv'),
    anon.load_csv('anon.company',datapath ||'/company.csv'),
    anon.load_csv('anon.email', datapath ||'/email.csv'),
    anon.load_csv('anon.first_name',datapath ||'/first_name.csv'),
    anon.load_csv('anon.iban',datapath ||'/iban.csv'),
    anon.load_csv('anon.last_name',datapath ||'/last_name.csv'),
    anon.load_csv('anon.siret',datapath ||'/siret.csv'),
    anon.load_csv('anon.lorem_ipsum',datapath ||'/lorem_ipsum.csv')
  ]) results;
  RETURN success;

这一切显然都失败了,因为没有 CSV。

我想我的第一个问题是,是否还有其他选项可以对 Postgresql Anonymizer 之外的 RDS 中托管的 postgres 数据库进行匿名化?

如果我选择的路线是正确的,我如何上传虚假数据?有什么方法可以让我简单地将其原始包含在 SQL 文件本身中吗?或者访问托管我们数据库的 postgres 机器的文件结构并以这种方式插入 CSV 文件?

提前致谢, 马克

postgresql amazon-rds
1个回答
0
投票

虽然这不能解决我的问题,但可能会对处于我的情况的其他人有所帮助。

我放弃了直接在 RDS 中进行匿名化的尝试,而是在本地下载了生产转储。然后我将这些行添加到底部:

UPDATE public.user SET phone_number = '+444444444-' || public.user.id;
UPDATE public.guest SET phone_number = '+444444444-' || public.guest.id;

然后,我在本地导入此转储,并将其转储到一个新的 SQL 文件中,该文件会上传到 S3 并完全匿名。

一旦您设置了我的脚本来执行此操作,每当您需要新的数据转储时,只需一两个命令即可,但如果 RDS 中有解决方案,那就更好了

© www.soinside.com 2019 - 2024. All rights reserved.