在 SQL 服务器中获取用户名的 DDL 触发器

DDL trigger to get username in SQL Server

我的一位客户提出 "who-did-what-to-which-table-and-when" 要求。系统简要说明如下:

我的问题如下:

我的问题是:

无论如何我都可以 link 从登录 table 到 DDL 触发器的用户名吗?登录 table 有 2 列,用户名和密码。是否有一些我可能在这里忽略的连接/任何其他操作?

系统适用于 SQL Server 2008

您也许可以跟踪 user/password table 的 select 语句,然后在 spid 和时间范围内加入。

https://docs.microsoft.com/en-us/sql/relational-databases/sql-trace/sql-trace

  • 使用 sp_trace_create 创建跟踪。
  • 使用 sp_trace_setevent 添加项目事件。批量完成在这种情况下应该有效。
  • 使用 sp_trace_setfilter 设置过滤器。将其过滤到您的 user/password table.
  • sp_trace_setstatus 开始跟踪。
  • 使用 sp_trace_setstatus 停止跟踪。
  • sp_trace_setstatus关闭跟踪。

https://docs.microsoft.com/en-us/sql/relational-databases/sql-trace/create-and-run-traces-using-transact-sql-stored-procedures