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

MS SQL Server

  Все выпуски  

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


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


#103<<  #104

СОДЕРЖАНИЕ

1.БЕЗОПАСНОСТЬ
1.1.Service Pack Installation May Save Standard Security Password in File (Q263968)
1.2.SQL Server 2000 Security Update for Service Pack 2 (Q316333)
2.СОВЕТЫ
2.1.XML в MS SQL Server 2000 и технологиях доступа к данным (продолжение)
2.1.1.Доступ к SQL Server по HTTP
3.ССЫЛКИ НА СТАТЬИ
3.1.Отечественные статьи
3.2.Новые технические статьи Microsoft
4.ФОРУМ SQL.RU
4.1.Самые популярные темы недели
4.2.Вопросы остались без ответа
5.ИНФОРМАЦИЯ АВТОРА РАССЫЛКИ

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

Microsoft выпущен бюллетень безопасности Microsoft Security Bulletin MS02-035
"FIX: Service Pack Installation May Save Standard Security Password in File (Q263968)"

При использовании SQL Server Authentication, возможно сохранение пароля sa в текстовом файле.

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

Microsoft SQL Server 2000 Developer Edition, versions SP1 , SP2
Microsoft SQL Server 2000 Enterprise Edition, versions SP1 , SP2
Microsoft SQL Server 2000 Personal Edition, versions SP1 , SP2
Microsoft SQL Server 2000 Standard Edition, versions SP1 , SP2
Microsoft SQL Server versions 7.0 , 7.0 Service Pack 1 , 7.0 Service Pack 2 , 7.0 Service Pack 3 , 7.0 Service Pack 4
Microsoft Data Engine (MSDE), version 1.0

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

KillPwd.exe

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

Microsoft выпущен бюллетень безопасности Microsoft Security Bulletin MS02-034
"INF: SQL Server 2000 Security Update for Service Pack 2 (Q316333)"

Пакет предназначен для Microsoft SQL Server 2000 (all editions) SP2.

Скачать можно тут:

Download 8.00.0650_enu.exe now

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

СОВЕТЫ

XML в MS SQL Server 2000 и технологиях доступа к данным (продолжение)
По материалам конференции "Корпоративные базы данных 2002"

Автор: Алексей Шуленин

01. Введение
02. Сохранить как XML
03. Получить как поток XML
04. XML на стороне сервера. FOR XML
05. SQLXML-классы в .NET
06. FOR XML на стороне клиента
07. XML-представление наборов данных в ADO .NET
08. Прямые XPath-запросы к объектам SQL Server
09. Аннотированные схемы
10. XML-шаблоны как разновидность хранимых процедур
11. UpdateGrams
12. XML Bulk Load

13. Доступ к SQL Server по HTTP

Насколько вы заметили, в п.1 среди одного из ключевых преимуществ поддержки XML в СУБД называлась возможность доступа по HTTP. Опять же, насколько вы заметили, HTTP у нас до сих пор, в общем-то, не пахло. Настало время исправить этот недостаток. Напрямую по HTTP с SQL Server общаться нельзя. Во всяком случае пока между клиентом и SQL Server-ом приходится иметь IIS. В состав SQLXML 3.0 входит ISAPI-фильтр ...\Program Files\Common Files\System\Ole DB\sqlis3.dll, который принимает на себя обработку методов GET, HEAD, POST, вытаскивает из них тело запроса и отправляет его на SQL Server. SQL Server его обрабатывает, ответ в виде XML передается Web-серверу, а от него по HTTP - клиенту. Таким образом, второй участок пути (IIS - SQL Server) относится к локальному взаимодействию с SQL Server, с которым, я надеюсь, все ясно, т.к. им мы занимались на протяжении 12-ти предыдущих параграфов. Чтобы разобраться с первым участком (клиент - IIS), нам нужно понять две вещи: как правильно упаковать запрос в GET и POST-обращения и как их отправить фильтру. С фильтром все происходит классически: на IISе создается виртуальная директория, к которой он подвязывается. Для ее создания можно воспользоваться графической утилитой Configure IIS Support в SQLXML 3.0 (в отличие от аналогичной утилиты в составе SQL Server она поддерживает все те новшества, которые были представлены в этом релизе), либо сделать это программным путем, написав скрипт, похожий на тот, что представлен ниже.


