Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Служба Рассылок Subscribe.Ru

#081<<  #082

СОВЕТ

Реализация простого аудита с помощью триггеров
По материалам статьи Robert Marda на sqlservercentral.com: Auditing Through Triggers

В этой статье Роберт приводит примеры кода для нескольких триггеров, устанавливаемых на таблицы в целях аудита действий пользователей с записями MS SQL Server 7.0/2000.

Для пояснения работы триггеров вообще и как они работают в SQL Server 7.0 и SQL Server 2000, Вы можете обратиться к следующим статьям, написанным Брайеном Келлей (Brian Kelley):

Triggers in SQL Server 7.0 and 2000 - The Common Ground
Triggers in SQL Server 7.0 and 2000 - What's New

Первая статья объясняет назначение специальных таблиц для вставки и удаления (inserted and deleted Tables).
Предлагаемые ниже примеры будут работать на SQL Server 2000, однако они были проверены только на SQL Server 7.0.
Сначала мы должны создать необходимые для дальнейшей работы таблицы. Выполните представленный ниже скрипт в Query Analyzer:


CREATE TABLE [Components] (
[Iden] [int] IDENTITY (1, 1) NOT NULL ,
[ComponentName] [varchar] (25) NULL ,
[SerialNumber] [varchar] (25) NULL ,
[Comments] [varchar] (75) NULL ,
[UserName] [varchar] (50) NULL ,
[UpdateDate] [datetime] NULL ,
[UpdatedBy] [varchar] (35) NULL
) ON [PRIMARY]
GO

CREATE TABLE [ComponentsDeleted] (
[Iden] [int] NOT NULL ,
[ComponentName] [varchar] (25) NULL ,
[SerialNumber] [varchar] (25) NULL ,
[Comments] [varchar] (75) NULL ,
[UserName] [varchar] (50) NULL ,
[DeletedDate] [datetime] NULL ,
[DeletedBy] [varchar] (35) NULL ,
) ON [PRIMARY]
GO

Триггер, отслеживающий операции Insert/Update

Один из самых простых способов применения триггера, это когда он срабатывает всякий раз, когда в таблице модифицируется любой столбец или всякий раз, когда вставляется строка. Следующий скрипт может быть выполнен в Query Analyzer для создания триггера, который фиксирует время, когда строка была вставлена или модифицирована и имя пользователя, который сделал это изменение:


CREATE TRIGGER updatedby ON dbo.Components
FOR INSERT, UPDATE
AS
UPDATE c SET UpdateDate = getdate(), UpdatedBy = SYSTEM_USER
FROM inserted i
INNER JOIN dbo.Components c ON i.Iden = c.Iden

Для проверки работы триггера вставьте несколько строк в таблицу Components и затем внесите изменения в одну или две строки.
Теперь предположим, что нам нужно знать только то, когда компонент был изменён. Изменение в серийном номере могло бы являться указанием на то, что внесено отслеживаемое изменение. Вы можете внести изменения в предложенный выше триггер (используя команду ALTER TRIGGER) чтобы он срабатывал только тогда, когда столбец SerialNumber будет изменён. Для этого можно выполнить этот скрипт:


ALTER TRIGGER updatedby ON dbo.Components
FOR INSERT, UPDATE
AS

IF UPDATE(SerialNumber)
BEGIN

UPDATE c SET UpdateDate = getdate(), UpdatedBy = SYSTEM_USER
FROM inserted i
INNER JOIN dbo.Components c ON i.Iden = c.Iden

END

Проверьте работу изменённого триггера, изменив значения в столбце Comments, затем в столбце SerialNumber.

Триггер, отслеживающий операции удаления

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

Components:


CREATE TRIGGER deletedby ON dbo.Components
FOR DELETE
AS
INSERT INTO ComponentsDeleted (Iden, ComponentName, SerialNumber,
Comments,
UserName, DeletedDate, DeletedBy)
SELECT Iden, ComponentName, SerialNumber, Comments, UserName, getdate(),
SYSTEM_USER
FROM deleted

Удалите одну или две строки из таблицы Components. Теперь посмотрите таблицу ComponentsDeleted, и Вы увидите там удаленные Вами строки с датой и временем того, когда они были удалены.

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

