【问题标题】:sqlite - creating an audit using triggerssqlite - 使用触发器创建审计
【发布时间】:2013-02-08 01:52:54
【问题描述】:

我想在 sqlite 中为我的表创建一个小审核机制,每当对表进行更改时,我都会更新 2 个字段来显示谁更改了数据以及何时更改。 我们在 MS SQL Server 数据库中使用了类似的概念。 但我想知道如何在 sqlite 中实现这一点。我在表的末尾添加了 2 个字段,称为 updatedusername 和一个 updateddatetime 字段。 当最终用户登录我的 Web 应用程序并进行更改时,我可以“插入”用户凭据以及特定表的任何其他数据...... 但我想知道如何用触发器完成同样的事情。 任何人都可以对此有所了解吗?
例如,如果我要设置一个触发器,当插入新记录或更新现有数据时,我将如何提供登录到应用程序以进行更改的人的用户名,而不是一些通用的 web id正在被我的服务器使用....

谢谢。

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    SQLite 没有您在其他数据库中可以找到的用户的概念,这意味着无法询问是哪个用户发起了操作。

    如果客户手头有用户名,您必须确保每个INSERTUPDATE 都提供了它:

    CREATE TABLE foo ( bar INTEGER, baz INTEGER, whodunnit TEXT );
    
    INSERT INTO foo VALUES (1, 123, 'bob');
    UPDATE foo SET baz = 1, whodunnit = 'bob' WHERE bar = 123;
    

    时间可以由触发器自动填写,因为 SQLite 具有可以提供该信息的功能。

    【讨论】:

    • 好的。正如您在上面描述的那样,我已经在“手动”进行操作。只需要确保我没有遗漏任何东西。
    猜你喜欢
    • 2012-08-14
    • 2018-11-03
    • 2021-05-20
    • 2021-06-22
    • 2018-06-04
    • 1970-01-01
    • 2014-05-04
    • 2014-04-19
    相关资源
    最近更新 更多