SQL Server 事件监控与 Windows PowerShell 应用
1. WMI 服务器事件提供程序:监控登录变更与失败登录尝试
在金融公司担任数据库管理员(DBA)时,常面临业务部门关于安全审计的问题,他们关注服务器的未授权访问和恶意安全利用。以往使用扩展过程(如sp_trace_setevent和sp_trace_setstatus)创建 SQL Server 跟踪来监控登录事件并非易事,需创建包含正确事件的跟踪、启动过程,还需将跟踪输出到可读文件。而使用 WMI 服务器事件提供程序监控登录变更和失败登录尝试则更简单清晰。
1.1 监控登录变更
DDL_LOGIN_EVENTS是登录事件的 DDL 事件类,包含三个子类:
-ALTER LOGIN:捕获 SQL Server 登录和 Windows 登录属性的更改。
-CREATE LOGIN:捕获新账户的创建。
-DROP LOGIN:捕获账户的删除。
以下是MonitorLogins.ps1脚本,用于订阅DDL_LOGIN_EVENTS类的事件:
$query = "SELECT * FROM DDL_LOGIN_EVENTS" $sqlnamespace = "root\Microsoft\SqlServ