0

我们正在尝试识别存储在我们企业中的某些信息的位置,以使其符合我们的数据政策。在文件端,我们使用 Nessus 搜索不同的文件,但我想知道在数据库端。

使用 Nessus 似乎在很大程度上毫无意义,因为它会输出原始数据并且不会告诉我们它在哪个表或行中,或者给我们很多有用的信息,特别是考虑到这些数据库非常大(数百 GB)。

另外值得注意的是,这个系统需要能够进行基于模式的匹配(例如使用正则表达式)。不仅仅是一个“愚蠢的搜索”引擎。

我已经调查了使用数据挖掘和数据仓库来查找这些数据,但似乎它们更多的是用于分析数据,而不仅仅是查找数据。

有没有更好的方法来搜索数据库中的大量数据以尝试找到这些信息?我们同时使用 Oracle 11g 和 SQL Server 2008 并且需要在两者上执行搜索,所以我想远离特定于服务器的范例(尽管如果我必须重写一些代码以从 T-SQL 转换为 PL /SQL,反之亦然,我不介意)

4

3 回答 3

2

在用于搜索大量文本的 SQL Server 上,您可以查看全文搜索。

在此处阅读更多信息http://msdn.microsoft.com/en-us/library/ms142559.aspx

但是,如果我没看错的话,您希望以类似于网络搜索引擎蜘蛛网站和网页的方式来蜘蛛您的数据库。

您可以使用一组全文查询来返回跨越多个表的结果。

于 2009-12-01T21:07:51.970 回答
1

Oracle 使用 RegExp_Like() 函数支持正则表达式,它应该非常简单,可以根据系统元数据自动生成所需的代码(例如,查找超过一定长度的所有文本列,并将它们包含在谓词中再次对该表查找与您的正则表达式匹配的行和值)。听起来真的不太具有挑战性。从理论上讲,您可以检查约束列以防止插入与正则表达式匹配的值,但这可能是矫枉过正。

于 2009-12-06T18:47:02.770 回答
0

Oracle Text 适用于在数据库中保存的大量文本(例如 PDF、HTML、TXT 或 DOC)中搜索单词/短语。有一些有限的模糊搜索,但不是正则表达式本身。

你并没有真正进入你正在寻找什么样的数据或你的数据库中有什么。Nessus 表示您正在寻找安全问题,但“数据相关性”的标题暗示了一些完全不同的东西。

实际上,数据结构应该提供有关要查找的内容和位置的信息。这就是数据库的意义——为可访问性构建数据。支持 CMS、论坛软件或类似软件的数据库将是另一回事。

于 2009-12-02T03:30:39.930 回答