mssql table delete시 세션 정보 저장 트리거
DB Skill/MSSQL 2021. 8. 20. 01:37
mssql 운영시 의도치 않게 데이터가 삭제되는 경우, 추적을 위한 방안
'TestDB' DB의 'tblTest'테이블 데이터 삭제 시, BAK_tblTest_Delete 테이블에 삭제 데이터 및 세션 정보 저장
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[delete_info_insert]
ON [dbo].[tblTest]
FOR UPDATE, DELETE AS
DECLARE @login_name nvarchar(128)
, @program_name nvarchar(128)
, @host_name nvarchar(128)
SELECT @login_name = ISNULL(original_login_name, ORIGINAL_LOGIN())
, @program_name = T1.program_name
, @host_name = T1.host_name
FROM sys.dm_exec_sessions T1
WHERE T1.session_id = @@spid
INSERT INTO BAK_tblTest_Delete ([Seq], [ID], [TestParam], [CreateDatetime], [loginname], [program_name], [hostname])
SELECT
[Seq], [ID], [TestParam], [CreateDatetime], @login_name, @program_name, @host_name
FROM deleted;
'DB Skill > MSSQL' 카테고리의 다른 글
windows 장비 클러스터 구성시, 원격 레지스트리에 엑세스하지 못했습니다. ( Remote Registry Access Denied ) (0) | 2021.09.09 |
---|---|
mssql license upgrade standard to enterprise ( SQL Server 에디션 업그레이드 ) (0) | 2021.09.06 |
mssql '데이터베이스 보안 주체는 데이터베이스의 스키마을(를) 소유하며 삭제할 수 없습니다' (0) | 2021.08.20 |
mssql 형변환 잘못된 쿼리 확인 (0) | 2021.08.19 |
mssql vlf count 확인 및 축소 (0) | 2021.08.19 |