国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

SQLSERVER記錄登錄用戶的登錄時間

來源:懂視網 責編:小采 時間:2020-11-09 07:38:20
文檔

SQLSERVER記錄登錄用戶的登錄時間

SQLSERVER記錄登錄用戶的登錄時間:SQLSERVER記錄登錄用戶的登錄時間 前一陣子經理問我能不能把用戶最后一次登錄我們的業務數據庫的時間記錄下來,因為之前有人修改過數據庫sa用戶 的登錄密碼,所以我們要記錄一下。 我查了一下資料,好像不能記錄誰登錄過業務庫,只能記錄誰登錄過SQLSER
推薦度:
導讀SQLSERVER記錄登錄用戶的登錄時間:SQLSERVER記錄登錄用戶的登錄時間 前一陣子經理問我能不能把用戶最后一次登錄我們的業務數據庫的時間記錄下來,因為之前有人修改過數據庫sa用戶 的登錄密碼,所以我們要記錄一下。 我查了一下資料,好像不能記錄誰登錄過業務庫,只能記錄誰登錄過SQLSER

SQLSERVER記錄登錄用戶的登錄時間 前一陣子經理問我能不能把用戶最后一次登錄我們的業務數據庫的時間記錄下來,因為之前有人修改過數據庫sa用戶 的登錄密碼,所以我們要記錄一下。 我查了一下資料,好像不能記錄誰登錄過業務庫,只能記錄誰登錄過SQLSERVER

SQLSERVER記錄登錄用戶的登錄時間

前一陣子經理問我能不能把用戶最后一次登錄我們的業務數據庫的時間記錄下來,因為之前有人修改過數據庫sa用戶

的登錄密碼,所以我們要記錄一下。

我查了一下資料,好像不能記錄誰登錄過業務庫,只能記錄誰登錄過SQLSERVER

數據庫版本是SQL2005 ,操作系統:Windows7

下面是本人寫的一個腳本,我的實現原理是使用觸發器,觸發器是登錄觸發器,范圍是整個服務器范圍,如果有人登錄過,就使用

bcp命令把登錄信息記錄日志文件

1、如果原來數據庫已經存在觸發器把他刪掉

1 USE MASTER
2 GO
3 DROP TRIGGER trg_logon_attempttest ON ALL SERVER
4 GO

2、在D盤新建一個文本文件 d:\Logondata.txt 這個文本文件用來記錄登錄信息

3、創建一個登錄觸發器審核登錄事件

 1 CREATE TRIGGER trg_logon_attempttest
 2 ON ALL SERVER
 3 WITH EXECUTE AS'sa' 
 4 FOR LOGON,ALTER_LOGIN
 5 AS
 6 BEGIN
 7 DECLARE
 8 @cmd nvarchar(4000)
 9 ;
10 SELECT
11 @cmd = 'ECHO '
12 + ORIGINAL_LOGIN()+ CHAR(9) + CONVERT(varchar(100), GETDATE(), 121)
13 + ' >> d:\Logondata.txt'
14 ;
15 DECLARE @tb_re TABLE(re varchar(4000)); 
16 INSERT @tb_re exec master.. xp_cmdshell @cmd
17 END
18 GO

這樣當每次登錄SQLSERVER的時候就會記錄登錄時間和登錄用戶名

在創建觸發器前,需要開啟xp_cmdshell擴展存儲過程,并且不要禁用sa用戶

不然會遇到下面這種情況,登錄不了服務器,我的計算機名是joe

如果遇到這種情況可以使用SQLSERVER的專用管理員連接(DAC)連接進服務器,并把觸發器先刪除掉

日志的樣式是這樣的:

 1 NT AUTHORITY\SYSTEM 2013-02-08 16:49:04.140 
 2 NT AUTHORITY\SYSTEM 2013-02-08 16:49:14.210 
 3 NT AUTHORITY\SYSTEM 2013-02-08 16:49:24.277 
 4 JOE\Administrator 2013-02-08 16:49:31.753 
 5 JOE\Administrator 2013-02-08 16:49:31.963 
 6 NT AUTHORITY\SYSTEM 2013-02-08 16:49:34.327 
 7 JOE\Administrator 2013-02-08 16:49:35.777 
 8 sa 2013-02-08 16:51:39.930 
 9 NT AUTHORITY\SYSTEM 2013-02-08 16:52:03.147 
10 NT AUTHORITY\SYSTEM 2013-02-08 16:52:13.337 
11 NT AUTHORITY\SYSTEM 2013-02-08 16:52:23.410 
12 NT AUTHORITY\SYSTEM 2013-02-08 16:52:33.830 
13 NT AUTHORITY\SYSTEM 2013-02-08 16:52:44.703 
14 NT AUTHORITY\SYSTEM 2013-02-08 16:52:54.407 
15 NT AUTHORITY\SYSTEM 2013-02-08 16:52:54.623 
16 NT AUTHORITY\SYSTEM 2013-02-08 16:52:54.797 
17 NT AUTHORITY\SYSTEM 2013-02-08 16:52:54.823 
18 NT AUTHORITY\SYSTEM 2013-02-08 16:52:54.893 
19 NT AUTHORITY\SYSTEM 2013-02-08 16:52:55.147 
20 NT AUTHORITY\SYSTEM 2013-02-08 16:52:55.277 


