2016-12-07 6 views
0

私は時々不思議なデータを持つテーブルを本番サーバに持っています。なぜ/ who/when ...を見つけるためにテーブルにデータを追加する履歴を追跡することは可能ですか?私はテーブルにトリガーを置くことには消極的です(そして、それは将来のチェックのために役立つでしょう)。なぜなら、データ量は通常は巨大であり、これはパフォーマンスに影響するかもしれないからです。 sa権限ではなく、db-owner権限しか持っていません。テーブルにデータを追加した人を確認する

答えて

1

新しい列にデフォルト値を使用して、そこにユーザー名をSUSER_SNAME()で保存できます。

CREATE TABLE [dbo].[Table_1](
    [id] [INT] NULL, 
    [name] [NCHAR](100) NULL 
) ON [PRIMARY] 

GO 

ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [DF_Table_1_name] DEFAULT (SUSER_SNAME()) FOR [name] 
GO 
+0

それは誰表示するテーブルの歴史を見てすることは可能です(ストアドプロシージャおよび/またはで...)のデータを追加した、とするときそれが起こるのでしょうか? – DVT

+0

実用的な意味でそのようなものは存在しません。データベースログファイルでトレースを実行したり、高度なフォレンジックを使用したりすることができますが、すべて秘密のブードゥーであり、秘密の芸術のささやきです。 –

関連する問題