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

MS SQL Server

  Все выпуски  

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

#025<< #026

DBA и безопасность

По сообщениям бюллетеней безопасности Микрософт (MS00-095 и MS00-096)
Выпущены две новые заплаты для Windows NT и Windows 2000, которые устраняют уязвимости реестра этих систем.
Уязвимыми оказались ключи реестра для SNMP, RAS и MTS PACKAGE. Злоумышленник мог с помощью полученной из этих ключей информации получить не санкционированные права на управление компьютером (в том числе и SQL сервером).
FAQ по этим уязвимостям можно найти здесь:
http://www.microsoft.com/technet/security/bull etin/fq00-095.asp
http://www.microsoft.com/technet/security/bull etin/fq00-096.asp

Скачать заплаты можно по этим ссылкам:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=24501
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=24500

СОВЕТ

Мониторинг пользовательских соединений с сервером баз данных

(По материалам статьи Maxim Smirnov на swynk.com «Procedure will show active connections to the server excluding system processes»)

Максим пишет, что, являясь MS SQL Server DBA, он должен контролировать доступ к серверу баз данных и его работу. Есть две системные процедуры, которые помогают ему в этой задаче. sp_who возвращает информацию обо всех существующих соединениях с SQL сервером и имеет несколько статистических счётчиков. sp_who2 - более расширенная версия sp_who.
Однако эти две процедуры не предоставляют никакой информации о фактических SQL инструкциях, которые инициированы каждым соединением. Эта информация становится чрезвычайно ценной, когда Вы не можете идентифицировать процесс по имени пользователя, например, когда Вы контролируете SQL сервер, обслуживающий базу данных для WEB сайта в интернет. В этом случае, Вы должны использовать команду DBCC INPUTBUFFER (@SPID) для каждого процесса, чтобы зафиксировать, какое соединение запустило интересующую Вас инструкцию.
Ниже представлен пример процедуры, предоставляющей возможность мониторинга пользовательских соединений и инициируемых пользователями инструкций. Для большей удобочитаемости отчёта, системные (spid<=5) и не активные соединения (status=AWAITING COMMAND) исключены.

Скачать скрипт

CREATE PROCEDURE sp_who_active
/* by Maxim Smirnov */
/* procedure will show active connections to the server excluding system processes*/

AS

SET NOCOUNT ON

DECLARE @spid int

/**** Get statistical process information ***/
SELECT
spid,
   blocked,
      'Database' = CASE WHEN master.dbo.sysdatabases.name IS NULL
THEN '' ELSE CAST(master.dbo.sysdatabases.name AS char(15)) END,
   cpu,
   physical_io,
   'program_name' = CAST(program_name AS char(15)),
   cmd,
   loginame
FROM
   master.dbo.sysprocesses,
   master.dbo.sysdatabases
WHERE
   cmd <> 'awaiting command' /** Inactive processes are excluded ***/
AND master.dbo.sysdatabases.dbid =* master.dbo.sysprocesses.dbid
AND spid >5 /*** System processes are excluded ***/

/*** Use cursor to get SQL Statement for each connection ***/

DECLARE @sqlstring varchar(250)

CREATE TABLE #temp (col1 nvarchar(30), col2 int, col3 nvarchar(255))

DECLARE cur CURSOR FOR
   SELECT spid
   FROM
      master.dbo.sysprocesses,
      master.dbo.sysdatabases
   WHERE
      cmd <> 'awaiting command'
      AND master.dbo.sysdatabases.dbid =* master.dbo.sysprocesses.dbid
      AND spid >5
OPEN cur
FETCH NEXT FROM cur INTO @spid
WHILE @@fetch_status = 0
BEGIN
   SET @sqlstring = 'DBCC INPUTBUFFER (' + CAST(@spid AS CHAR(3)) + ')'
   INSERT #temp (col1, col2, col3)
   EXEC (@sqlstring)

   FETCH NEXT FROM cur INTO @spid
END

CLOSE cur
DEALLOCATE cur

SELECT COL3 AS SQL_Statement
FROM #temp

DROP TABLE #temp

SET NOCOUNT OFF
GO

ГОТОВИМСЯ К ТЕСТУ ПО 1139А

