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

MS SQL Server

  Все выпуски  

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


Информационный Канал Subscribe.Ru


#105<<  #106

СОДЕРЖАНИЕ

1.БЕЗОПАСНОСТЬ
1.1.Unchecked Buffer in MDAC Function Could Enable SQL Server Compromise (Q326573)
2.СОВЕТЫ
2.1.Полезные флаги трассировки SQL Server 7.0 и 2000
3.ССЫЛКИ НА СТАТЬИ
3.1.Новые технические статьи Microsoft
4.ФОРУМ SQL.RU
4.1.Самые популярные темы недели
4.2.Вопросы остались без ответа
5.ИНФОРМАЦИЯ АВТОРА РАССЫЛКИ

БЕЗОПАСНОСТЬ

31 июля 2002г. Microsoft выпущен бюллетень безопасности: Microsoft Security Bulletin MS02-040
Unchecked Buffer in MDAC Function Could Enable SQL Server Compromise (Q326573)

Предлагается заплата для устранения уязвимости, которая позволяла злоумышленнику передать в запросе такой параметр для OpenRowSet, который переполнял буфер, что могло привести к отказу в обслуживании SQL сервера или к исполнению на нём кода злоумышленника.

Уязвимости подвержены следующие продукты:

Microsoft Data Access Components 2.5
Microsoft Data Access Components 2.6
Microsoft Data Access Components 2.7

Заплату можно загрузить тут:

MDAC 2.5
MDAC 2.6
MDAC 2.7

[Содержание]

СОВЕТЫ

Полезные флаги трассировки SQL Server 7.0 и 2000

По материалам статьи Randy Dyess " Documented and Undocumented Trace Flags for SQL Server 2000 and 7.0"

Флаги трассировки (Trace flags) обычно используются для временного отключения некоторых функций базы данных, что позволяет изменять заданное по умолчанию поведение СУБД или наблюдать её обычно скрытые проявления. Как правило, их действие остаётся в силе пока они не будут выключены вручную, или не будет перезапущен SQL сервер. Имейте в виду, что большинство флагов не документированны и Microsoft может изменять их поведение в последующих версиях SQL сервера или с выходом сервисных пакетов и заплат. Флаг может быть установлен или при запуске SQL сервера, используя опцию -Ttrace#, или с помощью команды DBCC TRACEON. Для отключения флага в первом случае нужно перезапустить SQL сервер, а во втором случае используется команда DBCC TRACEOFF.
Флаги трассироваки являются хорошим инструментом для поиска скрытых проблем или для того, что бы точно определить поведение сервера. Однако, рекомендуется предварительно тщательно исследовали поведение недокументированных флагов трассировки прежде, чем испольовать их на своих промышленных серверах (из представленных ниже, только флаги: 230, 1204, 2528 и 3205 документированы в BOL). С помощью поиска статей в Microsoft Knowledge Based можно найти информацию о поведении сервера при использовании выбранного Вами флага трассировки.
Ниже представлен список флагов трассировки, которые, по мнению автора статьи, могут быть полезны как разработчикам приложений баз данных, так и администраторам баз данных. За основу взята информация из Transact-SQL Language Reference Guide Этот же документ поясняет поведение нескольких документированных и не документированных флагов трассировки для SQL Server 7.0 и 2000.

