Tag: 审计

MySQL自动存储每行的date时间

在MySQL中,我厌倦了将数据库中的所有表添加到dt_created和dt_modified (它们分别是用于创build和最后修改的date时间戳)列。 每次我INSERT或UPDATE数据库,我将不得不使用NOW()关键字。 这是我的坚持。 有没有什么有效的select,MySQL可以自动存储至less插入行的数据时间,让我检索它?

计算SQL Server存储过程中删除的行数

在SQL Server 2005中,是否有删除行的方法,并被告知有多less人被删除? 我可以用相同的条件做一个select count(*) ,但是我需要这个值得信赖。 我的第一个猜测是使用@@ROWCOUNTvariables – 但没有设置,例如 delete from mytable where datefield = '5-Oct-2008' select @@ROWCOUNT 总是返回一个0。 MSDNbuild议OUTPUT结构,例如 delete from mytable where datefield = '5-Oct-2008' output datefield into #doomed select count(*) from #doomed 这实际上是一个语法错误失败。 有任何想法吗?

审计和logging差异?

我经常碰到这两个词,但是我没有看到这些差别? 我的意思是想知道它们是可以互换使用还是在这两者之间有一些区别? 谢谢。

查找两个C#对象之间的属性差异

我正在处理的项目需要一些简单的审计日志logging,以便用户更改他们的电子邮件,帐单地址等。我们正在使用的对象来自不同的来源,一个是WCF服务,另一个是Web服务。 我已经实现了使用reflection的以下方法来查找对两个不同对象的属性的更改。 这会生成一个与旧的和新的值有差异的属性列表。 public static IList GenerateAuditLogMessages(T originalObject, T changedObject) { IList list = new List(); string className = string.Concat("[", originalObject.GetType().Name, "] "); foreach (PropertyInfo property in originalObject.GetType().GetProperties()) { Type comparable = property.PropertyType.GetInterface("System.IComparable"); if (comparable != null) { string originalPropertyValue = property.GetValue(originalObject, null) as string; string newPropertyValue = property.GetValue(changedObject, null) as string; if (originalPropertyValue != […]

查看在Mac OS X中使用文件的过程

我希望能够跟踪一个文件,并查看哪个进程正在触摸该文件。 那可能吗? 我知道我可以在活动监视器中看到打开的进程列表,但我认为很快就会发生这种情况。 原因是我正在使用一个框架,我认为框架的系统版本正在使用,而不是debugging版本,我想看看哪个进程正在接触它。

更新日志/审计数据库表的最佳devise?

我需要创build一个数据库表来存储不同的更改日志/审计(当添加,删除,修改等)。 我不需要存储特别详细的信息,所以我正在思考一些问题: id(事件) 触发它的用户 事件名称 事件描述 事件的时间戳 我在这里错过了什么? 显然我可以继续改进devise,虽然我不打算使它变得复杂(为事件types创build其他表或类似的东西是不可能的,因为这是我需要的复杂)。

审计日志的数据库devise

每次我需要devise一个新的数据库时,我都花了相当长的时间思考如何设置数据库模式来保存更改的审计日志。 这里已经提出了一些问题,但我不同意所有情况下都有一个最佳方法: 数据库devise的修订 更新日志审计数据库表的最佳devise 关于捕获审计线索的数据库devise思路 我也偶然发现了这篇关于维护数据库变更日志的有趣文章 ,该文章试图列出每种方法的优缺点。 这本书写得非常好,信息很有趣,但却使我的决定变得更加困难。 我的问题是:有没有可以使用的参考资料,可能是一本书或类似于决策树的东西,我可以根据一些inputvariables来决定应该采用哪种方式,如: 数据库模式的成熟 如何查询日志 有可能需要重新创buildlogging 更重要的是:写或读的performance 正在logging的值的性质(string,数字,斑点) 存储空间可用 我知道的方法是: 1.为创build和修改的date和用户添加列 表格示例: ID _1 _2 VALUE_3 创builddate modifed_date 由…制作 modified_by 主要缺点:我们失去了修改的历史。 提交后无法回滚。 2.只插入表格 表格示例 : ID _1 _2 VALUE_3 从 至 删除(布尔) 用户 主要缺点:如何保持外键最新? 需要巨大的空间 3.为每个表创build一个单独的历史logging表 历史表格示例: ID _1 _2 VALUE_3 VALUE_4 用户 删除(布尔) 时间戳 主要缺点:需要复制所有审计表。 如果模式发生变化,则也需要迁移所有日志。 4.为所有表创build合并历史logging表 历史表格示例: […]

在SQL Server中创build审计触发器

我需要在SQL Server 2005数据库中的两个表上实现更改跟踪。 我需要审计添加,删除,更新(有关更新内容的详细信息)。 我打算使用触发器来做到这一点,但在Google上发现后,我发现这样做很不容易,我想避免这种情况。 任何人都可以发布一个更新触发器的例子,以成功和优雅的方式完成这一点? 我希望结束以下结构的审计表: ID LOGDATE 表名 TransactionType(更新/插入/删除) 的recordId 字段名 的OldValue 的NewValue …但我很乐意提供build议。 谢谢!

使用MVC和entity framework实施审计日志/更改历史logging

我正在修改历史/审计日志到我的MVC应用程序正在使用entity framework。 特别是在编辑方法public ActionResult Edit(ViewModel vm) ,我们find了我们正在尝试更新的对象,然后使用TryUpdateModel(object)将表单中的值转换为我们要更新的对象。 我想在该对象的任何字段更改时logging更改。 所以基本上我需要的是在编辑之前对象的一个​​副本,然后在TryUpdateModel(object)完成工作之后进行比较。 即 [HttpPost] public ActionResult Edit(ViewModel vm) { //Need to take the copy here var object = EntityFramework.Object.Single(x=>x.ID = vm.ID); if (ModelState.IsValid) { //Form the un edited view model var uneditedVM = BuildViewModel(vm.ID); //this line seems to confuse the EntityFramework (BuildViewModel() is used to build the model […]