ССЫЛКИ НА СТАТЬИ

SQL Server 2000. Сравнение выпусков
Автор: Microsoft
Сравнение выпусков1 SQL Server 2000 и дополнительные сведения о важнейших функциях, включенных в состав SQL Server 2000 Enterprise Edition... [подробнее]
Преимущества SQL Server 2000
Автор: Microsoft
SQL Server представляет собой самую распространенную базу данных для Веба, охватывающую 68 % рынка (Zona Research, январь 2000 г.)... [подробнее]
SQL Server 2000 Руководство для ознакомления с продуктом
Автор: Microsoft.
Данное руководство для ознакомления с продуктом содержит обзор направлений разработки сервера Microsoft SQL Server™ 2000 и его новых и усовершенствованных возможностей. Являясь базовым компонентом семейства .NET Enterprise Servers, он значительно ускоряет выпуск приложений электронной коммерции, бизнес-приложений и хранилищ данных, в то же время обеспечивая уровень масштабируемости, необходимый для сред с наиболее жесткими требованиями... [подробнее]
Обновление сервера SQL Server версий 6.5 и 7.0 до уровня SQL Server 2000
Автор: Microsoft.
В данном информационном документе содержится подробное описание шагов, осуществляемых при обновлении сервера SQL Server версий 6.5 и 7.0 до уровня SQL Server 2000... [подробнее]
Динамический запуск сервера MS SQL 
Автор: N/A.
Следующий пример показывает, как на C++ динамически запускать MS SQL Server в Windows NT. Всё, что для этого потребуется, это включить в проект w95scm.lib, которая поставляется с SQL 7.0 CD... [подробнее]
Заслон на пути грязных данных
Автор: Леонид Черняк.
В последнее время только и слышишь об очередном «сдвиге парадигмы», о датацентричных системах, о SAN, о новых средствах передачи и хранения информации. И вправду, объемы хранимых данных возрастают с такой скоростью, что даже привычных единиц измерения уже не хватает. Появляются устройства, способные хранить на одном шпинделе сотни гигабайт, пространство хранения виртуализируется... [подробнее]
Хранилища данных в начале века
Автор: Сергей Кузнецов.
В этом номере мы публикуем переводы трех статей из декабрьского выпуска журнала Computer, тематика которого (в кои-то веки!) посвящена системам управления данными, а именно, хранилищам данных и системам оперативной аналитической обработки (OLAP — online analytical processing), а также, отчасти, технологии добычи данных (data mining). Вот почему из своего ежемесячного обзора этого журнала я решил выделить более связную заметку, представляющую собой некоторый комментарий к публикуемым статьям (о других материалах декабрьского номера Computer можно прочитать, как обычно, в рубрике «Книжная полка ОС» в статье «Навстречу вызову инженерных систем»). Без сомнения, редакция журнала Computer своим декабрьским выпуском сделала всем читателям хороший новогодний подарок. Давно не получал такого удовольствия от чтения этого журнала, чего и вам желаю... [подробнее]
Технология баз данных в системах поддержки принятия решений
Автор: Сураджит Чаудхури, Умешвар Дайал, Венкат.
Системы поддержки принятия решений — основа ИТ-инфраструктуры различных компаний, поскольку эти системы дают возможность преобразовывать обширную бизнес-информацию в ясные и полезные выводы. Сбор, обслуживание и анализ больших объемов данных, — это гигантские задачи, которые требуют преодоления серьезных технических трудностей, огромных затрат и адекватных организационных решений... [подробнее]
Технология многомерных баз данных
Автор: Торбен Бэч Педерсен, Кристиан Йенсен.
Реляционная модель данных, которая была предложена Э.Ф. Коддом в 1970 году, и за которую десятилетие спустя он получил премию Тьюринга, служит основой современной многомиллиардной отрасли баз данных. За последние десять лет сложилась многомерная модель данных, которая используется, когда целью является именно анализ данных, а не выполнение транзакций. Технология многомерных баз данных — ключевой фактор интерактивного анализа больших массивов данных с целью поддержки принятия решения. Подобные базы данных трактуют данные как многомерные кубы, что очень удобно именно для их анализа... [подробнее]
Семь этапов оптимизации производительности хранилища данных
Автор: Роб Армстронг.
Чтобы удовлетворить свои потребности в более своевременном и гибком анализе данных, компании могут использовать пошаговый подход при переходе от поддержки детализированной информации к использованию сводных данных... [подробнее]
От Informix к SQL Server
Автор: Алексей Банасевич, Алексей Кудинов.
Процесс переноса приложений с одной СУБД на другую в общем случае является трудоемкой задачей, для решения которой полезно прежде познакомиться с практическим опытом выполнения таких работ. В статье рассказывается об особенностях переноса системы класса ERP с платформы Informix On-Line Dynamic Server на Microsoft SQL Server 2000... [подробнее]
Очерк истории отечественных технологий баз данных
Автор: М.Р. Когаловский.
От редакции: Решив опубликовать отрывок из новой книги М.Р. Когаловского «Энциклопедия технологий баз данных», подготовленной к выходу в свет издательством «Финансы и статистика», мы неожиданно столкнулись, как выяснилось, с трудно выполнимой задачей. Выделить фрагмент, не нарушив строй энциклопедии, не рискуя исказить представление читателя об этом действительно фундаментальном труде, оказалось крайне сложно. В конце концов, мы остановились на разделе «Отечественные исследования и разработки» из главы «Краткий очерк эволюции технологий баз данных», который и публикуем — увы, с многочисленными сокращениями и купюрами. В частности, с сожалением пришлось опустить огромную библиографию и многочисленные ссылки на нее и на другие разделы энциклопедии. Оставленные для сохранения связности текста ссылки заменены фамилиями авторов. Надеемся, тем не менее, что эта публикация заинтригует читателя и послужит для него достаточным стимулом обратиться к оригиналу (см. также рецензию Сергея Кузнецова «Энциклопедия Когаловского» в разделе «Книжная полка ОС»), а также станет ярким свидетельством того, что платформа для сегодняшнего состояния технологий баз данных в нашей стране основательно готовилась собственными силами отечественных специалистов еще задолго до периода импорта технологий в 90-е годы... [подробнее]
XML — отпрыск SGML
Автор: Алексей Литвинюк.
XML (Extensible Markup Language) — еще один формат для описания структурированных документов и собственно данных в WWW. Но на этот раз уже универсальный формат. По сути XML является своего рода мета-языком — языком для описания других языков. XML был разработан организацией W3C (WWWC, www.w3c.org), как простая замена для сложного SGML. Сам же SGML напичкан множеством, совершенно не нужных в Web, возможностей. XML имеет непосредственное сходство с HTML. В нем также присутствуют теги, но в XML они называются элементами... [подробнее]
BPwin 4.0: пришел, увидел, реорганизовал
Автор: Притыкин Дмитрий Аркадьевич.
В течение последних 5-10 лет российские компании развивали свою информационную инфраструктуру для поддержки операционной деятельности. Однако рыночная ситуация, в которой они находятся, по своей природе нестабильна и требует от каждой компании быстрой и точной реакции на происходящие изменения. Раньше или позже реорганизация бизнеса станет неизбежной и менеджерам придется задуматься о том, как изменить текущие бизнес-процессы, чтобы улучшить операционную деятельность. К примеру, производитель может захотеть пересмотреть то, как он покупает сырье, порядок ведения склада или порядок поставки готовой продукции заказчикам с тем, чтобы заказчик быстрее получал продукцию. Вполне естественно, что реинжениринг бизнес-процессов влечет за собой изменение архитектуры информационной системы организации... [подробнее]
Тенденции развития современных корпоративных информационных систем
Автор: Interface Ltd.
Наметившийся в России переход к рыночной экономике требует новых подходов к управлению: на первый план выходят экономические, рыночные критерии эффективности, повышаются требования к гибкости. Научно-технический прогресс и динамика внешней среды заставляют современные предприятия превращаться во всё более сложные системы, для которых необходимы новые методы обеспечения управляемости. Новым словом в управлении стало появление контроллинга как функционально обособленного направления экономической работы на предприятии, связанного с реализацией финансово-экономической комментирующей функции в менеджменте для принятия оперативных и стратегических управленческих решений... [подробнее]
Инструментальные средства создания корпоративных информационных систем
Автор: Маклаков Сергей.
На современном рынке средств разработки ИС достаточно много систем, в той или иной степени удовлетворяющих перечисленным требованиям. Ниже будет рассмотрена вполне конкретная технология разработки, основывающаяся на решениях фирм Logic Works и Rational Software, которая является одной из лучших на сегодняшний день по критерию стоимость/эффективность... [подробнее]
FAQ по Bpwin
Автор: Interface Ltd.
FAQ по BPwin... [подробнее]
Основы проектирования реляционных баз данных
Автор: В.В. Кириллов.
Учебное пособие. Санкт-Петербургский Государственный институт точной механики и оптики (технический университет). Кафедра вычислительной техники... [подробнее]
Использование технологий WWW для доступа к базам данных
Автор: ЦНИТ НГУ.
Использование CGI при создании интерактивных интерфейсов. Использование пакета Cold Fusion для MS Windows при построении WWW - интерфейсов к базам данных. Использование языка Perl. Использование пакета Web - Oracle - Web (WOW)... [подробнее]
Средства доступа к базам данных в Internet и свободно доступная СУБД POSTGRES95
Автор: Булах Е.В.
Средства доступа к базам данных на стороне сервера. Доступ к базам данных на стороне клиента. Java-технология. Постреляционная СУБД POSTGRES95. Архитектура СУБД POSTGRES95. Доступ к базам данных под управлением СУБД POSTGRES95.... [подробнее]
Web браузер как средство доступа к БД
Автор: Дмитрий Брязгин.
В работе рассматриваются некоторые аспекты построения клиентского приложения на базе WEB броузера. Необходимо отметить, что информационная система, в основе построения которой лежат Web-технологии, в определенных ситуациях может не только сохранить возможности классического приложения, т.е. приложения разработанного в рамках клиент-серверной технологии, но зачастую и расширить их. Кроме того, применение Web-технологий в этом классе задач имеет и свои преимущества. К наиболее важным из них, можно отнести отсутствие необходимости в установке и сопровождении клиентских приложений, а также затрат на покупку лицензий для программного обеспечения, которое бы осуществляло поддержку работы front-end приложений, что неизменно присутствует в клиент-серверной технологии... [подробнее]
О некоторых особенностях экспортно-импортных операций и сложностях переходного периода
Автор: Сергей Сирик.
В статье речь идет об операциях обмена данными между различными базами данных... [подробнее]

