私はライブの顧客データを含む非常に重要なデータベースを持っています。私たちは実際にこのデータベースを維持しています。誰かが重要なテーブル、新しい列に作成しました。この列を作成したのは誰かを知る必要があります。
SQLServer2005を使用しています
これは非常に重大な問題です。私は行政にとても早く答えなければならないので、この点に関するどんな答えも非常に役に立ちます。
よろしくお願いします。
私はライブの顧客データを含む非常に重要なデータベースを持っています。私たちは実際にこのデータベースを維持しています。誰かが重要なテーブル、新しい列に作成しました。この列を作成したのは誰かを知る必要があります。
SQLServer2005を使用しています
これは非常に重大な問題です。私は行政にとても早く答えなければならないので、この点に関するどんな答えも非常に役に立ちます。
よろしくお願いします。
いつ変更が発生したかによって、デフォルトのトレースからこれを判断できる場合があります (無効にしておらず、その間に 5 回ロールオーバーしてトレース ファイルを削除していないことが必要です)。
Determining how a schema change occur?に対する私の回答を参照してください。詳細については、DBA サイトを参照してください。
DDL トリガーでの EventData() 関数の使用 イベント ログ テーブルの作成
--CREATE TABLE EvtLog
(
PostTime DATETIME,
LoginName NVARCHAR(100),
EventType NVARCHAR(100),
TSQLCommand NVARCHAR(2000)
)
GO
--Create the DDL trigger
CREATE TRIGGER trPreventTblChange
ON DATABASE
FOR ALTER_TABLE
AS
DECLARE @Data XML
SET @Data = EventData()
INSERT EvtLog (PostTime, LoginName, EventType, TSQLCommand)
VALUES
(GETDATE(),
CONVERT(NVARCHAR(100), CURRENT_USER),
@Data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@Data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ;
GO
DDL_TABLE_EVENTSに関する詳細情報