Published on

November 15, 2016

Отслеживание удаленных записей в SQL Server

Возможность отслеживать удаленные записи является важной для многих клиентов. Они хотят знать, кто удалил записи, когда это произошло, через какое приложение и с какого рабочего места. Кроме того, они также хотят видеть содержимое удаленных записей. Хотя SQL Server предлагает встроенные возможности для аудита, они могут не предоставлять всеобъемлющего и интуитивно понятного решения для всех версий SQL Server.

В этой статье мы рассмотрим модуль, который может заполнить этот пробел и предоставить решение, соответствующее конкретным потребностям клиентов. Модуль основан на триггерах DML, которые захватывают удаленные записи в отдельные таблицы. Используя триггеры DML, мы можем отслеживать удаления из различных приложений конечных пользователей.

Для демонстрации функциональности модуля мы будем использовать базу данных AdventureWorks2012. Мы создадим отдельную схему базы данных, CDC_DELETED, для хранения удаленных записей. Модуль включает хранимую процедуру CreateSchemaAndGrantRights, которая создает схему и предоставляет соответствующие права указанному пользователю.

После создания схемы мы создадим копии трех таблиц: Person.Person, Sales.SalesPerson и HumanResources.Employee. Эти таблицы имеют родительско-дочернюю связь, поэтому нам нужно создать копии, чтобы избежать удаления записей из родительских таблиц без удаления из дочерних таблиц.

Модуль использует триггеры DML AFTER для захвата удаленных записей и их вставки в соответствующие таблицы в схеме CDC_DELETED. Структура этих таблиц включает исходные данные удаленной записи, а также описательную информацию, такую как время удаления, имя приложения, рабочее место и имя пользователя базы данных.

Чтобы сделать решение более удобным для пользователя, мы можем добавить метаданные для имен столбцов с помощью расширенных свойств. Это позволяет конечным пользователям видеть понятные имена столбцов вместо сокращенных или криптических имен столбцов.

Модуль также включает функциональность для очистки удаленных записей после определенного периода времени. Это помогает управлять ростом таблицы, хранящей удаленные записи.

В целом, этот модуль предоставляет всеобъемлющую систему для отслеживания удаленных записей в SQL Server. Он захватывает всю необходимую информацию и позволяет пользователям легко понять удаленные записи. Он без проблем работает на всех версиях SQL Server с 2005 года и позднее.

Для подробного руководства по реализации и примеров кода, пожалуйста, обратитесь к приложенным файлам.

С помощью этих техник вы можете обеспечить надежное и интуитивно понятное решение для отслеживания удаленных записей в SQL Server для ваших клиентов.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.