Новые технические статьи Microsoft

INF: List of Bugs Fixed by SQL Server 2000 Windows CE Edition 1.1 Service Packs (Q316497)
INF: How to Obtain the Latest SQL Server 2000 Windows CE Edition 1.1 Service Pack (Q316498)
FIX: SQL Server Fails to Bind TCP/IP Port at Startup (Q312935)
INF: Behavior of SQL Server 2000 Network Library During Dynamic Port Detection (Q286303)
INF: DTS Package Development, Deployment and Performance (Q242391)
INF: Can Only Apply SQL Server 2000 Desktop Engine (MSDE) Service Pack 2 Download on the Internet to Instances Installed from Sqlrun01.msi (Q315721)
BUG: BOL Incorrectly States That Users Do Not Need to Be Sysadmin to Use Profiler or SQL Profiler SPs (Q310175)
FIX: Connection to SQL Server Database Using IP Address Is Unusually Slow (Q300420)
BUG: AUTO-SHRINK Option or DBCC SHRINKDATABASE May Slow Down SQL Server 2000 Performance (Q296386)
FIX: SQL Mail Operations May Lead to Failures and Memory Leaks (Q300414)
PRB: "Cannot Open Default Database . Using Master Instead" (Q196076)
FIX: Drill Down on a Dimension Causes Analysis Manager to Stop Responding (hang) (Q308972)
HOW TO: Configure SQL Server Memory for More Than 2 GB (Q274750)
PRB: Cannot Pass Function as Parameter to Table Valued User Defined Function (Q312323)
FIX: Select from Nested Views May Not Return Result After SQL Server Updates Statistics (Q308757)
INF: Transfer Logins and Passwords Between SQL Server 7.0 and SQL Server 2000 (Q246133)
BUG: French Database Maintenance Logs Contain Incorrect Characters (Q312909)
FIX: Data Types for Some Columns in MINING_SERVICES Schema Rowset are not Compliant with the OLE DB Data Mining Specifications (Q308963)
FIX: Copy and Paste of ROLAP Partition May Overwrite Aggregation Tables (Q308960)
FIX: MDX Lag() Function Returns Incorrect Results Intermittently (Q308973)
PRB: Common Causes of Error Message 844 or Error Message 845 (Buffer Latch Time Out Errors) (Q310834)
PRB: Error Message: "The snap in that has been selected has failed to initialize" Occurs When You Open SQL Enterprise Manager (Q315007)
Frequently Asked Questions about the Microsoft Network Security Hotfix Checker (Hfnetchk.exe) Tool (Q305385)
FIX: LIKE Operator with Japanese Repeating Character That Follows a Wildcard Does Not Return Expected Results (Q315649)
BUG: Previously Replicated Stored Procedure Causes Access Violation (Q308355)
BUG: SQLDescribeCol Returns Wrong Column Size in a Union Query with Parameters (Q308211)
PRB: SQL Server Desktop Engine 2000 Setup Fails When It Registers Performance Monitor Counters (Q315083)
FIX: Distribution Task Encounters Syntax Error During Application of Initial Snapshot (Q304658)
INF: SQL Server Support for the Euro Currency Symbol (Q199834)
PRB: Error in SQL Server 7.0 When You Call Command.Prepare Before You Add Parameters Using Visual C# .NET (Q311348)
Microsoft Network Security Hotfix Checker (Hfnetchk.exe) Tool Is Available (Q303215)
INF: SQL Server 7.0 and SQL Server 2000 Logging and Data Storage Algorithms Extend Data Reliability (Q230785)
BUG: Memory Leak When You Load and Unload the SQL Server ODBC Driver or OLE DB Provider (Q313883)
INF: Supported Windows Versions for SQL Server (Q122352)
MS01-041: Malformed RPC Request Can Cause Service Problems (Q298012)
FIX: Floating Point Underflow Exception Causes Bad Cardinality Estimate (Q316004)
FIX: SQL Mail Attachments Contain Leading Space Before First Column of Each Result Row (Q307948)
FIX: Opening the Database Folder in SQL Server Enterprise Manager 2000 Takes a Long Time (Q282416)
BUG: Infinite Recursion Error with Parent-Child Dimension and Custom Member (Q311528)
INF: List of Bugs Fixed in SQL Server 2000 Service Pack 1 (1 of 2) (Q290212)
BUG: Cannot Have More than Eight Full Text Joins and Operations (Q230103)
INF: List of Bugs Fixed by SQL Server 2000 Service Packs (Q306908)
FIX: Transaction Log Restores May Fail with 3456 Error (Q295644)

