Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心操作指南

如何创建 SQL Server 登录触发器

如何创建 SQL Server 登录触发器

Netwrix Auditor for SQL Server

  1. 运行 Netwrix Auditor,然后转到 Reports → 选择“SQL Server” → 选择“All SQL Server Logons” → 点击“Subscribe”。
  2. 定义收件人和筛选条件,然后保存订阅。你可以通过电子邮件接收,或按照你设置的计划将其发送到指定的共享文件夹。

报告示例:

it shows successful and failed attempts to connect to a sql server instance through windows or sql server authentication .

了解更多关于 Netwrix Auditor for SQL Server

原生审计

  • 运行 SQL Managements Studio,并在 Transact-SQL 中执行以下代码:
      CREATE DATABASE LogonAudit /* Creates db for storing audit data */
USE [LogonAudit]
CREATE TABLE LogonAuditing /* Creates table for logons inside db */
(
    SessionId int,
    LogonTime datetime,
    HostName varchar(50),
    ProgramName varchar(500),
    LoginName varchar(50),
    ClientHost varchar(50)
)
GO
CREATE TRIGGER [LogonAuditTrigger] /* Creates trigger for logons */
ON ALL SERVER 
FOR LOGON
AS

BEGIN
DECLARE @LogonTriggerData xml,
@EventTime datetime,
@LoginName varchar(50),
@ClientHost varchar(50),
@LoginType varchar(50),
@HostName varchar(50),
@AppName varchar(500)

SET @LogonTriggerData = eventdata()

SET @EventTime = @LogonTriggerData.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime')
SET @LoginName = @LogonTriggerData.value('(/EVENT_INSTANCE/LoginName)[1]', 'varchar(50)')
SET @ClientHost = @LogonTriggerData.value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(50)')
SET @HostName = HOST_NAME()
SET @AppName = APP_NAME()

INSERT INTO [LogonAudit].[dbo].[LogonAuditing]
(
SessionId,
LogonTime,
HostName,
ProgramName,
LoginName,
ClientHost
)
SELECT
@@spid,
@EventTime,
@HostName,
@AppName,
@LoginName,
@ClientHost

END
GO
      
  • 为了在 SQL Management Studio 中查看有关登录的收集信息,请运行以下脚本:
      SELECT *
  FROM [LogonAudit].[dbo].[LogonAuditing]
 You can save data to CSV format after that.
      

报告示例:

a table with a lot of rows and columns and a lot of rows and columns

超越在 SQL Server 上创建登录触发器,掌控访问情况

如果有人直接访问了你的 SQL Server 数据库,你需要立刻得知。获得访问权限的数据库管理员可能会执行非法操作;例如,他们可以在不告知你的情况下删除表或创建触发器。原生工具允许你创建 SQL Server 登录触发器,以审计所有服务器上的访问事件,然后使用 SQL Server Management Studio(SSMS)持续关注登录事件和触发器的执行情况。但你需要做好准备:要在 Transact-SQL 中编写触发器代码,耗费大量时间;接着还要费力地逐条查看审计信息,以发现异常访问。


Netwrix Auditor for SQL Server 免除了为启用对 SQL Server 的审计而创建任何 DDL 触发器(包括 SQL Server 中的登录触发器)的需求。该解决方案通过展示最初的登录尝试、尝试发生的时间与地点、是谁发起的,以及该尝试是成功还是失败,帮助你全面了解是谁试图访问任意一台 SQL Server 实例。借助开箱即用的洞察式报告和类似 Google 的搜索功能,你可以在短时间内识别并追踪新出现的威胁。此外,该解决方案将所有日志以具成本效益的两级存储(SQL 数据库 + 基于文件的存储)保存多年,并让你随时轻松访问。

分享到