PDA

View Full Version : theo dõi mọi thay đổi trong SQL Server 2005?



tunghtcntt
10-04-2011, 14:31
Chào mọi người.

Cho mình hỏi ở đây có ai đã làm, hoặc có cách nào, theo dõi mọi thay đổi trên csdl SQL 2005 hay ko? Tức là mọi thay đổi trên db đều được ghi nhận lại, để khi có sự cố thì khỏi cãi nhau.

VD: 2 user đều có quyền như nhau. "Bỗng nhiên" dữ liệu bị xóa mất, hoặc thay đổi gì đó. Không ai nhận là đã làm gì cả :( . Dĩ nhiên là đã có ai "làm gì rồi". Mình chỉ muốn trưng ra chứng cứ thôi :)

Mình ko phải quản trị, nên không có quyền cài đặt hay làm gì trên server cả.

Cảm ơn mọi người đã quan tâm

Red Devilic
11-04-2011, 09:42
Vấn đề bạn thắc mắc, chỉ cần nghiên cứu về DDL Trigger và DML Trigger là tạm ổn.

- DDL Trigger: Các thao tác liên quan đến việc CREATE, DROP, ALTER, GRANT, REVOKE, v.v....các object ( table, view, stored, function, .. ) trong database.

- DML Trigger: Các thao tác INSERT, UPDATE, DELETE, MERGE ( từ bản SQL Server 2008) trong 1 bảng

Tùy theo yêu cầu của bạn, sử dụng các trigger phù hợp và lưu lại các thông tin cần thiết như tên user, ngày thao tác, SQL Command, v.v....để đối chiếu và truy vết khi có sự cố.

Nếu chỉ cần thông tin trong 1 khoảng thời gian ngắn, bạn cũng nên tìm hiểu qua SQL Profiler.

tunghtcntt
11-04-2011, 11:10
Cảm ơn Red Devillic trả lời mình.

Lần trước hỏi còn quên cái này :) :

"Thường mỗi user muốn kết nối vào db thì DBA phải gán quyền truy cập. Thỉnh thoảng các quyền này bị thay đổi (bớt quyền/thêm quyền/mất hẳn quyền) thì có cách nào biết ai đã làm hay không? Tức là có chứng cứ ấy :) "
Câu hỏi hơi ngô nghê nhưng mong các bạn trả lời giúp.

Cảm ơn

tokcodo
11-04-2011, 22:38
Theo mình, bạn hoàn toàn có thể làm được điều này với hai phương pháp sau:
1. Sử dụng mệnh đề OUTPUT cho các câu lệnh Insert, Update, Delete, Chi tiết tham khảo link sau: http://khoaba.wordpress.com/2010/09/19/sql-server-su-dung-menh-de-output-trong-cac-lenh-dml/
2. Từ bản SQL 2008, có thêm 2 kỹ thuật mới để theo dõi sự thay đổi của dữ liệu là: Change Data Capture và Change Tracking, bạn tham khảo link sau về Change Data Capture: http://sql-note.blogspot.com/2011/04/su-dung-chang-data-capture-trong-sql.html (bài này là của mình dịch lại), về Change Traking sẽ được viết vào thời gian sắp tới. Nếu bạn có hứng thú đọc các bài viết trên Blog này, vui lòng viếng thăm vào thời gian tới.