Làm thế nào để tìm ra máy chủ / địa chỉ IP / chương trình thực hiện xóa?


7

Chúng tôi đang sử dụng SQL Server 2005. Trong cơ sở dữ liệu của chúng tôi, một số hàng bị xóa; Làm cách nào tôi có thể tìm thấy hệ thống (tên máy chủ / địa chỉ IP), chương trình và ngày & thời gian xóa?

Câu trả lời:


5

Bạn sẽ không thể tìm thấy thông tin này sau khi thực tế. Bạn sẽ cần thêm trình kích hoạt và bảng ghi nhật ký (hoặc thiết lập dấu vết phía máy chủ đắt tiền hoặc thêm ghi nhật ký thủ công vào phương thức truy cập dữ liệu của bạn).

Dưới đây là một ví dụ rất nhanh về cách thực hiện bảng ghi nhật ký và trình kích hoạt:

CREATE TABLE dbo.TableNameDeleteLog
( 
  PK_From_TableName INT,
  Program NVARCHAR(128),
  Host NVARCHAR(128),
  IP VARCHAR(48),
  When DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
GO

CREATE TRIGGER dbo.LogDelete_TableName
ON dbo.TableName
FOR DELETE
AS
BEGIN
  SET NOCOUNT ON;

  DECLARE @p NVARCHAR(128), @h NVARCHAR(128), @i VARCHAR(48);

  SELECT @p = s.host_name, @h = host_name, @i = c.client_net_address
    FROM sys.dm_exec_sessions AS s
    INNER JOIN sys.dm_exec_connections AS c
    ON s.session_id = c.session_id
    WHERE s.session_id = @@SPID;

  INSERT dbo.TableNameDeleteLog(PK_From_TableName, Program, Host, IP)
    SELECT PK_Column, @p, @h, @i
    FROM deleted;
END
GO

3

SQL Server không lưu trữ thông tin đó. Nếu bạn có một bản sao lưu, bao gồm các tệp nhật ký giao dịch, bạn có thể xác định chính xác khi xóa xảy ra, bằng cách khôi phục và tìm kiếm những hồ sơ bị thiếu.

Bạn chỉ có thể tìm thấy tên máy chủ / IP / chương trình miễn là bạn đã đăng nhập ở nơi khác. Có thể có dấu vết trong nhật ký sự kiện, nhật ký SQL hoặc các địa điểm khác, về hoạt động nói chung, nhưng không có nhật ký cụ thể (không bị nhầm lẫn với hồ sơ nhật ký giao dịch) được lưu trữ để xóa hồ sơ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.