[英]SQL - create table to store SQL user activity
我想创建一个SQL表,用于存储/捕获特定数据库的用户访问权限或活动。
例如,每当用户登录到服务器并查询特定的数据库时,该表就具有用户名,访问/查询的数据库,活动时间等条目。
我知道我会在某个地方找到.txt日志文件-但是有一种更简单的自动方式吗?
我将如何去做呢?
提前致谢!
您可以在SQL Server错误日志中捕获登录活动(为“失败的登录和成功的登录”打开登录审核):
USE [master];
GO
EXEC xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'AuditLevel',
REG_DWORD,
3;
或通过创建LOGON触发器并使用它来登录到特定表。
但是,由于SELECT
语句上没有触发器,因此捕获所有查询将需要相当侵入性的方法,例如服务器端跟踪或SQL Server Audit 。
阅读有关SQL Server中的登录触发器的信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.