ФОРУМ SQL.RU: САМЫЕ ПОПУЛЯРНЫЕ ТОПИКИ

Репликация на дискетах или по мылу О минимизации сетевого трафика... (вопрос для самообразования)
SQL Mail (нетипичная ситуация)
Как отсчитать несколько рабочих дней от текущей даты
Delphi MS SQL без BDE?
Случайная запись
как администрировать SQL Server через internet ?
каскадное удаление
SQL & WEB HELP PLZZZZZ
Рассчет себестоимости на T-SQL
Опять про dbf-очень надо!!!
Подбор железа для 1С
Опять SQL Mail
Совет нужен
Запрос при Paren-Child соотношении в таблице.
блокировки, блокировки... нужен совет :)
Linked Server - не могу подцепить dbf'ы по сетке...
Функции пользователя в MSSQL 2000

ФОРУМ SQL.RU: ВОПРОСЫ ОСТАЛИСЬ БЕЗ ОТВЕТА

Проблемы с Merge Replication
Скролинг текста в Query Analyzer 2000
Application role priviligies
CONVERT TABLE
Ускоряет ли работу ADO Bindings?
Проблемы с большими подписками в SQL 2000
Merge agent
1251 в 866 (866в 1251) на T-SQL
SQL mail

#081<<  #082

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@pisem.net

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное