1

私はライブの顧客データを含む非常に重要なデータベースを持っています。私たちは実際にこのデータベースを維持しています。誰かが重要なテーブル、新しい列に作成しました。この列を作成したのは誰かを知る必要があります。

SQLServer2005を使用しています

これは非常に重大な問題です。私は行政にとても早く答えなければならないので、この点に関するどんな答えも非常に役に立ちます。

よろしくお願いします。

4

3 に答える 3

4

いつ変更が発生したかによって、デフォルトのトレースからこれを判断できる場合があります (無効にしておらず、その間に 5 回ロールオーバーしてトレース ファイルを削除していないことが必要です)。

Determining how a schema change occur?に対する私の回答を参照してください。詳細については、DBA サイトを参照してください。

于 2012-10-07T11:08:57.657 に答える
2

そうするようにDBを事前に構成していない限り、事後にそれを行う方法はありません。

この質問は、より多くの情報を提供できます。ここには、詳細を提供するリンクもあります。

于 2012-10-07T06:25:05.983 に答える
1

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に関する詳細情報

于 2012-10-07T08:23:27.747 に答える