2012-02-14 1 views

답변

3

트리거와 결과를 저장할 테이블이 필요합니다. 매우 빠른 프로토 타입 : 각 액세스 사용자를 그대로 SQL Server에 인증하지 않는 한, 당신이 거기에, 모두 동일한 SQL 사용자로 연결하는 경우 (을 식별하는 호스트 이름이나 다른 속성을 사용해야 할 수도

CREATE TRIGGER dbo.trigger_name 
ON dbo.table_name 
FOR DELETE 
AS 
    INSERT INTO dbo.LogTable(RowID, UserName) 
     SELECT PK_Column, SUSER_SNAME() 
     FROM deleted; 
GO 

주 SQL Server가 실제로 누구인지 파악할 수있는 능력은 거의 없습니다.)

+0

어떤 이유로, HOSTNAME()을 사용하면 오프 사이트 사용자의 여러 사용자에 대해 동일한 HOSTNAME()을 반환합니다. 네트워크 문제라고 생각합니다. SUSERNAME()은 BOGUS를 반환합니다. Access 애플 리케이션을 수정할 수 없기 때문에 각 앱을 인증 할 수 없습니다. – Bruno

+1

예 SQL Server는 호스트 이름을보기 위해 원격 컴퓨터에 연결할 수 없으며 SQL Server에 요청을 전달한 호스트 이름 만 볼 수 있습니다. 그리고 SQL 인증을 사용하는 경우 Windows 사용자 이름을 얻는 데 어려움을 겪을 것입니다 (나는 '부저'가 무엇인지 추측합니다). 프로필러에서 실제 사용자 이름을 표시하는 방법을 잘 모르겠습니다. 모든 사용자가 정확하다고 확신합니까? 프로파일 러가 실행중인 곳은 Access 애플리케이션이 실행되는 시스템과 동일합니다. –

+0

Profiler는 SQL Server가 서버에서 실행되고 액세스 앱이 다른 네트워크 공유에서 실행되는 내 시스템에서 실행됩니다. – Bruno