View Full Version : Log عمليات روي جداول بدون trigger
esteghamat
دوشنبه 02 تیر 1393, 09:47 صبح
سلام
چگونه بايد Log عمليات Insert , uodate , delete را بدون trigger روي جداول نگهداري كنيم
مي خواهم برنامه نويس نتواند trigger را غير فعال كند و عمليات مورد نظر را انجام دهد و دوباره آنرا فعال كند.
ممنون
esteghamat
دوشنبه 02 تیر 1393, 12:34 عصر
سلام
جواب رو پيدا كردم .
از دو طريق ممكن است.
1- راه اول كه به نظر ساده تر و سريعتر ميآيد. استفاده از مكانيزم CDC (Change Data Capture)
- ابتدا CDC را روي DataBase فعال مي كنيم.
Use Database
sys.sp_cdc_enable_db
- سپس جدول مورد نظر را انتخاب مي كنيد و روي آن CDC را فعال مي كنيد. (مثلا جدول Employee)
[LTR_INLINE]
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'Employee',
@role_name = N'MyCDCUserRole',
@supports_net_changes = 1
- در نتيجه عمليات فوق در system tables يك جدول معادل Employee ساخته مي شود. dbo_employee_CT
- حال يكسري عمليات روي جدول انجام مي دهيم تا نتيجه را ببينيم. مثلا :
INSERT INTO dbo.Employee(FirstName, LastName, CurrentPayScale)
VALUES('Ahmad', 'Jamal', 10000)
GO
DELETE FROM dbo.Employee
WHERE EmployeeID = 2
GO
UPDATE dbo.Employee
SET CurrentPayScale = 15000, FirstName = 'Akramul'
WHERE EmployeeID = 3
GO
UPDATE dbo.Employee
SET CurrentPayScale = 18000
WHERE EmployeeID = 3
GO
- حالا نتيجه اين عمليات را در جدول مذكور مي بينيم. نتيجه عالي است. همه ركوردها با مقادير. حتي Update ها قبل و بعد از تغيير و ...
select * from cdc.dbo_employee_ct
2- راهكار دوم كمي پيچيده تر و متفاوت تر است.
استفاده از DataBase Audit
- ابتدا بايد خصوصيت C2 Tracing را روي سرور فعال كرد. راست كليك روي سرور - در قسمت Security - Option - گزينه EnableC2 Audit Tracing
را فعال مي كنيم. سرور بايد يكبار Restart شود.
- بعد در security سرور قسمت Audit يك Audit جديد ايجاد مي كنيم.
- آنرا فعال مي كنيم.
- در ديتابيس قسمت Security قسمت Database Audit Specification وارد مي شويم . و مشخصات Object مورد نظر را براي Audit Tracing مي دهيم.
- امكان انتخاب نوع عمليات و نيز هر Object وجود دارد.
دقت كنيد كه همه عمليات را روي كل Database انتخاب نكنيد كه به سرعت Log وحشتناك توليد مي كند و فضاي ديسك را از بين مي برد.
موفق باشيد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.