現在還有兩個問題沒有解決:

(1)我只想記錄非Windows驗證方式的用戶登錄,不想記錄Windows驗證方式的 ,現在還沒有找到方法

(2)修改登錄用戶密碼的動作要記錄,但是找了很久也沒有找到使用什么函數

可能這篇文章還有錯誤,歡迎大家拍磚o(∩_∩)o !!

昨天看了一下AdventureWorks數據庫,原來他里面有一個表“dbo.DatabaseLog”

記錄了人們對AdventureWorks數據庫所做的操作,非常詳細,可惜由于他使用服務器范圍的觸發器

來記錄操作信息,而且這個觸發器不是 “隨庫附送”,不然我也可以參考他的觸發器代碼自己做一個

他記錄的內容真的非常詳細

查了MSDN也找不到這個觸發器,希望見過這個觸發器或者知道這個觸發器告知我一聲,謝謝大家了 o(∩_∩)o

今晚在MSDN上找到監控代碼,但是依然不能監控密碼更改,還有觸發器是數據庫級別的,不能建立在服務器級別

 1 USE [pratice];
 2 GO
 3 CREATE TABLE ddl_log (PostTime datetime,DatabaseName NVARCHAR(100), DB_User nvarchar(100), Event nvarchar(100),LoginName NVARCHAR(100), TSQL nvarchar(2000));
 4 GO
 5 
 6 SELECT * FROM [dbo].[ddl_log]
 7 
 8 
 9 CREATE TRIGGER tri_LogServerEvent 
10 ON DATABASE --或者服務器級別 ALL SERVER 
11 FOR DDL_DATABASE_LEVEL_EVENTS --或者服務器級別:DDL_SERVER_LEVEL_EVENTS
12 AS
13 DECLARE @data XML
14 SET @data = EVENTDATA()
15 INSERT ddl_log 
16 (PostTime,DatabaseName, DB_User, Event, LoginName,TSQL) 
17 VALUES 
18 (GETDATE(), 
19 @data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'nvarchar(100)'),
20 CONVERT(nvarchar(100), CURRENT_USER), 
21 @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
22 @data.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(100)'), 
23 @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ;
24 GO
25 --Test the trigger.
26 CREATE TABLE TestTable (a int);
27 DROP TABLE TestTable ;
28 GO
29 SELECT * FROM ddl_log ;
30 GO
31 --Drop the trigger.
32 DROP TRIGGER tri_LogServerEvent
33 ON DATABASE;
34 GO
35 --Drop table ddl_log.
36 DROP TABLE ddl_log;
37 GO

文章出處:

http://msdn.microsoft.com/zh-cn/library/ms173781.aspx

http://msdn.microsoft.com/zh-cn/library/ms186456(v=SQL.90).aspx

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

SQLSERVER記錄登錄用戶的登錄時間

SQLSERVER記錄登錄用戶的登錄時間:SQLSERVER記錄登錄用戶的登錄時間 前一陣子經理問我能不能把用戶最后一次登錄我們的業務數據庫的時間記錄下來,因為之前有人修改過數據庫sa用戶 的登錄密碼,所以我們要記錄一下。 我查了一下資料,好像不能記錄誰登錄過業務庫,只能記錄誰登錄過SQLSER
推薦度:
標簽: 登錄 記錄 時間
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美日韩在线国产 | 国产69精品久久久久99不卡 | 亚洲欧美日韩网站 | 图片亚洲va欧美va国产综合 | 日韩亚洲欧美一区噜噜噜 | 国产精品资源网站在线观看 | 日韩亚洲欧美日本精品va | 国产精品久久九九 | 成人区精品一区二区毛片不卡 | 中文字幕一区二区三区在线观看 | 国产精品视频免费 | 日韩欧美综合在线 | 亚洲一区二区三区夜色 | 亚洲欧洲精品一区二区三区 | 欧美v视频 | 色国产精品一区在线观看 | 一级毛片一级毛片 | 久久精品视频一区二区三区 | 久久久久成人精品一区二区 | 国产成人不卡亚洲精品91 | 午夜视频在线观看免费视频 | 国产aⅴ一区二区三区 | 成人欧美一区二区三区在线 | a男人的天堂久久a毛片 | 亚洲va国产va欧美va综合 | 欧美亚洲综合在线 | 老司机精品视频一区二区 | 亚洲国产成人精品久久 | 插欧美| 国产精品免费看久久久麻豆 | 欧美激情亚洲一区中文字幕 | 精品日韩欧美一区二区三区 | 国产欧美一区二区三区视频 | 一级欧美日韩 | 欧美日韩国产另类一区二区三区 | 另类国产精品一区二区 | 亚洲国产精品免费 | 国产精品伦视频观看免费 | 亚洲国产精品嫩草影院久久 | 国产成人精品日本亚洲语音2 | 欧美v日韩v亚洲v最新 |