Mic*_*l B 4 sql-server sql-server-2016
我注意到我有一个不断重置范围配置的数据库,即 maxdop。
是否有任何日志显示谁或什么进程导致这些配置更改?我使用的是 Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466.4
好吧,您不会有任何历史记录,但是您可以在将来的行为中捕捉到这一点,因为 SQL Server Audit 可以使用DATABASE_OBJECT_CHANGE_GROUP
以下方法执行此操作:
USE master;
GO
CREATE SERVER AUDIT ServerAudit
TO FILE (FILEPATH = 'C:\path\to\audit\folder\', MAXSIZE = 1 GB)
WITH (ON_FAILURE = CONTINUE);
GO
ALTER SERVER AUDIT ServerAudit
WITH (STATE = ON);
GO
Run Code Online (Sandbox Code Playgroud)
现在,对于每个数据库:
USE database_name;
GO
CREATE DATABASE AUDIT SPECIFICATION CatchDBConfigChangers
FOR SERVER AUDIT ServerAudit
ADD (DATABASE_OBJECT_CHANGE_GROUP)
WITH (STATE = ON);
GO
Run Code Online (Sandbox Code Playgroud)
您必须为每个数据库创建一个审计规范,这将收集的不仅仅是范围内的配置更改,但是一旦您设置了数据库,您就可以立即开始检查详细信息:
SELECT
[when] = event_time,
[app] = application_name,
[host] = host_name,
[ip] = client_ip,
[login] = server_principal_name,
[statement]
FROM sys.fn_get_audit_file
('C:\path\to\audit\folder\ServerAudit*', NULL, NULL)
WHERE LOWER([statement]) LIKE N'%scoped%configuration%'
-- AND database_name = N'database_name'
;
Run Code Online (Sandbox Code Playgroud)
一次更改后的结果MAXDOP
(点击放大):
归档时间: |
|
查看次数: |
66 次 |
最近记录: |