ШПАРГАЛКА №5 Продолжение (обзор официального курса Microsoft)
Архив шпаргалок Вы найдёте на следующих сайтах:
http://pilgrim.rostov-na-donu.ru/sql
http://mssqlhelp.com.ru
http://subscribe.ru/archive/comp.soft.winsoft.sqlhelpyouself

Восстановление баз данных

Регенерация (recovery process) является первичным внутренним механизмом восстановления сервера баз данных, позволяющим обеспечить согласованность данных при перезагрузке сервера, по запросу пользователя или в следствии сбоя/аварии. Суть этого процесса в том, что сервер, путём анализа журналов транзакций и баз данных, определяет (естественно, после контрольной точки) какие транзакции записаны в журнале, какие из исполненных в действительности не были применены (тогда их применяют), а также какие транзакции ещё не завершены и могут быть откачены назад. При запуске SQL сервера регенерация всех баз данных запускается автоматически.

Если регенерация не в состоянии разрешить имеющиеся в базе данных проблемы, вы может приступить к восстановлению данных из резервных копий с помощью SQL SEM или оператора RESTORE DATABASE. При этом, сервер баз данных выполнит несколько обязательных проверок для резервных копий, дабы оградить Вас от случайной ошибки. Во первых, сообщение об ошибке будет Вам выведено, если имя базы данных в копии отличается от имени имеющейся на сервере и подлежащей восстановлению базы. Также, закончится всё ошибкой, если набор файлов в копии отличается от заменяемого на сервере. И наконец, если вы попытаетесь восстановить не все файлы, подлежащие замене, а это не допустимо из за их связанности, сервер также станет ругаться и укажет Вам полный перечень файлов, которые должны содержаться в резервной копии. Отключить эти проверки можно с помощью WITH REPLACE.

При восстановлении базы все её объекты будут созданы заново, так что если принято решение восстанавливаться из полной копии, можно уже не волноваться за состояние и содержание пострадавшей базы данных. Волноваться стоит о том, что именно Вы собираетесь восстанавливать, особенно, если копия у Вас не одна, а целый набор, за некоторый период времени. Кроме того, полезно учесть схему резервирования и принятые для этой схемы методы восстановления. Наиболее информативным инструментом, а главное наглядным, является SQL SEM. В нём можно визуально просмотреть имеющиеся наборы резервных копий и устройств резервирования, для того, что бы точно определить, какую из имеющихся копий базы данных (полную или разностную), а также набор отписанных по расписанию копий журнала транзакций нужно восстанавливать. Альтернативным методом можно считать использование специальных операторов T-SQL, о которых мы и поговорим ниже. Оператор RESTORE HEADERONLY представит на Ваш суд информацию: об имени и описании файла копии или резервного набора; тип устройства резервирования; метод (схема) резервирования; дата и время копирования; размер копии; порядковый номер файла копии в цепочке копий на устройстве резервирования. Оператор RESTORE FILELISTONLY выдаст: логические имена восстанавливаемых файлов и журналов; физические их имена; типы этих файлов (база или журнал); принадлежность их к группе файлов; размер резервного набора (Мб); максимально допустимый размер файла(Мб). Оператор RESTORE LABELONLY выдаст вам информацию о носителе копии, содержащуюся в заголовке носителя. Оператор RESTORE VERIFYONLY поможет проверить, цела ли Ваша копия, и можно ли её достоверно прочитать.

Процесс восстановления базы, штука весьма не тривиальная и чреватая всякими неожиданностями, поэтому постарайтесь ограничить доступ к серверу, на котором происходит восстановление данных. После этого, обязательно сделайте копию журнала транзакций, что бы зафиксировать то, что вы наработали до этого момента. При восстановлении базы данных, в качестве текущей базы должен быть задан master. Для того, что бы процессу восстановления никто не мог помешать, попросите любого члена ролей db_owner или sysadmin установить для восстанавливаемой базы параметр dbo use only в истину. Это можно сделать в SQL SEM или с помощью sp_dboption.

Подробный синтаксис оператора RESTORE (аналог LOAD в 6.5) мы рассмотрим в следующем выпуске рассылки.

Продолжение следует

ПОЛЕЗНОСТИ