-1 - устанавливает флаги трассировки для всех клиентских подключений, а не для единственного подключения. Поскольку этот флаг устанавливается через опцию -T в командной строке, он автоматически воздействует на все подключения. Этот флаг используется только когда необходимо изменить действие других флагов, задаваемых с помощью DBCC TRACEON и DBCC TRACEOFF.
106 - Отключает информацию о номере строки для ошибок синтаксиса.
107 - Интерпретирует числа с точкой как числа с плавающей точкой вместо decimal.
205 - Выдаётся уведомление когда перетранслируется statistics-dependent хранимые процедуры, в результате AutoStat.
206 - Обеспечивает обратную совместимость для инструкции setuser.
208 - SET QUOTED IDENTIFIER ON.
242 - Обеспечивает обратную совместимость для коррелированых подзапросов, где желательны результаты в отличном от ANSI стандарте.
243 - Устанавливает менее противоречивое поведение SQL Server, потому что проверки nullability будут задействованы во время выполнения и результат нарушения nullability будет в завершении команды и пакета или транзакционного процесса.
244 - Отключает проверку для разрешённых временных нарушений ограничений. По умолчанию, SQL Server проверяет и разрешает временные нарушения ограничений. Временное нарушение ограничений может появиться в пределах одной инструкции и транзакции. SQL Server проверяет временные нарушения ограничений во время исполнения инструкций DELETE, INSERT и многострочного UPDATE. Эта проверка требует большего количества дополнительных операций с таблицами. С этим флагом Вы можете пропускать проверку на временные нарушения ограничений, уменьшая таким образом количество операций с таблицами.
257 - Вызыват алгоритм печати в Xml - формате, что делает Xml результат более читаемым.
260 - Печатает информацию о версии расширенных хранимых процедур (dll).
302 - Печатает информацию о статистике использования страниц, фактической селективности (если возможно) и о том, как SQL Server оценил возможный физический и логический I/O для индексов. Флаг 302 должен использоваться с флагом 310, для демонстрации фактического порядка объединения.
310 - Выводит информацию о порядке объединения. Информация о выборе индекса также доступна в более читаемом формате при использовании SET SHOWPLAN_ALL, описаной в документации по SET.
325 - Выводит информацию о стоимости использования некластерного индекса или сортировки при отработке ORDER BY.
326 - Выводит информацию об оценочной и фактической стоимости сортировок.
330 - Обеспечивает более полный вывод информации при использовании опции SET SHOWPLAN_ALL, которая выдает детальную информацию об объединениях.
506 - Предписывает использование стандарта SQL-92 для null значений при сравнений между переменными и параметрами. Любое сравнение переменных и параметров, которые содержат null, всегда кончается null.
652 - Отключает упреждающее чтение для сервера.
653 - Отключает упреждающее чтение для текущего подключения.
809 - Ограничивает количество Lazy Write для SQL Server 2000.
1180 - Заставляет использовать свободные страницы для данных типа text или image, улучшая, за счёт этого, эффективность использования памяти.
1200 - Выводит информацию о блокировках (id процесса и тип блокировки).
1204 - Возвращает тип тупиковой блокировки и команду её породившую.
1205 - Возвращает более детальную информацию о команде, приводящей к тупиковой блокировке.
1206 - Используется для дополнения флага 1204, что бы показать другие блокировки, порождённые тупиковой.
1609 - Включает распаковку и проверку информации удаленного вызова процедуры (RPC) в Open Data Services. Используется только когда прикладные программы зависят от предшествующего поведения.
1704 - Выводит информацию о том, когда временная таблица была создана или удалена.
1807 - Позволяет подключать к SQL Server файлы базы данных расположенные на другом компьютере в сети.
2505 - Позволяет откллючить запись в журнал ошибок SPID 10 при использовании DBCC TRACEON 208.
2508 - Отключает параллельную проверку не кластерного индекса для DBCC CHECKTABLE.
2509 - Используется с DBCC CHECKTABLE, чтобы видеть полный отчёт о скрытой записи в таблицу.
2528 - Отключает параллельную проверку объектов DBCC командами.
2701 - Устанавливает системную функцию @@ERROR в 50000 для сообщений RAISERROR с уровнем серьезности не выше 10. Эсли это заблокировано, устанавливает системную функцию @@ERROR в 0 для уровня серьезности не выше 10.
3104 - Заставляет SQL Server отключить проверку на свободное место.
3111 - Заставляет пропускать LogMgr::ValidateBackedupBlock в течение операций восстановления и резервирования.
3205 - Отключает аппаратное сжатие для стримера.
3222 - Отключает упреждающее чтение, которое используется при recovery во время исполнения операций roll forward.
3502 - Выводит сообщение в файл регистрации о начале и конце каждой контрольной точки.
3503 - Указывает, была ли исполнена контрольная точка в конце автоматического восстановления базы данных (это применяется только для read-only баз данных).
3602 - Делает запись всех ошибок и предупреждающих сообщений, посланных клиенту.
3604 - Выводит трассу клиенту. Флаг устанавливается только через DBCC TRACEON и DBCC TRACEOFF.
3605 - Выводит трассу в файл регистрации ошибок. (Если Вы запускаете SQL Server из командной строки, трасса будет выведена на экран).
3607 - Отключает автоматическое выполнение recovery (при запуске) для всех баз данных.
3608 - Отключает автоматическое выполнение recovery (при запуске) для всех баз данных кроме базы данных master.
3609 - Отключает создание при запуске базы данных tempdb. Используйте этот флаг если устройство или устройства, на которых tempdb постоянно находится, неисправны или существуют проблемы в базе данных model.
3626 - Включает отслеживание информации о CPU для таблицы sysprocesses.
3640 - Устраняет посылку клиенту сообщений DONE_IN_proc для всех инструкций в хранимой процедуре, подобно установке сеанса SET NOCOUNT ON, но когда это установлено через флаг трассировки, это будут действовать для каждого клиентского сеанса.
4022 - Обход автоматически запускаемых процедур.
4030 - Выводит байтовое и ASCII представление результирующего буфера. Используется когда нужно видеть какие запросы клиент посылает SQL серверу. Вы можете использовать этот флаг при нарушениях защиты, что бы определить, какая инструкция стала этому причиной. Как правило, Вы можете установить этот флаг глобально или использовать SQL Server Enterprise Manager. Также Вы можете использовать DBCC INPUTBUFFER.
4031 - Выводит байтовое и ASCII представление посылаемого буфера (то, что SQL Server посылает назад клиенту). Также Вы можете использовать DBCC OUTPUTBUFFER.
4032 - Отслеживает SQL команды, поступающие от клиента. Место для вывода задаётся флагами 3605/3604.
7300 - Собирает расширенную информацию о любой ошибке, с которой Вы сталкиваетесь при исполнении распределенного запроса.
7501 - Динамические курсоры используются по умолчанию как forward-only курсоры. Теперь динамические курсоры быстрее чем в ранних версиях и больше не требуют уникальных индексов. Этот флаг отключает такое поведение динамических курсоров и возвращает сервер к поведению в версии 6.0.
7502 - Отключает кэширование планов курсора для расширенных хранимых процедур.
7505 - Включает обработку как в версии 6.x кодов возврата при запросе dbcursorfetchex, и окончательная позиция курсора останется за концом результирующего набора курсора.
7525 - Возвращает SQL Server 2000 к поведению SQL сервера версии 7.0, когда нестатические курсоры закрывались независимо от состояния SET CURSOR_CLOSE_ON_COMMIT.
8202 - Реплицирует все команды UPDATE как пары DELETE/INSERT на publisher.
8206 - Поддерживает выполнение на SQL Server 2000 хранимых процедур с определённым пользователем именем владельца для подписчиков на SQL Server или без квалификации владельца для гетерогенных подписчиков.
8207 - Допускает модификацию singleton для репликации транзакций, появившуюся с выходом SQL Server 2000 service pack 1.
8599 - Позволяет использовать savepoint в рамках распределённой транзакции.
8679 - Отключает в оптимизаторе SQL Server использование оператора Hash Match Team.
8687 - Используется для отключения распараллеливания запроса.
8721 - Выводит информацию в файл регистрации ошибок о том, когда был выполнен AutoStat.
8783 - Позволяет инструкциям DELETE, INSERT и UPDATE использовать установку SET ROWCOUNT ON когда это разрешено.
8816 - Подменяет каждое двухцифровое обозначение года четырехцифровым обозначением года.