static void Main()
{
 const string SQLSrv = "(local)";
 const string DBName = "Northwind";
 string SQLVirtDirName = "SQLXML3";
 string SQLVirtDirPhysPath = Directory.GetParent(Directory.GetCurrentDirectory()).FullName;

 //Получаем ссылку на основной объект
 SQLVDIRLib.SQLVDirControl3 sqlVDirCtl = new SQLVDIRLib.SQLVDirControl3();

 //Соединяемся с сервером localhost и дефолтовым web-сайтом
 sqlVDirCtl.Connect("localhost", "1");

 //Получаем коллекцию виртуальных директорий
 SQLVDIRLib.IVRootEnum2 sqlVDirs = sqlVDirCtl.SQLVDirs;

 //Если вирт.дир. с таким именем существует, удаляем
 if (sqlVDirs.get_Exists(SQLVirtDirName))
  sqlVDirs.xxxRemoveVirtualDirectory(SQLVirtDirName);

 //Создаем новую вирт.дир.
 SQLVDIRLib.ISQLVDir2 sqlVDir = sqlVDirs.AddVirtualDirectory(SQLVirtDirName);

 //1-я закладка New Virtual Directory Properties
 sqlVDir.PhysicalPath = SQLVirtDirPhysPath;

 //2-я закладка New Virtual Directory Properties
 sqlVDir.SecurityMode = SQLVDIRLib.tagSecurityModes.smINTEGRATED;

 //3-я закладка New Virtual Directory Properties
 sqlVDir.ServerName = SQLSrv; sqlVDir.DatabaseName = DBName;

 //4-я закладка New Virtual Directory Properties
 sqlVDir.AllowFlags =
 SQLVDIRLib.tagAllowFlags.afURL_QUERIES | SQLVDIRLib.tagAllowFlags.afTEMPLATES |
 SQLVDIRLib.tagAllowFlags.afXPATH | SQLVDIRLib.tagAllowFlags.afPOST;

 //5-я закладка New Virtual Directory Properties
 //Получить коллекцию виртуальных имен для данной вирт.дир.
 SQLVDIRLib.IVirtualNames2 sqlVDirVNames = sqlVDir.VirtualNames;
 //Добавляем новые виртуальные имена
 //Параметры: название поддир., ее тип, отн.физ.путь (там, где не нужно - пустая строка)
 sqlVDirVNames.xxxAddVirtualName("dbobj", SQLVDIRLib.tagVirtualTypes.vtDBOBJECT, "");
 sqlVDirVNames.xxxAddVirtualName("schem", SQLVDIRLib.tagVirtualTypes.vtSCHEMA, "Schemas");
 sqlVDirVNames.xxxAddVirtualName("templ", SQLVDIRLib.tagVirtualTypes.vtTEMPLATE, "Templates");

 SQLVDIRLib.IVirtualName sqlWebSvc = sqlVDirVNames.xxxAddVirtualName("websvc",
 SQLVDIRLib.tagVirtualTypes.vtSOAP, "WebService");
 sqlWebSvc.WebService = "SQLSoapSample"; sqlWebSvc.Domain = "localhost";

 sqlWebSvc.SoapMethods.AddStoredProcMethod("ЗаказыКлиентаЗаГод", "CustomerOrdersForYear", 1, 1,
 SQLVDIRLib.tagSoapMethodOutput.smoDATASET);
 sqlWebSvc.SoapMethods.AddTemplateMethod("ПримерВызоваШаблона",
 "..\\Templates\\XMLTemplate1.xml", 1);

 sqlWebSvc.SoapMethods.GenerateConfig(0, 0); sqlWebSvc.SoapMethods.GenerateWSDL();

 //Отсоединяемся от сервера
 sqlVDirCtl.Disconnect();
}

Скрипт 14

