以下的文章主要向大家描述的是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好导航站长资讯发布,如需转载请注明出处。
正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...
Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...
重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...
很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...