私はSQLサーバー2012で、ログインを作成した人と日付を調べようとしていました。どんな体もこのおかげで助けてくれますか、
SQLサーバーは通常、これを追跡しません。したがって、デフォルトのトレースを使用して、EventClass 109の情報を収集する必要があります。
デフォルトのトレースが実行されていることを確認してください:
SELECT* FROM sys.configurations WHERE configuration_id = 1568
有効になっていない場合は、次を使用して有効にします。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'default trace enabled', 1;
GO
RECONFIGURE;
GO
次に、前述のようにクエリを実行 here して、追加されたSQLログインの情報を収集できます。
SELECT TE.name AS [EventName] ,
v.subclass_name ,
T.DatabaseName ,
t.DatabaseID ,
t.NTDomainName ,
t.ApplicationName ,
t.LoginName ,
t.SPID ,
t.StartTime ,
t.RoleName ,
t.TargetUserName ,
t.TargetLoginName ,
t.SessionLoginName
FROM sys.fn_trace_gettable(CONVERT(VARCHAR(150), ( SELECT TOP 1
f.[value]
FROM sys.fn_trace_getinfo(NULL) f
WHERE f.property = 2
)), DEFAULT) T
JOIN sys.trace_events TE ON T.EventClass = TE.trace_event_id
JOIN sys.trace_subclass_values v ON v.trace_event_id = TE.trace_event_id
AND v.subclass_value = t.EventSubClass
WHERE te.name IN ( 'Audit Addlogin Event', 'Audit Add DB User Event',
'Audit Add Member to DB Role Event' )
AND v.subclass_name IN ( 'add', 'Grant database access' )
注* 5つのデフォルトのトレースファイルがあり、これらはロールオーバーされるため、古いイベントに関係なく、オブジェクトに関連する最近の情報をキャプチャすることが可能です。したがって、将来の使用のために情報を保存するには、 デフォルトのトレースでの情報の収集 をお読みください。