当前位置:首页 > 系统运维 > 正文内容

SQL Server 2005 SysAdmin 登录审计的详细介绍

a8116255316年前 (2010-07-15)系统运维9

以下的文章主要向大家描述的是SQL Server 2005 SysAdmin 登录审计,假如是以sysadmin角色的成员在SQL Server数据库中出现时,我都有审计这一过程的想法。审计所有成功的登录可以提供信息,然而,它记录每一次连接。

Sysadmin登录在一片喧闹声中正失去它自己的地位。我该怎样做才能只通过SQL Server 2005 sysadmin登

无论何时以sysadmin角色的成员登录到我的SQL Server中,我都想审计这一过程。审计所有成功的登录可以提供信息,然而,它记录每一次连接。Sysadmin登录在一片喧闹声中正失去它自己的地位。我该怎样做才能只通过sysadmin登录到我的SQL Server实例呢

专家解答

在SQL Server 2005 Service Pack 2中,微软把登录触发器引入到核心功能中。与DDL和DML触发器一样,这些触发器在特定的事件上被激活,在这个例子中,无论何时登录到SQL Server实例中,它都会被激活。当某个特定角色的成员登录时,比如syadmin固定服务器角色,我们可以使用一个登录触发器来审计。

为了审计SQL Server 2005 sysadmin固定服务器角色的成员,我们需要使用两个系统视图:sys.server_role_members 和 sys.server_principals。当登录事件发生时,我们将连接这两个视图来确定这个登录是不是sysadmin角色的成员。我们可通过如下连接两个视图来得到这些成员:

SELECT sp.principal_id   FROM sys.server_role_members srm   INNER JOIN sys.server_principals sp   ON srm.member_principal_id = sp.principal_id   WHERE srm.role_principal_id = (   SELECT principal_id   FROM sys.server_principals   WHERE [Name] = 'sysadmin')   

这个查询将是我们登录触发器的基础。通过在我们代码的最后一部分增加一个AND从句,我们可以测试引入的登录是否是SQL Server 2005 sysadmin固定服务器角色的成员。

当事件发生时,我们也需要一些空间来记录这些事件。其中最简单的 *** 是在一个工作数据库中使用一张表来达到这个目的。考虑到这些例子的目的性,我将假设这张表能够以DBAWork名义存储在一个DBA数据库中。以下是相应的代码:

CREATE TABLE dbo.AuditSysAdminLogin   (AuditEventId INT IDENTITY(1,1) NOT NULL,   EventTime DATETIME NOT NULL,   ServerLogin NVARCHAR(100) NOT NULL,   CONstRAINT PK_AuditSysAdminLogin PRIMARY KEY CLUSTERED (AuditEventID));   go   

一旦我们有了审计表,我们就可以创建自己的登录触发器。登录触发器的基本句法和DDL触发器的句法相类似,如下显示:

CREATE TRIGGER   ON ALL SERVER   FOR LOGON   AS   

按照这种格式和使用以上确定的查询来确定哪一个是SQL Server 2005 SysAdmin角色的成员,那么我们缺少的唯一方面是确认登录的一种方式。这里有一个系统功能ORIGINAL_LOGIN(),它提供了相关的信息,现在把它放在一起,那么接下来的SQL server内容就是我们的登录触发器:

USE master;   GO   CREATE TRIGGER trigLogon_CheckForSysAdmin   ON ALL SERVER   FOR LOGON   AS   BEGIN   IF EXISTS (   SELECT sp.principal_id   FROM sys.server_role_members srm   JOIN sys.server_principals sp   ON srm.member_principal_id = sp.principal_id   WHERE role_principal_id = (   SELECT principal_id   FROM sys.server_principals   WHERE NAME = 'sysadmin')   AND ORIGINAL_LOGIN() = sp.NAME)   BEGIN   INSERT INTO DBAWork.dbo.AuditSysAdminLogin   (EventTime, ServerLogin)   VALUES   (GETDATE(), ORIGINAL_LOGIN())   END;   END;   GO   

以上的相关内容就是对SQL Server 2005 SysAdmin登录审计的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21991.html

分享给朋友:

“SQL Server 2005 SysAdmin 登录审计的详细介绍” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

Windows7截图出现黑屏导致截的图黑呼呼一片

Windows7截图出现黑屏导致截的图黑呼呼一片

最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...