Некоторые пояснения к тому, что здесь делалось. Для начала, чтобы воспользоваться функциональностью объекта SQLVDirControl из .NET Framework, нужно импортировать библиотеку классов соответствующей СОМовской dll'и - ...\Program Files\Common Files\System\Ole DB\sqlvdr3.dll. Процесс работы с этим объектом практически повторяет шаги, выполняемые из графического интерфейса визарда по созданию виртуальной директории SQL Server. Для обслуживания анонимных соединений с SQL Server по HTTP следует выбрать учетную запись Windows, авторизованную на доступ к SQL Server, либо SQLный логин, под которыми анонимусы будут ходить на SQL Server. В локальных интранет-сценариях лучше выбирать Windows Integrated Authentication, когда пользователь под своей доменной учетной записью сквозным образом авторизуется на IIS и далее на SQL Server (что соответствует его интегрированному или смешанному режиму безопасности). Basic Authentication (Clear Text) to SQL Server account, как следует из названия, будет запрашивать у пользователя при обращении к виртуальной директории его логин и пароль на SQL Server. Так же, как базовая аутентификация на IISе, они передаются в открытом виде, поэтому при выборе этого сценария следует применять HTTPS. Виртуальная директория, естественно, должна быть привязана к определенному экземпляру SQL Server (он может стоять на машине, отличной от той, где установлен IIS) и к определенной базе данных на нем. Естественно, все механизмы проверки полномочий при обращении к объектам сервера и совершении на нем каких-либо действий, остаются в силе, однако еще до того, как дело дойдет до SQL Server, можно ввести дополнительные ограничения на уровне виртуальной директории. Опция Allow URL queries (SQL, template) разрешает непосредственно по HTTP запрашивать SQL Server при помощи SELECT ... FOR XML или передав текст шаблона. По умолчанию она запрещена, чтобы кто ни попадя из Интернет не приставал к SQL Server с произвольными запросами. Конечно, если у человека нет прав, он и так будет послан, но зачем напрягать сервер и заставлять его тратить время на проверку. Если вы все-таки хотите открыть предыдущую опцию только для запросов на чтение, запретите Allow posted updategrams - при этом будут отвергаться все ad hoc (т.е. те, которые приходят от пользователя, как было показано в конце п.10, а не те, что подготовили вы и сохранили в поддиректории типа template) шаблоны типа UpdateGrams. Allow XPath - то же, что первая опция, но для ad hoc XPath-запросов. Allow template queries - разрешить пользователям вызывать хранящиеся на сервере шаблоны (а не направлять ему свои). Очень похоже на ситуацию, когда при классическом доступе пользователям даются права только на вызовы определенных хранимых процедур, чтобы даже с теми объектами, на которые у них есть права, они не творили, что хотели, а действовали в рамках предусмотренных бизнес-правил. Allow POST - поскольку очень длинный запрос в GET не пролезет, то можно сделать доступной посылку запросов методом POST. Maximum size of POST queries (in kilobytes) позволяет тем не менее ограничить сверху длину запроса.
Виртуальная директория может иметь подкаталоги следующих типов. Template - в них хранятся шаблоны (п.10) - параметризованные сочетания SQL- и XPath-запросов, которые пользователи могут вызывать подобно хранимым процедурам. Schema - для хранения аннотированных схем (п.9), определяющих различные XML-представления реляционной базы данных, привязанной к текущей виртуальной директории, что дает возможность запрашивать ее при помощи XPath. Dbobject - для адресации XPath-запросов напрямую без аннотированной схемы к объектам БД (используется представление по умолчанию, рассмотренное в п.8). Поскольку в данном случае схем хранить не требуется, никакой физической директории ему не отвечает. SOAP - рассмотрение этого типа подкаталогов, равно как и все, что касается конфигурирования поддержки Web-сервисов, мы отложим до следующего параграфа.
После того, как виртуальная директория создана, все способы XML-взаимодействия с SQL Server: запросы SELECT ... FOR XML, XPath-запросы напрямую и через аннотированные схемы, XML-шаблоны, включая UpdateGrams, - становятся доступны через HTTP.

FOR XML-запрос из Скриптов 3, 4 передается, например, так:

http://localhost/SQLXML3?sql=SELECT c.ContactName, c.ContactTitle, o.OrderDate FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID WHERE c.ContactName = ? and year(o.OrderDate) = ? FOR XML AUTO&x=Maria Anders&y=1997&root=root

Здесь SQLXML3 - название виртуальной директории SQL Server, параметр sql содержит текст FOR XML-запроса, параметры x и y передают значения параметров запроса (имена параметров запроса в данном случае несущественны в отличие от, например, шаблонов), параметр root - название корневого тэга. В параметре xsl может передаваться имя локального файла, содержащего XSL-преобразование с тем, чтобы результаты запроса сразу получались отфильтрованными и отформатированными. Скрипт 15 демонстрирует отправку этого запроса методом GET, как если бы вышеприведенная строка была просто набрана в URL-строке браузера. Web-сервер отвечает Stream'ом, в котором передается XML-результат запроса от SQL Server. Этот Stream загружается в XML-документ, с которым затем работает приложение.


