2016-12-07 7 views
0

프로덕션 서버에 때로는 신비한 데이터가있는 테이블이 있습니다. 왜/누가/언제 ... 테이블을 찾을 수있는 데이터를 추가하는 역사를 추적 할 수 있습니까? 데이터 볼륨이 대개 거대하고 성능에 영향을 줄 수 있으므로 테이블에 트리거를 두는 것을 꺼립니다 (나중에 확인하는 데 도움이됩니다). 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

실용적인 의미로 그러한 것이 존재하지 않습니다. 당신은 흔적을 달리거나 데이터베이스 로그 파일에서 매우 진보 된 법의학을 사용할 수 있습니다. 그러나 모든 것은 비전의 부두교와 비밀스러운 예술의 속삭임입니다.) –