捕获用户IP地址信息以进行审计

时间:2010-04-04 17:07:27

标签: sql database history audit

我们需要记录使用基于Java EE 5的特定Web应用程序的所有用户的IP地址信息。

在以下支持的数据库(h2,mysql,oracle)中存储IPv4或IPv6地址的适当sql数据类型是什么?

还需要过滤某些IP地址的活动。我应该只将表示形式视为字符串字段(比如说varchar(32)来保存ipv4,ipv6地址)?

3 个答案:

答案 0 :(得分:4)

我将IP地址存储在varchar(15)中。这很容易阅读,您可以过滤特定的IP,如where ip = '1.2.3.4'

如果您必须在网络上进行过滤,例如1.2.3.4/24,那么它就变成了另一个故事。在这种情况下,最好将IP地址存储为4字节二进制文件。

答案 1 :(得分:2)

如果您有大量数据并且必须搜索,为了提高性能,最好将IP的字符串(点线)表示转换为正确的整数值。

答案 2 :(得分:0)

其中任何一个都有效

  • 4个字节,可能是CIDR的第5个字节
  • varchar(15)或(18)一次性存储完整的表示

对于SQL Server的sys.dm_exec_connections来说,varchar(48)...