static void Execute_FORXMLQuery_HTTPGET()
{
HttpWebRequest rqst = (HttpWebRequest) WebRequest.Create("http://localhost/SQLXML3?sql=SELECT
c.ContactName, c.ContactTitle, o.OrderDate FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID
WHERE c.ContactName = ? and year(o.OrderDate) = ?
FOR XML AUTO&x=Maria Anders&y=1997&root=root");
 rqst.Method = "GET";
 rqst.Credentials = CredentialCache.DefaultCredentials;
 HttpWebResponse rspn = (HttpWebResponse) rqst.GetResponse();
 Stream s = rspn.GetResponseStream();
 XmlDocument xml = new XmlDocument();
 xml.Load(s); rspn.Close();
 ...
}

Скрипт 15

Скрипт 16 делает то же самое методом POST. Строка запроса передается не в URL, а во входном Stream'е, предварительно запрошенном у Web-сервера. Результаты получаются и обрабатываются аналогично предыдущему примеру.


static void Execute_FORXMLQuery_HTTPPOST()
{
 string query = "sql=SELECT c.ContactName, c.ContactTitle, o.OrderDate FROM Customers c
 INNER JOIN Orders o ON c.CustomerID = o.CustomerID WHERE c.ContactName = ?
 and year(o.OrderDate) = ? FOR XML AUTO&x=Maria Anders&y=1997&root=root";
 HttpWebRequest rqst = (HttpWebRequest) WebRequest.Create("http://localhost/SQLXML3");
 rqst.Method = "POST";
 rqst.Credentials = CredentialCache.DefaultCredentials;
 rqst.ContentLength = query.Length;
 StreamWriter sw = new StreamWriter(rqst.GetRequestStream());
 sw.Write(query); sw.Close();
 HttpWebResponse rspn = (HttpWebResponse) rqst.GetResponse();
 XmlDocument xml = new XmlDocument();
 xml.Load(rspn.GetResponseStream()); rspn.Close();
 ...
}

Скрипт 16

Форма, представленная в Скрипте 17, функционально эквивалентна 16. В случае формы параметры Web-запроса передаются в полях (связка "имя параметра / значение" соответствует атрибутам name / value). Htm-файл с формой может находиться в любом локальном каталоге, т.к. он служит только средством передачи Web-запроса с клиента на Web-сервер. При ссылках на аннотированные схемы (например, когда из формы выполняется не SQL-запрос, а шаблон) следует иметь в виду, что схемы должны находиться либо в текущем каталоге, либо в каком-нибудь из вложенных в него подкаталогов. Излишне напоминать, что в случае использования русских названий и других расширенных символов файл нужно сохранять не в ANSI, а как UTF-8 или подобном формате.


<head>
 <TITLE>Пример FOR XML через POST из формы</TITLE>
</head>
<body>
 Демонстрирует отправку FOR XML-запроса методом POST из формы
 <form action="http://localhost/sqlxml3" method="POST">
  <B>Имя клиента</B> <input type="text" name="name">
  <br>
  <B>Год</B> <input type="text" name="year">
  <input type="hidden" name="contenttype" value="text/xml">
  <input type="hidden" name="sql" value="
SELECT c.ContactName, c.ContactTitle, o.OrderDate FROM Customers c INNER JOIN Orders o
ON c.CustomerID = o.CustomerID WHERE c.ContactName like ? + '%' and year(o.OrderDate) = ?
FOR XML AUTO
">
  <input type="hidden" name="Root" value="Корень">
  <p><input type="submit" value="Сабмит">
 </form>
</body>

Скрипт 17

Все остальные типы XML-запросов к SQL Server передаются по HTTP совершенно аналогично Скриптам 15, 16. Различия составляют только правила формирования строки запроса к Web-серверу. Вот пример передачи по HTTP прямого XPath-запроса из п.8:

http://localhost/SQLXML3/dbobj/Customers[@ContactName>=$НачБуква]/@ContactName?НачБуква='X'

Dbobj - подкаталог виртуальной директории типа Dbobject, определенной при создании виртуальной директории SQLXML3. XPath-запрос входит в URI, параметром служит параметр XPath-запроса.

Вот пример XPath-запроса через аннотированную схему, из п.9 (Скрипт 10).

http://localhost/SQLXML3/schem/SQLSchema1.xsd/Клиент[Адрес/Страна='Spain'%20or%20Адрес/Страна='France']?root=Клиенты

При желании можно передать параметры:

http://localhost/SQLXML3/schem/SQLSchema1.xsd/Клиент[Адрес/Страна=$Country]?Country=Spain&root=Клиенты

Schem - виртуальный подкаталог типа Schema, предполагается, что файл с аннотированной схемой SQLSchema1.xsd находится в нем. В качестве еще одного параметра в строке URL можно передавать ...&xsl=<Путь к файлу с XSLT-преобразованием>.
Шаблоны должны храниться в подкаталоге типа Template. Обращение к шаблону происходит следующим образом:


http://localhost/SQLXML3/templ/XmlTemplate1.xml?Колво=20

По сути, это HTTP-реализация Скрипта 11: происходит вызов шаблона XmlTemplate1 и передача ему одного из параметров (для другого используется значение по умолчанию). Текст шаблона приводился на рис.6. Кроме того, как мы видели в завершение п.10, можно вызывать не только шаблоны, хранящиеся на сервере, но (при наличии прав), передать в HTTP-запросе текст собственного шаблона, который сервер выполнит аналогично хранимым шаблонам (т.н. ad hoc-шаблон). Это очень похоже на передачу FOR XML-запроса, только вместо параметра sql используется параметр template:

http://localhost/SQLXML3?template=<Root xmlns:sql='urn:schemas-microsoft-com:xml-sql'><sql:query> SELECT TOP 1 * FROM Employees FOR XML AUTO</sql:query></Root>

Большие ad-hoc шаблоны проще передавать методом POST:


static void Execute_FORXMLQuery_HTTPPOST()
{
 string query = "template=<Солянка xmlns:sql='urn:schemas-microsoft-com:xml-sql'>
 <sql:header><sql:param name='q'></sql:param><sql:param name='s'>1000
 </sql:param></sql:header>
 <sql:query client-side-xml='0'>SELECT TOP 1 * FROM Employees FOR XML AUTO</sql:query>
 <sql:query client-side-xml='1'>SELECT c.ContactName, COUNT(o.OrderDate) AS 'Кол-во' F
 ROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.ContactName
 HAVING COUNT(o.OrderDate) >= @q FOR XML NESTED</sql:query>
 <sql:xpath-query mapping-schema='Schemas\\SQLSchema1.xsd'>
 Клиент[number(Заказы/Заказ/Стоимость)>$s]
 </sql:xpath-query>
 <sql:xpath-query mapping-schema='Schemas\\SQLSchema2.xsd'>Сотрудник</sql:xpath-query>
 <Солянка>&q=20";
 HttpWebRequest rqst = (HttpWebRequest) WebRequest.Create("http://localhost/SQLXML3");
 rqst.Method = "POST";
 rqst.ContentType = "application/x-www-form-urlencoded";
 byte[] postData = System.Text.Encoding.UTF8.GetBytes(query);
 rqst.ContentLength = postData.Length;
 rqst.Credentials = CredentialCache.DefaultCredentials;
 rqst.GetRequestStream().Write(postData, 0, postData.Length);
 HttpWebResponse rspn = (HttpWebResponse) rqst.GetResponse();
 XmlDocument xml = new XmlDocument();
 xml.Load(rspn.GetResponseStream()); rspn.Close();
 ...
}

Скрипт 18

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

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

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

Отечественные статьи

Что нового в XPath 2.0
Эта статья предлагает краткую экскурсию по некоторым новым особенностям языка XPath 2.0. В ней полагается, что вы уже имеете базовое понимание языка XPath 1.0, и что, скорее всего, вы использовали его в контексте языка XSLT. Эта статья ни в коем случае не является полным обзором, она только лишь указывает на некоторые наиболее примечательные особенности....
Стилевая ахинея или Миф об отделении стиля и содержания
Я прочел массу руководств по HTML, онлайновых и оффлайновых, и такое чувство, что все они рекомендуют отделять стиль от содержания, представление от структуры, вид от сущности. Они убеждают, что хорошие дизайнеры держат все отдельно, спасаясь этим от разных напастей: неуправляемости, отсутствия простоты использования, профессиональной некомпетентности...
СРАВНИТЕЛЬНЫЙ АНАЛИЗ НОТАЦИЙ (ARIS, IDEF)"
Основная задача данного аналитического исследования состоит в том, чтобы ответить на ряд вопросов, возникающих у руководителей и специалистов в начале проекта по моделированию и реорганизации бизнес-процессов предприятия. ...
Управление надежным хранением
От сетевой организации внешней памяти сегодня ждут больших преимуществ в производительности, доступности данных, увеличения объемов хранения и масштабируемости, снижения затрат на хранение. Однако все эти ожидания останутся лишь ожиданиями без эффективного инструмента централизованного управления....
Проектирование реляционных баз данных
Перед началом детального обсуждения способов проектирования баз данных необходимо отметить, что любая база данных является составной частью некой информационной системы (ИС), которая подразумевает не только хранение данных, но и их обработку. Поэтому, проектированию данных всегда сопутствует (а чаще предшествует) проектирование алгоритмов их использования. Здесь мы рассмотрим все этапы проектирования информационной системы: от функционального моделирования предметной области, до построения структуры реляционной базы данных...
Средства Data Mining в Microsoft SQL Server 2000
Термин Data Mining, переводимый обычно как извлечение данных, или интеллектуальный анализ, в последнее время встречается часто. Это связано в первую очередь с растущим интересом к данной теме со стороны предприятий малого и среднего бизнеса, а не только узкого круга специалистов, как это было несколько лет назад...
За пределами W3C XML Schema
Для проверки допустимости документа как части потока приложения можно написать W3C XML Schema. Это вполне естественный подход, хотя W3C XML Schema - всего лишь часть концепции проверки допустимости. В этой статье мы рассмотрим несколько уровней процесса проверки достоверности, который начинается с проверки допустимости схемы (schema), но также использует XPath и XSLT для установления ограничений на содержимое (контент) документа, которые оказываются слишком сложными или даже неприемлемыми для W3C XML Schema...
Обзор компонентов, используемых для связи с базами данных
Компоненты, используемые для связи с базами данных, расположены в библиотеки компонентов на странице Data Access (доступ к данным) и Data Controls (управление данными)....
Создание приложений для работы с базами данных
Реляционная база данных это набор таблиц, процедур и др. объектов, поддерживающих ее работу. Таблица имеет имя – идентификатор, по которому на нее можно сослаться...
Приложения с несколькими связанными таблицами
Построим приложение с несколькими связанными друг с другом таблицами. В базе данных dbP две таблицы связаны друг с другом по ключу. Таблица Dep, содержащая список подразделений учреждения (поле Dep) и характеристику этих подразделений (поле Proizv булева типа, в котором true означает «производство», а false – «Управление»), является головной (master), а таблица Pers (содержащая список сотрудников) – вспомогательной, детализирующей (detail)....
Хранимые процедуры
procedure TForm1.BGetClick(Sender: TObject);...
Компонент Query
Компонент Query имеет большинство свойств и методов, совпадающих с Table...
Как организовать горячий резерв БД
В некоторых информационных системах требуется обеспечить бесперебойный доступ к БД невзирая на всевозможные сбои и отказы оборудования и программ. Задача придать системе "высокую степень доступности" не имеет единственного решения в ИТ, а вместо этого имеет гамму разных решений, каждое со своими выгодами и ограничениями. Многие из таких решений реализованы и в Oracle рядом специальных конфигураций системы СУБД-БД. Одно из самых доступных - организация "горячего резерва". В Oracle для обозначения горячего резерва используется термин "standby"...
Особенности работы с Microsoft SQL Server в Delphi 5
ActiveX Data Objects (ADO) — надстройка над интерфейсом OLE DB, позволяющая обеспечить бизнес-приложениям высокоуровневый доступ к данным. Эта технология включена в Windows 2000, а для остальных версий Windows доступна в виде бесплатного обновления. ADO автоматически инсталлируется на компьютер при установке клиента Microsoft SQL Server...
Пример описания предметной области с использованием Unified Modeling Language
Моделирование предметной области является одним из наиболее важных этапов работ при проектировании программных систем масштаба предприятия...

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

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

BUG: Incorrect Identity Value with Self-Referencing FOREIGN KEY Constraint (Q322818)
BUG: Linked Server Query Is Not Successful and Error Message 7377 Occurs (Q323711)
BUG: Starting the SQL Server Agent is Unsuccessful on a Backup Domain Controller (Q320338)
BUG: The SQL Server VDI Backup and Restore Operations Are Not Successful and the CoCreateInstance Error Is Generated (Q323602)
BUG: WMI SQL Provider Does Not Work When Remotely Requesting Data from a Clustered SQL Server (Q323283)
DOC: BOL: Implicit Cursor Conversion Table Incorrectly States You Must Have Covered Index for a Dynamic Cursor with an ORDER BY Clause (Q324176)
DOC: SQL Server Books Online Includes Incorrect Documentation on Distribution Agent Profile Parameters in Transactional Replication (Q322667)
FIX: Bulk Insert with TABLOCK Hint May Result in Errors 8929 and 8965 When You Run CHECKDB (Q320434)
FIX: Dialog Box Opens During Backup Process Prompting You To Insert Disk in Drive A (Q281345)
FIX: Distribution Agent May Fail with Syntax Error (Q323609)
FIX: Error Message 9004 May Occur When You Restore a Log That Does Not Contain Any Transactions (Q324469)
FIX: Export of Specific DBCS to Excel Fails When Text Type is Used (Q299299)
FIX: Incorrect Values with Queued Updating Replication When Money Values Are Between 0 and 1 (Q318870)
FIX: Non-OCR/Non-Display TIFF Data Indexed by SQL Server Full-Text (Q321820)
FIX: Problems Occur When Connecting to SQL Server from ADO Application (Q300519)
FIX: Query Results in Message Body of xp_sendmail are Empty If You Use ansi_attachments Option (Q314304)
FIX: Query with OUTER JOINs May Neglect Built-in Function in WHERE Clause (Q323553)
FIX: Replication Queued Updating Supports Unique Constraints (Q322384)
FIX: Slow Compile Time and Execution Time with Query That Contains Aggregates and Subqueries (Q324186)
FIX: SP1 Regression: Table Scan Chosen Over Index Seek for INSERT/SELECT Statement Against the Same Table (Q306374)
FIX: SQL Mail Operations Are Not Thread Safe When You Use Them in Conjunction with the xp_stopmail Stored Procedure (Q307932)
FIX: SQL Server 7.0 Slower than SQL Server 6.5 on Join with View Containing CASE and Subquery (Q247191)
FIX: SQL Server 7.0 sp_OASetProperty Method Does Not Accept More Than 255 Characters (Q324146)
FIX: SQL Server Text Formatting Functions Contain Unchecked Buffers (Q304851)
FIX: SQLOLEDB Returns No Data When Using AutoFetch Option with Fast Forward Cursors (Q303446)
FIX: Unable to Connect to SQL Server 2000 When Certificate Authority Name Is the Same As the Host Name of the Windows 2000 Computer (Q302409)
HOW TO: Change Domains for a SQL Server 2000 Failover Cluster (Q319016)
HOW TO: Implement Forms-Based Authentication in Your ASP.NET Application by Using Visual Basic .NET (Q308157)
HOW TO: Perform Bulk Updates and Inserts Using OpenXML with .NET Providers in Visual C# .NET (Q315968)
HOW TO: Plan SQL Server CE Security for Mobile Devices in IIS and SQL Server 2000 Windows CE Edition (Q314783)
HOWTO: Configure MSDTC in a Windows 2000 Cluster Environment (Q290624)
INF: Avoid Using Device Names as Database Names (Q323161)
INF: Causes of SQL Transaction Log Filling Up (Q110139)
INF: Creating Large-Scale, Highly Available OLAP Sites (Q322596)
INF: Great Plains and SQL Server Benchmark Tests (White Paper) (Q322618)
INF: How to Run a DTS Package as a Scheduled Job (Q269074)
INF: How to Turn On Tracking of CPU Data for the Sysprocesses CPU Column (Q322109)
INF: Implementing Referential Integrity and Cascading Actions (White Paper) (Q322323)
INF: List of Bugs Fixed in SQL Server 2000 Service Pack 1 (1 of 2) (Q290212)
INF: Moving SQL Server Databases to a New Location with Detach/Attach (Q224071)
INF: Performance Study of Microsoft Data Mining Algorithms (Q322325)
INF: Powerful and Accessible Analysis for Business (White Paper) (Q322719)
INF: SQL Server 2000 Full-Text Search Deployment White Paper (Q323739)
INF: SQL Server 2000 Security Update for Service Pack 2 (Q316333)
INF: SQL Server 6.5 Stored Procedure To Remove Replication From Restored Database (Q171913)
INF: Understanding Merge Replication Conflict Detection and Resolution (Q315514)
INF: You Are Prompted for File Location During MSDE 2.0 SP2 Setup (Q317620)
INFO: Names and IP Addresses That an MSDTC Client in a Cluster Environment Must Have (Q311846)
Information About BackOffice Program Support on Windows 2000 Datacenter Server-Based Computers (Q266650)
PRB: "COMPUTE BY Statements Not Supported" Exception When You Use COMPUTE BY Clause with SQL Server (Q311540)
PRB: Data Transformation Services Jobs May Fail Because the Path for Dtsrun.exe Cannot Be Found (Q322746)
PRB: Error in SQL Server 7.0 When You Call Command.Prepare Before You Add Parameters Using Visual Basic .NET (Q310368)
PRB: Error in SQL Server 7.0 When You Call Command.Prepare Before You Add Parameters Using Visual C# .NET (Q311348)
PRB: Pull Subscription Status Is "Never Started" If Job Name Is More Than 100 Characters (Q317391)
PRB: SELECT on a VIEW Generates an Access Violation When an 'IN' or 'OR' Clause Contains More Than 19 Values (Q319054)
PRB: sp_grantlogin "NT AUTHORITY\SYSTEM" Fails on Microsoft Windows NT 4.0 (Q322988)
PRB: SQL Server 7.0 Acmsetup.exe Setup Application Fails (Q305680)
PRB: The Error "Cannot Open .pst File" Occurs When You Use a POP3 Server Profile with SQL Mail (Q313969)
PRB: You Are Prompted for the CD Key During the SQL Server 2000 Evaluation Edition Remote Installation (Q324559)

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

ФОРУМ SQL.RU

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

BDE Client and deadlocks???
Рубли без копеек
BDE [new]
Зарплата специалиста по MS SQL
Репликация транзакций
Вот такой вопрос !
Вставка результата функции (table-valued) в таблицу
какие из версий SQL могут работать нетолько во внутренней сети но и с доступом с [new]
LEFT JOIN - чудеса
Как перевести формат TDateTime Delphi в формат DateTime MS SQL Server?
Вопрос по безопастности SQL
Какой тип данных выбрать
Такая вот задачка
Just for fun
Загнать NULL в столбец
Удаленное бэкап-устройство
MSSQL & EXCEL
Тем, кто писал хр-процедуры на C++!!
SQL Server и 2 процессора
Migration 7.0 ->2K...Problems???
XML/XSL [new]
Использование ntext
Пользовательская расширенная хран. проц. под Ms SQL 2000
Real-time OLAP
Вешалка [new]
Как получить данные из системной процедуры?
Как сделать курсор для update???
Как пронумеровать строки резльтирующего набора?
Что-то не разберусь с алертами
Добавление записи в базу SQL Server
Экзамены по SQL Server 2000 - 2
Какой выбрать Collation! Очень надо и срочно.
SQL_DMO and user-defined function
Capability not supported
Резервное копирование
Проблемы отладки ХП в MSSQL2000
Чо это за deadlock ?
MSSQL 2000 Не возвращаются ошибки из хранимых процедур
FK between diffrent Servers?
Вопросик по OLAP
Разница между isqlw.exe, isql.exe, osql.exe
Помогите пожалуйста
Расшифровщик кода хранимых процедур для SQL Server 7
Распределенная база данных
Все вешаюсь...
пользовательская функция
Изпользование between с полями типа datetime
permisions и хранимые процедуры
Как хранить файлы непосредственно в базе данных?
HELP [new]
производительность UDF
Время исполнения запроса ???
Область видимости и жизни # и ## таблиц
Help/ "General network error"
Выборка последних записей в наборе
He выполняется RESTORE

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

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

Проблемы с репликацией
Форумы SQL
Банковский календарь
ИЩУ СПЕЦА ДЛЯ ПРОВ. УЧЕБЫ С ПРОГРАММЕРАМИ
Ошибки и транзакция
trigger "instead of" и Транзакция
Установка SQL Server 7.0 Enterprise под W2K Server ?
SQLDMO not registered...???
SQL Server
Резервное копирование в именованный канал
Как поменять collation на Server а не на database
Управление сообщениями от MS SQL
как DateTime подсунуть в bcp_bind()? Указатель на структуру dbdatetime?
OWC10 - Как добраться до свойств(значений) ячеки в заголовке?
connection lost... Можно ли обойти?
Как восстановить базу MS SQL 6.5 если есть .DAT файл
Проблемы с Manager'ом и Analyzer'ом
Не восстанавливается бэкап!!!
Problema with picture : Sqlserver and Crystal Report7
из online в offline
MSSQL 2000 Перехват ошибок
Список Групп Windows, в которые входит текущий Пользователь
Как вернуть *.mir -> *.dat? Сервер SQl 6.5
DTC+Replication? [new]
Re [new]
XML и Query Analizer
Ошибка при восстановлении из backup

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

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

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

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

#103<<  #104

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

sql.ru

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




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

В избранное