我们仍在使用旧的经典 ASP,并且希望在用户在我们的应用程序中执行某些操作时进行记录。我们将编写一个通用子例程来获取我们想要记录的详细信息。
我们是否应该使用以下命令将其记录到 txt 文件中FileSystemObject
或者将其记录到 MS SQL 数据库?
在数据库中,我们应该向现有数据库添加一张新表还是应该使用单独的数据库?
Edit
事后看来,更好的答案是登录BOTH文件系统(首先,立即),然后到集中数据库(即使延迟)。大多数现代日志框架都遵循publish-subscribe
模型(通常称为日志记录源和接收器),它将允许定义多个日志记录接收器(目标)。
写入文件系统背后的基本原理是,如果网络、数据库或安全问题等外部基础设施依赖项阻止您远程写入,那么如果您可以从服务器的硬盘恢复数据(类似于航空业的黑匣子)。写入文件系统的日志数据一旦确认中央数据库已记录数据就可以删除,因此一般文件系统保留大小或轮换次数不需要很大。
企业日志管理器如Splunk http://www.splunk.com/可以配置为抓取本地服务器日志文件(例如,由log4net
, 实体图书馆Logging Application Block
等),然后将它们集中在可搜索的数据库中,可以在其中挖掘记录的数据、绘制图表、在仪表板上显示等。
但从操作角度来看,您可能拥有一个服务器场或服务器集群,并假设本地文件系统和远程数据库日志记录机制都正常工作,99% 的用例实际上是尝试在服务器中查找任何内容。日志文件仍将通过中央数据库(理想情况下有一个像样的前端系统,允许您从日志数据查询、聚合、绘制图表和构建触发器或通知)。
原答案
如果您有数据库,我建议使用它来代替文件系统来进行审计记录。
理由:
- 数据的类型化和标准化分类(
severity, action type, user, date ...
)
- 更容易找到审计数据(
select ... from Audits where ...
) 与 Grep
- 更容易清理(例如
Delete from Audits where = Date ...
)
- 备份更容易
使用现有数据库还是新数据库的决定取决于 - 如果您有多个应用程序(具有自己的数据库)并且想要集中记录/审核所有应用程序中的所有操作,那么集中式数据库可能是有意义的。
既然您说要审核用户活动,那么在与用户表/定义相同的数据库中进行审核可能是有意义的(如果适用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)