Российский Федеральный Ядерный Центр, Снежинск. Книги, документация по СУБД.
http://www.ch70.chel.su/books/
CodeNet - все для программиста, базы данных.
http://codenet.al.ru/
Распределенные секционированные представления в MS SQL Server 2000. Лев Бондаренко
http://www.relib.com/database/db_sqlserver2000_0.asp

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

Understanding the Network and System Configuration
http://msdn.microsoft.com/library/techart/d5configover.htm
Building a Highly Available Database Cluster
http://msdn.microsoft.com/library/techart/d5clustering.htm
Building a Highly Available and Scalable Web Farm---with an appendix on round-robin, DNS
http://msdn.microsoft.com/library/techart/d5nlb.htm
Microsoft Message Queuing Configuration
http://msdn.microsoft.com/library/techart/d5msmq.htm
Setting Up an Active Directory Domain
http://msdn.microsoft.com/library/techart/d5activedir.htm
Setting Up a Domain Name System
http://msdn.microsoft.com/library/techart/d5dns.htm
Using SMTP for Outgoing Messages
http://msdn.microsoft.com/library/techart/d5smtp.htm
Quick Start Installation on a Single Computer---which also tells you where to get the most recent 7.8MB download
http://msdn.microsoft.com/library/techart/d5singleinstall.htm
Q277272 - BUG: Trace Flags 3607, 3608, 3609 Omitted from Documentation in SQL Server 7.0 and 2000
http://support.microsoft.com/support/kb/articles/Q277/2/72.asp
Q275309 - FIX: Uninstall, Repair, or Modify Fails on Program with Embedded SQL Server 2000 MSDE Merge Modules
http://support.microsoft.com/support/kb/articles/Q275/3/09.asp
Q277549 - PRB: Unable to Build Full-Text Catalog After You Modify MSSQLServer Logon Account Through Control Panel
http://support.microsoft.com/support/kb/articles/Q277/5/49.asp
Q279338 - BUG: DBCC CHECKCONSTRAINTS Does Not Handle Names with Special Characters
http://support.microsoft.com/support/kb/articles/Q279/3/38.asp
Q248391 - PRB: Error 1314 Raised By xp_cmdshell When Executed as Non-SA User
http://support.microsoft.com/support/kb/articles/Q248/3/91.asp
Q277658 - PRB: Setspn Fails if Domain Name Differs from NetBIOS Name Where SQL Server SPN Is Registered
http://support.microsoft.com/support/kb/articles/Q277/6/58.asp
Q271476 - BUG: SELECT Statement That Contains GROUP BY ALL in a Correlated Subquery Fails
http://support.microsoft.com/support/kb/articles/Q271/4/76.asp
Q239473 - PRB: 70rebind.exe for Windows 2000 and MDAC Upgrades on Clustered SQL Server 7.0 Servers
http://support.microsoft.com/support/kb/articles/Q239/4/73.asp
Q266617 - BUG: Combination of Top, an Inequality, and a Join Result in Incorrect Choice of a Table Spool Plan
http://support.microsoft.com/support/kb/articles/Q266/6/17.asp
Q235856 - HOWTO: Read IBM 370 Data from a Binary File
http://support.microsoft.com/support/kb/articles/Q235/8/56.asp
Q277842 - BUG: SQL Server 7.0 Uninstall Does Not Remove Licensing Information
http://support.microsoft.com/support/kb/articles/Q277/8/42.asp
Support WebCast: SQL Server 2000 Database Recovery: Backup and Restore
http://support.microsoft.com/servicedesks/webcasts/wc120500/wcblurb120500.asp
Q274472 - BUG: BCP 'in' May Cause Exception When Input File Last Column Is Datatype DATETIME
http://support.microsoft.com/support/kb/articles/Q274/4/72.asp
Q258025 - PRB: Users Registered in SQL Server as Part of a Local Group on PDC/BDC Are Unable to Connect
http://support.microsoft.com/support/kb/articles/Q258/0/25.asp
Q273502 - BUG: Cannot Uninstall SQL Server 6.5 After SQL Server 7.0 Is Upgraded to SQL Server 2000 on the Same Computer
http://support.microsoft.com/support/kb/articles/Q273/5/02.asp
Q278894 - BUG: Merge Replication Snapshot Agent Fails with Error Message 1913
http://support.microsoft.com/support/kb/articles/Q278/8/94.asp
Q276195 - BUG: Some String Functions Do Not Work as Expected on Binary Data
http://support.microsoft.com/support/kb/articles/Q276/1/95.asp
Q279224 - BUG: SQL Server 2000 BCP Utility Fails to Produce Proper Prefix-Length for Varbinary Column in Format File
http://support.microsoft.com/support/kb/articles/Q279/2/24.asp
Q280759 - PRB: SQL 7.0 VDI Backup May Fail When SQL Server 2000 Is Installed on the Same Computer
http://support.microsoft.com/support/kb/articles/Q280/7/59.asp
Q268600 - BUG: Opening Table with a Large Number of Columns Appears to Hang SEM or Reports Unknown Error
http://support.microsoft.com/support/kb/articles/Q268/6/00.asp
Q254321 - INF: Clustered SQL Server Do's, Don'ts and Basic Warnings
http://support.microsoft.com/support/kb/articles/Q254/3/21.asp
Q275669 - ODBC Driver for DB2 Truncates Binary Data Flow That Includes NULLs
http://support.microsoft.com/support/kb/articles/Q275/6/69.asp
Q278228 - INSERTS and DELETES from ACCESS to a DB2 Linked Table May Fail
http://support.microsoft.com/support/kb/articles/Q278/2/28.asp
Q271525 - PRB: Misleading Error Message with an IN Clause On Text Data Type
http://support.microsoft.com/support/kb/articles/Q271/5/25.asp
Q279407 - BUG: Selecting all Columns from a View Containing a ORDER BY Statement May Result in an Access Violation
http://support.microsoft.com/support/kb/articles/Q279/4/07.asp
Q251273 - Sample: Create XMLDOM Document with #import
http://support.microsoft.com/support/kb/articles/Q251/2/73.asp
Q258295 - HOWTO: Bind to XML Data with Internet Explorer
http://support.microsoft.com/support/kb/articles/Q258/2/95.asp
Q261293 - INFO: XML DOM Methods Use Linefeed Only Without a Carriage Return at the End of a Line
http://support.microsoft.com/support/kb/articles/Q261/2/93.asp

