سلام
تو مجوز افتا برای لاگ گیری نوشته تشخیص تغییرات غیر مجاز در بانک
پرسیدم گفتن یعنی اگه تو بانک تغییر از طرف کاربر غیر مجاز صورت گرفته باید ثبت بشه و اعلام بشه به مدیر بانک و گفتن راه حلش گرفتن Hash فیل ها و جداول و بانک تو بازه زمانی مشخصه
مشکلم اینه از کجا بفهمم تغییر از طرف کاربر غیر مجاز بوده؟؟؟؟
کد های زیر رو استفاده کردم ولی همه تغییرات رو به اعلام میکنن
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM TestTable WITH (NOLOCK);
set nocount on IF OBJECT_ID('dbo.TestTable', 'U') IS NOT NULL DROP TABLE dbo.TestTable; Create table dbo.TestTable (Id int, Col1 varchar(10), Col2 varchar(10), Col3 varchar(10)) insert into dbo.TestTable (Id, Col1, col2, col3) values(1,'one','one','one') insert into dbo.TestTable (Id, Col1, col2, col3) values(1,'two','two','two') go create TRIGGER dbo.AfterUpdateTrigger ON dbo.TestTable AFTER UPDATE AS BEGIN SET NOCOUNT ON; SELECT * INTO #deleted FROM deleted SELECT * INTO #inserted FROM inserted ALTER TABLE #deleted DROP COLUMN col2 ALTER TABLE #inserted DROP COLUMN col2 select * from #deleted except select * from #inserted END GO update dbo.TestTable set col2 = '99' update dbo.TestTable set Col1 = '110'
IF OBJECT_ID('CheckSumTest', 'U') IS NOT NULL DROP TABLE CheckSumTest GO CREATE TABLE CheckSumTest ( id int IDENTITY(1,1) NOT NULL PRIMARY KEY, vc1 varchar(1) NOT NULL, vc2 varchar(1) NOT NULL, chksum1 AS (CHECKSUM(id, vc1, vc2)), chksum2 AS (BINARY_CHECKSUM(id, vc1, vc2)) ) GO INSERT dbo.CheckSumTest (vc1, vc2) SELECT 'a', 'b' INSERT dbo.CheckSumTest (vc1, vc2) SELECT 'b', 'a' GO --Show Computed Columns and CheckSum_Agg() value = 199555 SELECT * FROM CheckSumTest SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM CheckSumTest --Make a Simple (Single row) Update UPDATE dbo.CheckSumTest SET vc1='c', vc2='a' WHERE id=1 --Show Computed Columns and CheckSum_Agg() value = 204816 (Ok) SELECT * FROM CheckSumTest SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM CheckSumTest --Make a Symmetric change UPDATE dbo.CheckSumTest SET vc1='b', vc2='a' WHERE id=1 UPDATE dbo.CheckSumTest SET vc1='c', vc2='a' WHERE id=2 --Show Computed Columns and CheckSum_Agg() value = 204816 (Not Ok!) SELECT * FROM CheckSumTest SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM CheckSumTest
لطفا راه حل های غیر اینا باشه ممنون
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)