我需要找到一种方法来记录用户的所有脚本和查询(SELECT、INSERT、UPDATE、DELETE 和 EXEC)。
上下文:我想检查我的支持人员在数据库上执行了哪些类型的查询。此时,我要求他们复制粘贴他们在 Teams 频道中运行的每个脚本,但我想放松一下并使用自动化系统。这些用户使用他们在数据库上的帐户登录。我可以识别它们。
我需要找到一种方法来记录用户的所有脚本和查询(SELECT、INSERT、UPDATE、DELETE 和 EXEC)。
上下文:我想检查我的支持人员在数据库上执行了哪些类型的查询。此时,我要求他们复制粘贴他们在 Teams 频道中运行的每个脚本,但我想放松一下并使用自动化系统。这些用户使用他们在数据库上的帐户登录。我可以识别它们。
听起来您想审核用户活动。您应该考虑使用内置的审计功能,它是为审计用户活动而设计的。这里有一个非常简单的设置教程。如果您未使用符合条件的 SQL Server 版本,则应考虑使用更现代(且受支持!)的版本,因为自 SQL Server 2016 SP1 起,数据库审核已扩展到所有版本。
当然,您可以使用 Profiler(让您的系统崩溃)或扩展事件(每次需要分析数据时都哭泣)。审核具有更好的工具支持 - 对于临时检查,您只需右键单击
View Audit Logs
, 并查看错误日志或 SQL Server 代理历史记录等数据。当然,您也可以使用 查询数据,
sys.fn_get_audit_file
并且可以围绕它自动执行操作,并且输出比原始 XML 更容易使用。只是证明它很容易设置,并且很容易验证它是否设置正确。