[Содержание]

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

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

BUG: Distribution Agent May Experience an Access Violation in a Republisher Topology (Q320603)
BUG: Xp_sendmail Fails If @recipients Parameter Is More Than 256 Characters (Q324191)
FIX: Infinite Loop During Full-Text Catalog Population (Q323038)
FIX: Registered Remote Servers Disappear from SQL Enterprise Manager in Windows XP When Non-Domain User Password is Changed (Q323280)
FIX: The Log Reader May Stop Responding and an Assertion Occurs When the Log Reader Agent Is Running Sp_replcmds (Q321115)
HOW TO: Create Patch Files (Service Packs) for the MSDE 2.0 Sample.msi File (Q314131)
HOW TO: Debug an Extended Stored Procedure (Q156099)
HOW TO: Use Extended Stored Procedures (Q190987)
INF: Advanced Debugging of SQL Server Procedures (Q163451)
INF: How to Access SQL Server Within Active Server Pages (Q169377)
INF: How to Convert an Access Database to SQL Server (Q237980)
INF: Small Business Server 4.5 SQL Server 7.0 Limitations (Q216812)
INF: SQL Server 2000 Security Update for Service Pack 2 (Q316333)
INF: SQL Server 7.0 and SQL Server 2000 Logging and Data Storage Algorithms Extend Data Reliability (Q230785)
INF: SQL Server and Striped Backups (Q325334)
INF: SQLIOStress Utility to Stress Disk Subsystem Like SQL Server (Q231619)
INF: Using Disk Drive Caching with SQL Server (Q234656)
MS02-039: Buffer Overruns in SQL Server 2000 Resolution Service Might Enable Code Execution (Q323875)
OLE DB Provider for SQL Server Does Not Cancel a Batch Statement When You Call the Cancel() Method (Q325338)
PRB: Subqueries That You Define on Merge Articles Are Not Re-Evaluated (Q324362)

[Содержание]

ФОРУМ SQL.RU

Самые популярные темы недели

Нынче по небу правильно солнце идет
использование PrimaryKey
Можно ли "развернуть" таблицу на 90 гр?
2 Дед Маздай. Приглашение на тест
расширенная процедура
Как сделать CONVERT из FORMAT DATE with TIME только TIME
VB Recordset --numeric and float-- запятая и точка
SOS !
Как получить из одной таблицы все то, чтего нет а другой? [new]
Система безопасности.
SQL Server Agent-->STOP
Merge Replication
Как получить разницу между таблицами? [new]
Помогите! База растет как на дрожжах
CONSTRAINS_KEYS better then CONSTARAINT_NAME???
Связь двух GROUP BY
Подскажите с репликацией
Получение значений из процедуры
каким образом склеить строки
Query Analizer must die ?
Timeout Expired
Что-то с правами происходит....
Сущности, атрибуты, типы данных...
Нетривиальная задача: перетащить базу
UPDATE - Траблы
обработка рекордсета в ХП
Как передать на сервер рисунок используя FoxPro6.0
XML в RDBMS: есть ли смысл?
select по дате.
Sorry! Почему в инспекторе объекта не появляется свойство
Поиск отсутствующих номеров
Как в качестве параметра передать в хранимую процедуру порядок сортировки?
Проблемы отладки ХП в MSSQL2000
Помогите новичку - автоикримент поля
Сравнение структуры БД
Подскажите!
Как достучаться к серверу ???
Parallelism: на двухпроцессорном ПК INSERT выполняется длиннее, чем на однопроц
ВСЕХ ПОЗДРАВЛЯЮ С ДНЁМ ПРОГРАММИСТА!<
Как лучше хранить BLOB ? (+)
Вызов процедуры в DLL из MS SQL 7
Как создать пустую базу на основе существующей?
Fill Factor
xp_CmdShell вопрос по запуску файла
Проблема с jobs
Как при выполнении запроса под одним из его полей вернуть просто 0?
ПОМОГИТЕ ДЕВУШКЕ!!!
QA и EM - кто-то нездоров
Выбрать всех потомков
Вопрос к спецам (please........)
SQL Mail в MSSQL 2000
Извини чтото не получается
Перенос Access БД в SQL с помощью DTS
"Plain query" или "Stored Procedure" Что эффективнее?
Как узнать сетевой траффик?

[Содержание]

Вопросы остались без ответа

Ограничение прав доступа к столбцам таблиц.
Вопрос о репликации???
Отображение изменений!!!
Вопрос к админу
Удаление SQL 2000
LogReader Agent для Transaction Replication
Удалить таблицу
возможно ли сделать главный сервер на sql2000 а к нему standby сервер на sql7
Снова Linked Servers

[Содержание]

ИНФОРМАЦИЯ АВТОРА РАССЫЛКИ

В настоящее время я рассматриваю варианты своего участия в новых проектах. Интерес представляют крупные системы баз данных, как развивающиеся, так и разрабатывающиеся "с нуля". Если Ваша организациия находиться в Москве или ближайшем подмосковье и нуждается в услугах MS SQL Server DBA, предлагаю рассмотреть моё резюме, которое всегда доступно по этой ссылке: http://www.sql.ru/subscribe/REZUME.shtml

[Содержание]

#105<<  #106

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

sql.ru Описание рассылки

МИНИФОРМА
ПОДПИСКИ




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

В избранное