Sql-Server
Sysadmin的登錄報告
我們要求只為系統管理員提供來自 SQL Server 的登錄報告 - 這將具有登錄日期和時間,當任何人登錄到具有系統管理員權限的 SQL Server 時。
無論如何,我們是否可以從 SQL 伺服器獲取報告,其中包含只有數據庫伺服器上的系統管理員使用者的登錄詳細資訊。
我想,在安全選項卡中,我們可以同時啟用成功和失敗登錄,但是啟用它會在伺服器上增加很多成本,目前我們只為失敗的登錄啟用了它。而且我不知道是否有辦法只為系統管理員啟用成功登錄,而不是為其他人啟用。
任何幫助,將不勝感激。
我可能會查看 LOGON 觸發器並結合檢查 sysadmin 的登錄 如果登錄使用者是 sysadmin,請記錄它;否則跳過
顯然,監控性能影響
sql server - 如何為客戶端審計創建登錄和註銷觸發器?- 數據庫管理員堆棧交換
CREATE TRIGGER MyLogonTrigger ON ALL SERVER FOR LOGON AS BEGIN IF SUSER_SNAME() = 'SomeUser' INSERT INTO Test.dbo.LogonAudit (UserName, LogonDate, spid) VALUES (SUSER_SNAME(), GETDATE(), @@SPID); END;
SELECT name,type_desc,is_disabled, create_date FROM master.sys.server_principals WHERE IS_SRVROLEMEMBER ('sysadmin',name) = 1 ORDER BY name
大聲笑,我剛剛發現我有這樣的腳本,見下文
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