Получить эти статьи можно по этим ссылкам:

mailto:mshelp@microsoft.com?subject=Q277272, Q275309, Q277549, Q279338, Q248391, Q277658, Q271476, Q239473, Q266617, Q235856, Q277842

mailto:mshelp@microsoft.com?subject=Q274472, Q258025, Q273502, Q278894, Q276195, Q279224, Q280759, Q268600, Q254321, Q275669, Q278228, Q271525, Q279407, Q251273, Q258295, Q261293

#025<< #026


ДОСТУПНЫЕ РЕСУРСЫ РАССЫЛКИ:

АРХИВ и домашняя страница рассылки в Ростове-на-Дону
http://pilgrim.rostov-na-donu.ru/sql
Зеркало в Cанкт-Петербурге
http://mssqlhelp.com.ru
АРХИВ на SUBSCRIBE.RU
http://subscribe.ru/archive/comp.soft.winsoft.sqlhelpyouself
СТАТИСТИКА
http://subscribe.ru/stat/comp.soft.winsoft.sqlhelpyouself
ФОРУМ
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl

Rambler's Top100 Яндекс цитирования 1000 Stars

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру на адрес: MSSQLHelp@pisem.net
Хостинг рассылки:
Majordomo.ru - качественный хостинг от $9 в месяц: от 10 Мб,неограниченный трафик, от 10 РОР3, Cgi-bin, MySQL, PHP и секретный сервер, FTP & anonymous FTP, бесплатная регистрация домена,перекодировка кириллицы... http://www.majordomo.ru/hosting и самое главное - уникальное предложение : ДОМЕННОЕ ИМЯ в зоне .ru, .com, .net, .org БЕСПЛАТНО. Побробности http://www.majordomo.ru/hosting/specpr.html

Описание рассылки 'MS SQL Server - дело тонкое...'
Ф О Р У М
  
Рассылки Subscribe.Ru
Описание рассылки
MS SQL Server - дело тонкое...

http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное