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

MS SQL Server

  Все выпуски  

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


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

#074<<  #075

СОВЕТЫ

Рекомендации по защите Microsoft Data Engine
По материалам статьи Microsoft: INF: Data Engine Security Recommendations for ISVs

Информация в этой статье относится к Microsoft Data Engine (MSDE), версия 1.0

ISVs (Independent Software Vendor) - это общепринятое обозначение для независимых поставщиков программного обеспечения, программных решений и развёртывающих приложения у заказчиков.
Эта статья призвана подчеркнуть некоторые правила управления защитой Microsoft Data Engine (MSDE) и адресована разработчикам программных решений для заказчиков, у которых могут быть развёрнуто одновременно более одного приложения на основе MSDE. Рекомендуется, чтобы разработчики, разворачивающие приложение, использующее MSDE, следовали рекомендациям, перечисленным ниже. Это позволит организовать совместное использование движка базы данных несколькими прикладными программами, а также увеличит возможности масштабирования, гарантируя, чтобы приложение будет развернуто в среде общедоступного SQL Server, и без того, чтобы возникла необходимость внесения корректив в защиту прикладной программы и процедуры установки.

Вы можете использовать следующие рекомендации по управлению защитой основанных на MSDE приложений:
1. Так как отдельный экземпляр MSDE может разделяться несколькими прикладными программами, пароль для учетной записи администратора "sa" должен быть доступен для управления конечным пользователем. Если пароль для учетной записи "sa" изменяется в каком-либо приложении, это лишит возможности из других прикладных программ, используемых в этой же системе, зарегистрировавшись в MSDE под учетной записью администратора, создавать учетные записи или выполнять другие подобные операции. В идеале, приложение на основе MSDE, которое выполняет предшествующую рекомендацию, должно обеспечивать интерфейс, средствами которого конечный пользователь сможет изменять пароль "sa".
2. Если в системе MSDE уже установлен, Вы должны потребовать от пользователя ввода пароля для "sa" во время процесса установки вашего приложения. Никогда не оставляйте этот пароль пустым если при установке вашего приложения устанавливается ещё и MSDE. Используйте этот пароль для регистрации в MSDE, для создания или прикрепления вашей прикладной базы данных, для создания логинов SQL Server с помощью sp_addlogin и назначения им разрешений, достаточных для работы вашего приложения с базой данных. После инсталляции прикладной программы, весь последующий доступ к базе данных должен осуществляться через эти логины, созданные в течение установки. Не рассчитывайте на то, что пользователь не будут изменять пароль "sa".
3. Никогда не изменяйте пароль "sa" без того, чтобы сообщить пользователю его новое значение. Иначе, это сделает невозможным для пользователя установку на компьютере любой другой прикладной программы на основе MSDE, и после этого пользователь при установке другого приложения не сможет получить такой доступ к MSDE, что бы имеющихся у него разрешений было достаточно для создания новой базы данных.

Что делать, если список баз данных в Enterprise Manager открывается очень долго
Автор: Дмитрий Приходько
По материалам дискуссий на форуме MS SQL Server проекта SQL.RU

Клиентские утилиты SQL Server 2000 (Enterprise Manager) при работе с сервером баз данных используют функцию has_dbaccess ("database_name"), суть которой в том, что она выдает значения 0 или 1, которые определяют, доступна ли база данных в настоящий момент. В клиентских утилитах SQL Server 7.0 данная функция не использовалась, но в серверной части она есть, причём выполняется гораздо медленней, чем у SQL Server 2000.
Разброс по времени выполнения на одну базу у нас наблюдался такой: обычно -4ms, в плохом случае приблизительно 4000ms.

Особенности работы Enterprise Manager 2000 (EM):

Когда EM запрашивает список баз данных сервера, выполняется запрос:


Select ..., has_dbaccess(name) from master..sysdatabases

Этот запрос выполняется без условия where, то есть по всем базам данных. Мало того, этот запрос выполняется в цикле столько раз, сколько есть баз данных на сервере. На нашем сервере было около 100 баз, в результате их список открывался 5 - 10 минут. В SP1 для SQL Server 2000 ситуацию исправили, теперь запрос выполнятся только один раз. Так что рекомендация первая - ставьте сразу SP1 на SQL Server 2000. Но проблема с долгим выполнением функции has_dbaccess осталась.

Что влияет на время выполнения этой функции?
В основном на выполнение этой функции влияют установленные флаги: autoclose и autoshrink. При чём очень сильно. Это замедление заметно и на SQL Server 2000 но в меньшей степени. Исходя из этого, следует рекомендация вторая - снять со всех баз флаги autoclose и autoshrink.
Функция has_dbaccess() на SQL Server 7.0 может быть заблокирована процессом восстановления из Backup. При чем, когда процесс восстановления завершается, оба коннекта падают, восстановление базы часто завершается с ошибкой и его приходится повторять. Данная ситуация происходит не всегда, но часто. Особенно эта ситуация была острой до появления SP1. Рекомендация третья - не используйте EM 2000 без SP1 для работы с SQL Server 7.0, когда идёт восстановление баз данных.
Общий вывод такой: функция has_dbaccess() опасна для MS SQL Server 7.0. Скорее всего, происходит взаимная блокировка в базе master, которая некорректно разрешается сервером.

Зарисовки на тему has_dbaccess()

Функция has_dbaccess() используется еще в нескольких местах.
1. В Query Analyzer когда вы выбираете базу из списка.
2. В ODBC драйвере - настройка подключения.
То есть потенциально любой пользователь, у которого стоит клиент SQL Server 2000 может нарушить процесс восстановления из Backup.

К слову, а как Query Analyzer 2000 работает с SQL Server 6.5? Там же такой функции нет. А очень просто. C начала делается запрос, содержащий функцию has_dbaccess(name). Естественно сервер выдает ошибку. Ошибка обрабатывается на клиенте и выдается второй запрос просто:


select name from master..sysdatabases.

В итоге повторюсь:
1. Всегда снимайте со всех баз флаги autoclose и autoshrink.
2. Установите на клиентских компьютерах SP1 для SQL Server 2000.
3. Администрируйте SQL Server 7.0 с помощью EM от 7.0. Для этого мы держим отдельный компьютер с клиентом 7.0.
После этого можно жить, время работы запросов резко уменьшается (но вероятность падения в процессе восстановления базы остаётся, при чём, иногда даже полностью падает сервер).
Рекомендация последняя - если все базы под SQL Server 7.0 не используйте клиента для SQL Server 2000, если же начат процесс перехода на SQL Server 2000 - не затягивайте его, побыстрее переводите все базы данных на новую версию.

Прилагаю скрипт. Те базы, которые вы увидите, проверьте функцией sp_dboption 'name' на соответствие представленным выше рекомендациям.


set nocount on
if (select object_id('tempdb..#bases')) is not null exec( 'drop table #bases')
create table #bases (t_name varchar(255), t_time int , dba int)
go
declare @start datetime, @finish datetime,
@my_base varchar(255),
@dba int
select @my_base = char (0)
while (1=1)
begin
set rowcount 1
select @start = getdate()
select @my_base = name,
@dba = has_dbaccess(name)
from master..sysdatabases
where name > @my_base
order by name
if @@rowcount = 0
begin
set rowcount 0
break
end
set rowcount 0

select @finish = getdate()
insert #bases (t_name, t_time, dba)
select @my_base, datediff(ms,@start, @finish), @dba
end
select cast(t_name as varchar (30) ), t_time, dba from #bases where t_time > 20

ПОЛЕЗНОСТИ

Доступен для загрузки с сайта Microsoft файл инсталлятора SQL Server 2000 Books Online, который является интерактивным учебником и источником документации по Microsoft SQL Server 2000. Это файлы в формате HTML справочника, которые обеспечивают возможность поиска по всему справочнику и индексу, а также находить нужную информацию по разделам.
Автономный учебник SQL Server Books Online доступен для загрузки в виде CAB-файла. Вы можете извлечь находящиеся внутри файлы, используя утилиту Microsoft Windows: Expand.exe
Описание загрузки и установки учебника
Файл загрузки SQL Server 2000 Books Online

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

Этапы и мероприятия проекта по BPR
Автор: consulting.ru
248 компаний определили наиболее важные мероприятия, которые следует осуществлять на каждом этапе проекта по реинжинирингу...[подробнее]
Практический способ реорганизации бизнес-процессов
Автор: БНТП
BPR (бизнеспроцессреинжениринг), технология совершенствования деятельности предприятий разных форм деятельности, широко практикуемая за рубежом, находит все большее применение и в отечественной практике. В предлагаемой статье кратко рассмотрены принципиальные особенности осуществления BPR и акцентировано внимание на необходимости интенсивной взаимосвязи всех участников BPR. Также рассмотрено эффективное использование для этой цели средства программной поддержки функционального моделирования BPwin...[подробнее]

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

BUG: SQL Server 2000 SP1 Setup Resets Enable Shared Memory Protocol Option to the Default "On" (Q308813)
BUG: SQL Profiler Trace Has Extraneous Values in Mode Column (Q308715)
FIX: SQL Server May an Encounter Access Violation During a BULK IMPORT (Q308112)
FIX: Error Message 8624 "Internal SQL Server" Occurs with Cold Index Retrieval OLE DB Provider (Q309568)
FIX: ODBC Functions TIMESTAMPADD and TIMESTAMPDIFF May Cause Error 128 (Q311000)
BUG: Incorrect Results with Uncorrelated Subquery If You Use an Aggregate Function and NULL Values in the WHERE Clause (Q310472)
PRB: SQLServerAgent Service May Stop Responding (hang) After You Restart the Computer (Q306655)
PRB: SQL 2000 Server Fails to Start Due to Exception Access Violation After You Configure a High Lock Value (Q309435)
FIX: ADO Returns No Resultset for Prepared Parameterized Query Involving CHAR Data with SQLOLEDB (Q311313)
Support WebCast: Microsoft SQL Server 2000 Analysis Services: How to Connect to Analysis Services over the Internet
BUG: SP1 Regression: Bulk Load of a Table with a Text Column Causes AV on the Server (Q308807)
BUG: DTSRUN Fails with Errors If the Arguments Have Multiple Space Characters Between Them (Q308801)
BUG: Cannot Install Service Pack 1 to a Tools-Only Installation If MSDE Is Installed (Q308835)
FIX: RPC Clients Unable to Login to SQL Server with Windows Authentication (Q311111)
BUG: Rebuildm Truncates Virtual Server Name of 15 Characters (Q308788)
BUG: Bcp.exe Executes Query Twice When QueryOut Argument Used (Q309555)
FIX: Upgrade from SQL Server 7.0 May Abort with Messages.sql and You Cannot Connect to SQL Server (Q300676)
PRB: SQL Server CE OLE DB Provider Specific Properties Give Compilation Error (Q307530)
PRB: IIS Lock Down Tool May Break RDA or Replication That Uses Anonymous Authentication (Q310654)
BUG: SP1 Regression: SELECT Query on a Table with a Computed Column Generates Access Violation (Q308818)
BUG: Miscalculation of CPU Time Occurs If SQL Server Uses a New Thread to Execute a Batch on a Connection That Already Exists (Q309377)
BUG: Unable to Change Identity Range of Publisher If You Use Auto Identity Range (Q310540)
FIX: Script Generation Using SQL-DMO Results in Database Name That Is Too Long (Q281137)
PRB: Backup, Copy, and Load Job Information Is Not Updated on the Log Shipping Monitor (Q292586)
BUG: Indexed Computed Column Based on Text/Image Column Causes AV When You Run DBCC CHECKDB (Q308775)

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

Вопрос к аналитикам
Ошибка при редактировании записи
Гипотонический вопрос :)))
Выбор железа для SQL6.5
Как сделать Access издателем в репликации?
Microsoft SQL Server
Нужен совет
Получить родителя
Задачка !!!
Help pls!
Как найти для одной записи максимальное значение из значений столбцов
"Сумма прописью" на SQL

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

Репликация между SQL 2000 и 7.0
Snapshot replication
Ребилд SQL Server 7.0
Как можно сравнить идинтичны ли 2 записи из 2 разных таблиц с одинаковой структ.
OLEDB & BLOB fields
Стоит-ли ставить MDAC 2.7
SQL2000 - Windows2000
Обновление Olap-куба

ВАКАНСИЯ

Опытный программис VC++, ATL+ActiveX, ASP+HTML+JavaScript, SQL

Коммерческому банку (г.Москва) требуется опытный программист на постоянную работу для создания внутренних программных систем.
Обязателен существенный практический опыт: VC++, ATL+ActiveX, ASP+HTML+JavaScript, SQL.
Желательно: MSSQL или SYBASE, Delphi.
З/п 800 у.е. + бонусы. Все условия для профессионального роста и повышения квалификации имеются. Коллектив дружный.
Необходима регистрация в Москве или Московской области.
Просьба присылать резюме (в любом формате) по адресу gl@newmail.ru
Резюме должно отвечать перечисленным требованиям и содержать телефон для связи.

#074<<  #075

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

sql.ru

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




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

В избранное