【问题标题】:user and row level logging in mysqlmysql中的用户和行级别日志记录
【发布时间】:2014-04-02 20:54:47
【问题描述】:

我正在构建一个带有 MySQL 数据库的 spring mvc web 应用程序。我需要能够记录每次特定用户创建、查看或修改数据库中的任何记录。然后,稍后,我需要能够检索按用户细分的历史访问日志,显示每个用户访问的所有行,包括每个用户对每个用户的每个创建、查看或修改操作的日期和时间排。

有没有我可以用来完成此任务的工具?还是我必须自己创造这一切?

我想用三个数据表编写一个复杂的“影子应用程序”,然后在整个应用程序中编写模型和控制器级代码。以前一定有人这样做过。这已经内置在 MySQL 中了吗?所以我只是将我的应用程序设置为将每个用户唯一地登录到数据库中,然后如果我配置 MySQL 来记录他们的活动,那么 MySQL 会记录他们的活动吗?如何配置 MySQL 来执行此操作?

【问题讨论】:

    标签: mysql spring spring-mvc


    【解决方案1】:

    您尝试做的事情可以在数据库级别使用触发器来实现。很多人都不喜欢触发器,所以一定要和团队的其他成员一起讨论这个问题。

    可以在herehere 找到如何做到这一点的示例

    【讨论】:

    • +1 感谢您提供选项。你能告诉我为什么人们不喜欢触发器吗?
    • 触发器不流行的几个主要原因是它们有点“神奇”(意味着您几乎无法控制它们)并且它们将一些应用程序逻辑移动到数据库中(在大多数情况下这是一件坏事)。以下 SO 问题有很多很好的信息:stackoverflow.com/questions/460316/are-database-triggers-evil
    • @CodeMed 我不是存储过程方面的专家,但据我所知,他们无法满足您的要求。将它们视为一种由代码显式调用的函数,而触发器由数据库运行以响应某些事件
    • @CodeMed 我看了这个问题,但恐怕我没有给你任何答案
    • 非常感谢您调查并回复我。我似乎找到了答案。
    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多