Функция Enabling Auditing в 2005 SQLServer

Если вы хотите, чтобы заказы были только в таблице, вы можете использовать group by и having:

select order_id
from t
group by order_id
having sum(case when status = 'COMPLETE' then 1 else 0 end) = 0;

Если вы хотите выполнить это для всех заказов, то я предполагаю, что у вас есть orders табл. Используйте not exists:

select o.*
from orders o
where not exists (select 1
                  from orderstatuses os
                  where os.order_id = o.order_id and
                        os.status = 'COMPLETE'
                 );
9
задан Brent Ozar 13 June 2009 в 01:02
поделиться

4 ответа

Режим аудита C2 страдает от множества проблем и Вашего вопроса, затронутого только одного из них - производительность. Аудит C2 оказывает огромное влияние производительности, очень высоко.

Откладывая проблему производительности, очень трудно справиться. Это не set-it-and-forget-it переключатель конфигурации. Необходимо потратить конфигурацию реализации довольно мало времени, настроив вход для движения в файлы, и затем когда Вы сделаны, кто-то еще может приехать позади Вас и избавиться от файлов аудита довольно легко. Нет никакого способа быстро опросить все Ваши серверы и удостовериться, что аудит C2 работает правильно, или что кто-то не отбрасывает файлы.

SQL Server 2008 делает соответствие намного легче. Я рекомендовал бы смотреть на портал Соответствия SQL Server 2008 года, который имеет превосходное техническое описание о том, как настроить новые функции соответствия 2008. Новый аудитор 2008 использует обработку xEvent, которая имеет существенно более низкие требования к производительности, и намного легче справиться. Можно использовать управление на основе политик 2008, чтобы проверить серверы, гарантировать, что Вы контролируете, и справка получает аудит, настроенный снова, когда вещи повреждаются.

К сожалению, одна слабость является все еще управлением контрольных выходных файлов - плохие парни могут просто удалить файлы. Другая слабость является отсутствием создания отчетов - просто, потому что у Вас есть концерты контрольных данных, не означает, что можно сделать что-либо с ним. Все еще необходимо написать собственные отчеты, чтобы проанализировать контрольные данные и узнать, кто делает что. Это не легко - но это намного легче и более низкое влияние, чем аудит C2 2005 SQL.

4
ответ дан 4 December 2019 в 22:31
поделиться

Режим аудита C2 может дать Вам часть функциональности, которую Вы ищете. В то время как это конкретно не записывает SQL-операторы, используемые для доступа к данным, это даст Вам всестороннюю запись успешных/неудавшихся запросов на обеспечение защиты на Вашем SQL Server.

http://msdn.microsoft.com/en-us/library/ms187634.aspx

Мы используем Менеджера по вопросам согласований SQL Idera, чтобы сделать наш совместимый SOX аудит SQL. Мне особенно не нравится он, но это, кажется, один из лидеров отрасли, таким образом, я предполагаю, что это столь же хорошо как любой, и это сделало задание. Если Вы надеетесь отвечать некоторому внешнему требованию (как в Sarbanes-Oxley), прокручивание Вашего собственного не могло бы отвечать всем требованиям, и Вы могли использовать продукт как этот.

1
ответ дан 4 December 2019 в 22:31
поделиться

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

0
ответ дан 4 December 2019 в 22:31
поделиться

C2 Режим аудита - это то, что вы ищете, триггеры не подходят для аудита. Что вы в итоге использовали?

2
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: