0
SQL Server에 연결된 테이블이있는 MS Access 앱입니다. MS 액세스 앱을 수정할 수 없으므로 SQL Server에이 정보를 기록해야합니다.MS Access에서 레코드를 삭제 한 사용자는 어떻게 기록합니까?
앱이 기본 SQL 사용자 이름을 통해 SQL Server에 연결됩니다.
SQL Server에 연결된 테이블이있는 MS Access 앱입니다. MS 액세스 앱을 수정할 수 없으므로 SQL Server에이 정보를 기록해야합니다.MS Access에서 레코드를 삭제 한 사용자는 어떻게 기록합니까?
앱이 기본 SQL 사용자 이름을 통해 SQL Server에 연결됩니다.
트리거와 결과를 저장할 테이블이 필요합니다. 매우 빠른 프로토 타입 : 각 액세스 사용자를 그대로 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가 실제로 누구인지 파악할 수있는 능력은 거의 없습니다.)
어떤 이유로, HOSTNAME()을 사용하면 오프 사이트 사용자의 여러 사용자에 대해 동일한 HOSTNAME()을 반환합니다. 네트워크 문제라고 생각합니다. SUSERNAME()은 BOGUS를 반환합니다. Access 애플 리케이션을 수정할 수 없기 때문에 각 앱을 인증 할 수 없습니다. – Bruno
예 SQL Server는 호스트 이름을보기 위해 원격 컴퓨터에 연결할 수 없으며 SQL Server에 요청을 전달한 호스트 이름 만 볼 수 있습니다. 그리고 SQL 인증을 사용하는 경우 Windows 사용자 이름을 얻는 데 어려움을 겪을 것입니다 (나는 '부저'가 무엇인지 추측합니다). 프로필러에서 실제 사용자 이름을 표시하는 방법을 잘 모르겠습니다. 모든 사용자가 정확하다고 확신합니까? 프로파일 러가 실행중인 곳은 Access 애플리케이션이 실행되는 시스템과 동일합니다. –
Profiler는 SQL Server가 서버에서 실행되고 액세스 앱이 다른 네트워크 공유에서 실행되는 내 시스템에서 실행됩니다. – Bruno