偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server 2005 SysAdmin 登錄審計的詳細(xì)介紹

數(shù)據(jù)庫 SQL Server
此文章主要向大家描述的是SQL Server 2005 SysAdmin 登錄審計,以及對連接兩個視圖獲得成員的實際應(yīng)用代碼的描述。

以下的文章主要向大家描述的是SQL Server 2005 SysAdmin 登錄審計,如果是以sysadmin角色的成員在SQL Server數(shù)據(jù)庫中出現(xiàn)時,我都有審計這一過程的想法。審計所有成功的登錄可以提供信息,然而,它記錄每一次連接。

Sysadmin登錄在一片喧鬧聲中正失去它自己的地位。我該怎樣做才能只通過SQL Server 2005 sysadmin登

 

無論何時以sysadmin角色的成員登錄到我的SQL Server中,我都想審計這一過程。審計所有成功的登錄可以提供信息,然而,它記錄每一次連接。Sysadmin登錄在一片喧鬧聲中正失去它自己的地位。我該怎樣做才能只通過sysadmin登錄到我的SQL Server實例呢?

 

專家解答

在SQL Server 2005 Service Pack 2中,微軟把登錄觸發(fā)器引入到核心功能中。與DDL和DML觸發(fā)器一樣,這些觸發(fā)器在特定的事件上被激活,在這個例子中,無論何時登錄到SQL Server實例中,它都會被激活。當(dāng)某個特定角色的成員登錄時,比如syadmin固定服務(wù)器角色,我們可以使用一個登錄觸發(fā)器來審計。

為了審計SQL Server 2005 sysadmin固定服務(wù)器角色的成員,我們需要使用兩個系統(tǒng)視圖:sys.server_role_members 和 sys.server_principals。當(dāng)?shù)卿浭录l(fā)生時,我們將連接這兩個視圖來確定這個登錄是不是sysadmin角色的成員。我們可通過如下連接兩個視圖來得到這些成員:

  1. SELECT sp.principal_id   
  2. FROM sys.server_role_members srm   
  3. INNER JOIN sys.server_principals sp   
  4. ON srm.member_principal_id = sp.principal_id   
  5. WHERE srm.role_principal_id = (   
  6. SELECT principal_id   
  7. FROM sys.server_principals   
  8. WHERE [Name] = 'sysadmin')   

這個查詢將是我們登錄觸發(fā)器的基礎(chǔ)。通過在我們代碼的最后一部分增加一個AND從句,我們可以測試引入的登錄是否是SQL Server 2005 sysadmin固定服務(wù)器角色的成員。

當(dāng)事件發(fā)生時,我們也需要一些空間來記錄這些事件。其中最簡單的方法是在一個工作數(shù)據(jù)庫中使用一張表來達(dá)到這個目的。考慮到這些例子的目的性,我將假設(shè)這張表能夠以DBAWork名義存儲在一個DBA數(shù)據(jù)庫中。以下是相應(yīng)的代碼:

  1. CREATE TABLE dbo.AuditSysAdminLogin   
  2. (AuditEventId INT IDENTITY(1,1) NOT NULL,   
  3. EventTime DATETIME NOT NULL,   
  4. ServerLogin NVARCHAR(100) NOT NULL,   
  5. CONSTRAINT PK_AuditSysAdminLogin PRIMARY KEY CLUSTERED (AuditEventID));   
  6. GO   

一旦我們有了審計表,我們就可以創(chuàng)建自己的登錄觸發(fā)器。登錄觸發(fā)器的基本句法和DDL觸發(fā)器的句法相類似,如下顯示:

  1. CREATE TRIGGER   
  2. ON ALL SERVER   
  3. FOR LOGON   
  4. AS   

按照這種格式和使用以上確定的查詢來確定哪一個是SQL Server 2005 SysAdmin角色的成員,那么我們?nèi)鄙俚奈ㄒ环矫媸谴_認(rèn)登錄的一種方式。這里有一個系統(tǒng)功能ORIGINAL_LOGIN(),它提供了相關(guān)的信息,現(xiàn)在把它放在一起,那么下面就是我們的登錄觸發(fā)器:

  1. USE master;   
  2. GO   
  3. CREATE TRIGGER trigLogon_CheckForSysAdmin   
  4. ON ALL SERVER   
  5. FOR LOGON   
  6. AS   
  7. BEGIN   
  8. IF EXISTS (   
  9. SELECT sp.principal_id   
  10. FROM sys.server_role_members srm   
  11. JOIN sys.server_principals sp   
  12. ON srm.member_principal_id = sp.principal_id   
  13. WHERE role_principal_id = (   
  14. SELECT principal_id   
  15. FROM sys.server_principals   
  16. WHERE NAME = 'sysadmin')   
  17. AND ORIGINAL_LOGIN() = sp.NAME)   
  18. BEGIN   
  19. INSERT INTO DBAWork.dbo.AuditSysAdminLogin   
  20. (EventTime, ServerLogin)   
  21. VALUES   
  22. (GETDATE(), ORIGINAL_LOGIN())   
  23. END;   
  24. END;   
  25. GO   

以上的相關(guān)內(nèi)容就是對SQL Server 2005 SysAdmin登錄審計的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫Processor Affinity概述
  2. 破解SQL Server占內(nèi)存過多很簡單!
  3. SQL Server 2005快照與查詢的使用場景
  4. SQL Server拆分字符串的3常用種方法
  5. SQL Server2005插入漢字變問號的破解
責(zé)任編輯:佚名 來源: 清華大學(xué)出版社
相關(guān)推薦

2010-07-16 14:08:39

SQL Server

2010-10-21 16:10:08

2010-07-12 14:06:12

SQL Server代

2010-06-28 15:06:04

SQL Server

2011-08-15 15:40:57

SQL Server 系統(tǒng)數(shù)據(jù)庫

2010-06-17 15:09:49

SQL Server

2010-07-23 13:09:35

SQL Server回

2011-02-28 17:41:20

SQL Server

2011-08-25 15:19:25

SQL Server 排序規(guī)則

2010-07-23 12:55:29

SQL Server

2011-08-18 18:03:32

手動卸載SQL Ser

2009-09-08 13:07:15

介紹Linq to S

2010-07-09 11:06:13

SQL Server

2010-10-21 15:13:20

SQL Server系

2010-06-30 08:34:27

SQL Server

2011-03-29 15:27:26

SQL Server 動態(tài)管理

2023-03-31 14:15:57

SQLORDER BY

2011-03-28 10:17:39

sql server

2011-07-14 08:56:34

Sql Server

2011-09-01 16:13:37

Visual StudSQL Server 存儲過程
點贊
收藏

51CTO技術(shù)棧公眾號