如何删除所有 IP 地址?

有没有办法从数据库中删除所有 IP 地址?有没有任何插件或脚本可以做到这一点?

请不要问我为什么要这样做,这只是一个要求,我想完成它。

1 个赞

我去了 Ask.discourse.com,得到了这个,看起来很可能是真的。

在 Discourse 中使用 Rails 删除 IP 地址 AI

pfaffman:

IP 地址存储在哪里?我能从 Rails 中删除它们吗?

DiscourseHelper:

搜索

搜索:用户和帖子的 IP 地址存储在 Discourse 数据库的哪个表中,是否可以使用 Rails 或 rake 任务删除所有存储的 IP 地址以满足隐私或 GDPR 合规性要求?

阅读

阅读:有问题的 IP 地址字段

查找数据库架构

incoming_links,search_logs,topic_link_clicks,topic_views,user_profile_views,user_auth_tokens,user_auth_token_logs,screened_ip_addresses

Discourse 将 IP 地址存储在几个数据库表中,具体来说:

  • incoming_links (ip_address)
  • search_logs (ip_address)
  • topic_link_clicks (ip_address)
  • topic_views (ip_address)
  • user_profile_views (ip_address)
  • user_auth_tokens (client_ip)
  • user_auth_token_logs (client_ip)
  • screened_ip_addresses (ip_address)

如果您有终端访问权限(自托管安装),可以使用 Rails 命令删除 IP 地址。对于每个表,您可以将相关列(如 ip_address 或 client_ip)设置为 NULL。例如,对于 incoming_links:

IncomingLink.update_all(ip_address: nil)

您将为每个相关的表/列运行类似的命令。

有关隐私和潜在影响的更多详细信息和背景信息,请参阅此讨论:
有问题的 IP 地址字段

注意:如果您使用的是 Discourse 的托管服务,您没有 SSH 或 Rails 控制台访问权限;在这种情况下,请联系 Discourse 支持团队 team@discourse.org 获取指导。

如果您需要每个表的特定 Rails 命令或进一步的建议,请告诉我!

1 个赞

有趣的是,它似乎没有包含用户表中的主要字段 ip_addressregistration_ip_address

当我进行数据探索器字段搜索时,还有其他几个字段。

  • screened_emails.ip_address
  • screened_urls.ip_address
  • user_histories.ip_address
  • user_ip_address_histories.ip_address

其中一些在我的测试站点上没有任何记录,但可能值得检查您自己的表,以确保它们对您来说也是空的。

4 个赞

哈!这是我在手机上能做的最好的了。它看起来很多,所以我想它一定包含了。:rofl:

2 个赞