web-dev-qa-db-ja.com

SQL SERVER 2012で、SQLログインを作成しているのは誰で、その日付を知りたい

私はSQLサーバー2012で、ログインを作成した人と日付を調べようとしていました。どんな体もこのおかげで助けてくれますか、

4
Bhupendra

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つのデフォルトのトレースファイルがあり、これらはロールオーバーされるため、古いイベントに関係なく、オブジェクトに関連する最近の情報をキャプチャすることが可能です。したがって、将来の使用のために情報を保存するには、 デフォルトのトレースでの情報の収集 をお読みください。

5
KASQLDBA