Компоненты доступа к данным Microsoft

редактировать
структура
Компоненты доступа к данным Microsoft
MDAC предоставляет единую структуру для доступа к различным источникам данных на их платформе Windows MDAC обеспечивает единую структуру для доступа к различным источникам данных на своих Windows платформа
Разработчик (и) Microsoft
Окончательный выпуск 2.8 SP1 (2.81.1117.6) / май 2005 г.
Операционная система Windows 98, Windows ME, Windows NT 4, Windows 2000, Windows XP, Windows Server 2003, Windows 7, Windows 10
Тип База данных
Лицензия Бесплатное ПО
Веб-сайтmsdn2.microsoft.com / en-us / data / aa937729.aspx

Компоненты доступа к данным Microsoft (MDAC ; также известный как Windows DAC ) структура взаимосвязанных технологий Microsoft, которая позволяет программистам единый и всеобъемлющий способ разработки приложений, которые могут получить доступ практически к любому хранилищу данных. Его компоненты включают: объекты данных ActiveX (ADO), OLE DB и Open Database Connectivity (ODBC). Также было несколько устаревших компонентов, таких как Microsoft Jet Database Engine, MSDASQL (поставщик OLE DB для ODBC) и Remote Data Services (RDS). Некоторые компоненты также стали устаревшими, например прежние объекты доступа к данным API и удаленные объекты данных.

Выпущена первая версия MDAC в августе 1996 года. В то время Microsoft заявила, что MDAC был больше концепцией, чем отдельной программой и не имел широко распространенного метода распространения. Позже Microsoft выпустила обновления для MDAC в виде распространяемых через Интернет пакетов. В конце концов, более поздние версии были интегрированы с Microsoft Windows и Internet Explorer, а в MDAC 2.8 SP1 они перестали предлагать MDAC в качестве распространяемого пакета.

На протяжении всей своей истории MDAC подвергался нескольким недостаткам безопасности, которые приводили к таким атакам, как атака с повышенными привилегиями, хотя уязвимости обычно устранялись в более поздние версии и довольно быстро. Текущая версия - 2.8 пакет обновления 1, но у продукта было много разных версий, и многие его компоненты устарели и были заменены новыми технологиями Microsoft. MDAC теперь известен как Windows DAC в Windows Vista.

Содержание

  • 1 Архитектура
    • 1.1 Сетевая библиотека Microsoft SQL Server
    • 1.2 OLE DB
    • 1.3 Универсальный канал передачи данных
    • 1.4 ODBC
    • 1.5 ADO
    • 1.6 ADO.NET
  • 2 Устаревшие и устаревшие компоненты
    • 2.1 Microsoft Jet Database Engine и JRO
    • 2.2 MSDASQL и Oracle ODBC
    • 2.3 Службы удаленных данных (RDS)
    • 2.4 SQLXML
    • 2.5 Устаревшие компоненты
  • 3 История
    • 3.1 MDAC 1.0
    • 3.2 MDAC 1.5
    • 3.3 MDAC 2.0
    • 3.4 MDAC 2.1
    • 3.5 MDAC 2.5
    • 3.6 MDAC 2.6
    • 3.7 MDAC 2.7
    • 3.8 MDAC 2.8
    • 3.9 Windows DAC 6.0
    • 3.10 Проверка версии
  • 4 Ссылки
  • 5 Дополнительная литература
  • 6 Внешние ссылки

Архитектура

Последняя версия MDAC (2.8) состоит из нескольких взаимодействующих компонентов, каждый из которых для Windows, за исключением ODBC (который доступен на нескольких платформах). Архитектуру MDAC можно рассматривать как три уровня: уровень интерфейса программирования, состоящий из ADO и ADO.NET, уровень доступа к базе данных, разработанный такими поставщиками баз данных, как Oracle и Microsoft (OLE DB, управляемые поставщики.NET и драйверы ODBC ), а также саму базу данных. Все эти уровни компонентов доступны для приложений через MDAC API. Сетевая библиотека Microsoft SQL Server, проприетарный метод доступа, специфичный для Microsoft SQL Server, также включен в MDAC. Разработчикам приложений Windows рекомендуется использовать ADO или ADO.NET для доступа к данным, преимущество состоит в том, что пользователи прикладной программы не ограничены в выборе архитектуры базы данных, за исключением того, что она должна поддерживаться MDAC. Естественно, у разработчиков по-прежнему есть возможность писать приложения с прямым доступом к OLE DB и ODBC.

Сетевая библиотека Microsoft SQL Server

Сетевая библиотека Microsoft SQL Server (также известная как Net-Lib) используется Microsoft SQL Server для чтения и записи данных с использованием множества различных сетей. протоколы. Хотя Net-Lib специфична для SQL Server, Microsoft включает ее в состав MDAC. SQL Server использует библиотеку Open Data Services (ODS) для связи с Net-Lib, которая напрямую взаимодействует с подсистемой Win32 строки операционной системы Windows NT. Сетевая библиотека SQL Server управляется с помощью клиентской сетевой утилиты, которая входит в комплект поставки SQL Server.

Каждый сетевой протокол, поддерживаемый Net-Lib, имеет отдельный драйвер (не путать с драйвером устройства ) и поддерживает сеансовый уровень в своем протоколе. стек. Существует два основных типа Net-Lib: основной и дополнительный. Основная Net-Lib состоит из Super Socket Net-Lib и Net-Lib с общей памятью, в то время как существует множество дополнительных Net-Lib, включая TCP / IP и именованные каналы сети. библиотеки (именованные каналы - это метод связи с другими процессами через постоянный в системе конвейер, которому присвоена идентификационная информация). Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) взаимодействует через первичные Net-Libs.

Super Socket Net-Lib занимается межкомпьютерным обменом данными и координирует вторичные Net-Libs, хотя вторичный Net-Lib TCP / IP является исключением, поскольку он вызывает Windows Sockets 2 API напрямую. Banyan VINES, AppleTalk, ServerNet, IPX / SPX, Giganet и RPC Net-Libs были удалены с MDAC 2.5 и новее. Маршрутизатор сетевой библиотеки должен был управлять всеми этими протоколами, однако теперь маршрутизатор управляет только именованными вторичными каналами Net-Lib. Super Socket Net-Lib также обрабатывает шифрование данных с помощью Windows SSL API.

Net-Lib с общей памятью, с другой стороны, управляет подключениями между несколькими экземплярами SQL Server, существующими на одном компьютере. Он использует область разделяемой памяти для связи между процессами. Это по своей сути безопасно; нет необходимости в шифровании данных между экземплярами SQL Server, которые существуют на одном компьютере, поскольку операционная система не разрешает другим процессам доступ к области общей памяти экземпляров.

Net-Lib также может поддерживать олицетворение контекста безопасности вошедшего в систему пользователя для протоколов, которые поддерживают аутентифицированные соединения (называемые доверенными соединениями). Это позволяет Net-Lib обеспечивать интегрированный механизм аутентификации при входе в систему с использованием аутентификации Windows. Аутентификация Windows не поддерживается в Windows 98 или Windows Me.

OLE DB

OLE DB (также называемый OLEDB или OLE-DB) позволяет приложениям MDAC получать доступ к различным типам ([data]) магазины единообразно. Microsoft использовала эту технологию, чтобы отделить приложение от данных, которые могут храниться на веб-сайте, хранилище данных, к которому ему необходимо получить доступ. Это было сделано потому, что разным приложениям необходим доступ к разным типам и источникам данных, и им не обязательно знать, как получить доступ к специфическим для технологии функциям. Технологии концептуально делятся на потребителей и поставщиков. Потребители - это приложения, которым необходим доступ к данным, а поставщик - это программный компонент, который предоставляет интерфейс OLE DB с помощью объектной модели компонентов (или COM).

OLE DB - это технология интерфейса доступа к базе данных, используемая MDAC. Провайдеры OLE DB могут быть созданы для доступа к таким простым хранилищам данных, как текстовый файл или электронная таблица, через такие сложные базы данных, как Oracle и SQL Server. Однако, поскольку разные технологии хранения данных могут иметь разные возможности, поставщики OLE DB могут не реализовывать все возможные доступные интерфейсы. Доступные возможности реализуются за счет использования COM-объектов - поставщик OLE DB сопоставляет функциональные возможности технологии хранилища данных с конкретным COM-интерфейсом. Microsoft называет доступность интерфейса «зависящей от поставщика», поскольку она может быть неприменима в зависимости от используемой технологии базы данных. Кроме того, однако, поставщики могут также расширить возможности хранилища данных; эти возможности известны как службы на языке Microsoft.

Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) - это поставщик OLE DB, который Microsoft предоставляет для Microsoft SQL Server начиная с версии 6.5.

Универсальная ссылка данных

Файлы универсальной связи данных (или «файлы.udl») предоставляют общий пользовательский интерфейс для указания атрибутов соединения. Пользователь может использовать диалоговое окно Свойства связи с данными , чтобы сохранить информацию о подключении в файле.udl в качестве альтернативы прямому указанию их вручную в строке подключения. Следовательно, эти файлы обеспечивают удобный уровень косвенного обращения. Кроме того, в диалоговом окне указывается ряд альтернативных поставщиков данных OLE DB для различных целевых приложений.

ODBC

Open Database Connectivity (ODBC) - это собственный интерфейс, доступ к которому осуществляется через язык программирования (обычно C ), который может выполнять вызовы в родную библиотеку. В MDAC этот интерфейс определяется как DLL. Для каждой базы данных, к которой необходимо получить доступ, необходим отдельный модуль или драйвер. Функции ODBC API реализуются этими специфичными для СУБД драйверами. Драйвер, который Microsoft предоставляет в MDAC, называется драйвером ODBC для SQL Server (SQLODBC) и (как следует из названия) разработан для Microsoft SQL Server. Он поддерживает SQL Server v6.5 и выше. ODBC позволяет программам использовать запросы SQL, которые будут обращаться к базам данных без необходимости знать проприетарные интерфейсы к базам данных. Он обрабатывает запрос SQL и преобразует его в запрос, понятный отдельной системе баз данных. По заявлению Microsoft, «после SQL Server 2012 драйвер ODBC будет обновлен с учетом самых последних функций сервера, включая базу данных SQL Microsoft Windows Azure, и выпущен как драйвер Microsoft ODBC для SQL Server».

ADO

Объекты данных ActiveX (ADO ) - это интерфейс программирования высокого уровня для OLE DB. Он использует иерархическую модель объекта, чтобы позволить приложениям программно создавать, извлекать, обновлять и удалять данные из источников, поддерживаемых OLE DB. ADO состоит из ряда иерархических объектов и коллекций на основе COM, объекта, который действует как контейнер для многих других объектов. Программист может напрямую обращаться к объектам ADO для управления данными или может отправить запрос SQL в базу данных через несколько механизмов ADO. ADO состоит из девяти объектов и четырех коллекций.

Коллекции:

  1. Поля: Эта коллекция содержит набор объектов Поля. Коллекция может использоваться либо в объекте Recordset, либо в объекте Record. В объекте Recordset каждый из объектов Field, составляющих коллекцию Fields, соответствует столбцу в этом объекте Recordset. В объекте записи поле может быть абсолютным или относительным URL-адресом, который указывает на пространство имен с древовидной структурой (используется для поставщиков полуструктурированных данных, таких как поставщик Microsoft OLE DB для публикации в Интернете) или в качестве ссылки к объекту Stream по умолчанию, связанному с этим объектом Record.
  2. Свойства: Объект может иметь более одного объекта Property, которые содержатся в коллекции свойств объекта.
  3. Параметры: Объект Command может есть несколько команд Parameter для изменения предопределенного поведения, и каждый из объектов Parameter содержится в коллекции Parameters объекта Command
  4. Ошибки: Все ошибки, созданные поставщиком, передаются в коллекцию объектов Error, в то время как сама коллекция Errors содержится в объекте Connection. Когда операция ADO создает ошибку, коллекция очищается, и в ней создается новая группа объектов Error.

Это следующие объекты:

  1. Соединение: Объект соединения - это соединение ADO с хранилищем данных. через OLE DB. Объект подключения хранит информацию о сеансе и предоставляет методы подключения к хранилищу данных. Поскольку в некоторых хранилищах данных используются разные методы установления соединения, некоторые методы могут не поддерживаться в объекте подключения для определенных поставщиков OLE DB. Объект подключения подключается к хранилищу данных с помощью своего метода «Open» со строкой подключения, которая определяет подключение как список пар ключ-значение (например: «Provider = 'SQLOLEDB'; Data Source = 'TheSqlServer'; Исходный каталог = "Борей"; интегрированная безопасность = "SSPI";"). Начало которого должно указывать на тип подключения к хранилищу данных, который требуется объекту подключения. Это должно быть либо:
    • поставщик OLE DB (например, SQLOLEDB), используя синтаксис "provider ="
    • имя файла, используя синтаксис "file name ="
    • удаленного поставщика и сервера (см. RDS), используя синтаксис «Удаленный поставщик =» и «Удаленный сервер =»
    • абсолютный URL-адрес, используя синтаксис "URL ="
  2. Команда: После того, как объект соединения устанавливает сеанс с источником данных, инструкции отправляются поставщику данных через объект команды. Командный объект может отправлять SQL-запросы напрямую поставщику с помощью свойства CommandText, отправлять параметризованный запрос или хранимую процедуру с помощью объекта Parameter или коллекции Parameters или запускать запрос и возвращать результаты в объект набора данных с помощью метода Execute. Есть несколько других методов, которые могут использоваться в объекте Command, относящемся к другим объектам, таким как объекты Stream, RecordSet или Connection.
  3. Recordset: recordset - это группа записей, и может поступать из базовой таблицы или в результате запроса к таблице. Объект RecordSet содержит коллекцию Fields и коллекцию Properties. Коллекция Fields - это набор объектов Field, которые являются соответствующими столбцами в таблице. Коллекция Properties - это набор объектов Property, который определяет конкретную функциональность поставщика OLE DB. RecordSet имеет множество методов и свойств для изучения имеющихся в нем данных. Записи можно обновить в наборе записей, изменив значения в записи и затем вызвав метод Updateили UpdateBatch. Добавление новых записей выполняется с помощью функции AddNew, а затем путем вызова метода Updateили UpdateBatch. Записи также удаляются в наборе записей с помощью метода Delete, а затем путем вызова метода Update. Однако если по какой-либо причине удаление не может произойти, например, из-за нарушений в ссылочной целостности, то набор записей останется в режиме редактирования после вызова метода Update. Программист должен явно вызвать функцию CancelUpdate, чтобы отменить обновление. Кроме того, ADO может откатывать транзакции (если это поддерживается) и отменять пакетные обновления. Наборы записей также можно обновить одним из трех способов: посредством немедленного обновления, посредством пакетного обновления или с помощью транзакций:
    1. Немедленно: Набор записей заблокирован с помощью adLockOptimisticили adLockPessimisticблокировка. Данные обновляются в источнике данных после изменения записи и вызова метода Update.
    2. Пакет: Набор записей блокируется с помощью adLockBatchOptimisticи каждый раз Обновлениевызывается обновлением данных во временном буфере. Наконец, когда вызывается UpdateBatch, данные полностью обновляются обратно в источнике данных. Преимущество этого заключается в том, что все это делается в памяти, и в случае возникновения проблемы вызывается UpdateCancel, и обновления не отправляются в источник данных
    3. Транзакция: Если поставщик OLE DB позволяет использовать транзакции. Чтобы начать транзакцию, программист вызывает метод BeginTransи выполняет необходимые обновления. Когда все они будут выполнены, программист вызывает метод CommitTrans. RollbackTransможет быть вызван для отмены любых изменений, сделанных внутри транзакции, и отката базы данных до состояния до начала транзакции
  4. Запись: Этот объект представляет единицу запись в базе данных и содержит коллекцию полей. RecordSet состоит из коллекции объектов Record.
  5. Stream: Поток, в основном используемый в объекте RecordSet, является средством чтения и записи потока байтов. В основном он используется для сохранения набора записей в формате XML, для отправки команд поставщику OLE DB в качестве альтернативы объекту CommandText и для хранения содержимого двоичного или текстового файла.
  6. Параметр: Параметр является средством изменения поведения общей части функциональности, например, хранимая процедура может иметь разные параметры, передаваемые ей в зависимости от того, что необходимо сделать; они называются параметризованными командами.
  7. Поле: Каждый объект Record содержит множество полей, а объект RecordSet также имеет соответствующий объект Field. Объект Field объекта RecordSet соответствует столбцу в таблице базы данных, на которую он ссылается.
  8. Свойство: Этот объект специфичен для поставщика OLE DB и определяет возможность, реализованную поставщиком. Объект свойства может быть либо встроенным свойством - это четко определенное свойство, уже реализованное ADO и, следовательно, не может быть изменено, - либо динамическим свойством, определенным базовым поставщиком данных и может быть изменено
  9. Ошибка: Когда во время использования ADO возникает ошибка поставщика OLE DB , в коллекции ошибок создается объект Error. Однако другие ошибки не попадают в объект Error. Например, любые ошибки, возникающие при манипулировании данными в объекте RecordSet или Field, хранятся в свойстве Status.

ADO.NET

ADO.NET - последняя версия ADO (после ADO 2.8, теперь часто называемый ADO Classic) и является частью стека MDAC 2.8 наряду с классическим ADO. Он построен на Microsoft.NET. Хотя иногда это рассматривается как эволюционный шаг по сравнению с ADO, некоторые фундаментальные структурные изменения были внесены Microsoft. ADO.NET работает через.NET Managed Provider, модифицированную версию поставщика OLE DB, специально разработанную для.NET. Структура объекта больше не строится вокруг объекта Recordset. Вместо этого объект набора данных используется для хранения данных, собранных из нескольких источников. Это прозрачно для программиста. В отличие от старого набора записей ADO, дизайн набора данных способствует использованию отключенных данных. Концептуально объект Dataset можно рассматривать как отдельную небольшую реляционную базу данных в памяти, которая позволяет манипулировать данными в любом направлении. Для распространения изменений обратно в базу данныхиспользуется объект DataAdapter, который передает данные из источника данных в объект DataSet. Курсоры также устарели в ADO.NET и были заменены объект DataReader, который используется для обработки большого списка результатов по одной записи за раз без их сохранения.

Устаревшие и устаревшие компоненты

MDAC - это постоянно развивающаяся инфраструктура компонентов. Таким образом было объявлено несколько компонентов, которые ранее входили в его состав, но с тех пор были объявлены устаревшими или полностью удалены из платформы.

Microsoft Jet Database Engine и JRO

Jet означает Joint Engine Technology и был ядром базы данных, используемым для Microsoft Access, Microsoft Сервер Exchange и Visual Basic. Jet был частью системы управления реляционными базами данных (RDBMS) и предлагал единый интерфейс, которое могло использовать другое программное обеспечение для доступа к базам данных Microsoft. Jet также обеспечивает поддержку безопасности, ссылочной целостности, обработки транзакций, индексции, записи и блокировки страниц, а также репликации данных. В более поздних версиях Jet ядро ​​было расширено для выполнения SQL запросов, хранения символьных данных в формате Unicode, создания представлений и разрешено двунаправленной репликации с Microsoft SQL Server.. С тех пор его заменили на MSDE.

. В Jet было три модуля. Одним из них был Native Jet ISAM Driver, библиотека динамической компоновки Jet (DLL), которая могла напрямую управлять файлами базы данных Microsoft Access (MDB), которая была модифицирована база данных данных метода индексированного последовательного доступа (ISAM). Еще одними из модулей были драйверы ISAM, библиотеки DLL, которые разрешили доступ к базам данных ISAM, среди которых были Xbase, Paradox, Btrieve и файлы FoxPro. Последним модулем была DLL объектов доступа к данным (DAO), DAO позволяла программистам получить доступ к движку Jet. По сути, это был объектно-ориентированный язык данных, используя приложениями Access Basic и Visual Basic для доступа к Jet.

Аналогичным образом поставщик Microsoft Jet OLE DB и объекты репликации (JRO), позволяющие репликацию между новыми данными Jet, были удалены из MDAC 2.6

MSDASQL и Oracle ODBC

Microsoft Поставщик OLE DB для ODBC, или MSDASQL, был поставщик OLE DB для доступа объектов данных ActiveX к базам данных через любой драйвер ODBC. Microsoft предоставила несколько поставщиков OLE-DB (для службы индексирования, Active Directory, Jet, SQL Server, Oracle (MSDAORA) и публикации в Интернете), однако, если не указано, ADO по умолчанию использовала использование MSDASQL в качестве поставщика по умолчанию. После MDAC 2.5 и драйвер Oracle ODBC и MSDASQL поддерживали Oracle 7 и частично поддерживали Oracle 8i. Не поддерживались следующие функции:

Microsoft изначально не рекомендовала компонент MSDASQL для 64-разрядных операционных систем, а драйвер ODBC Microsoft Oracle позже был установлен.NET Managed Oracle Provider, который поддерживал Oracle 9i. Однако Windows Server 2008 и Windows Vista SP1 поставляются с 64-разрядной версией MSDASQL.

Службы удаленных данных (RDS)

Службы удаленных данных (RDS) позволяли извлекать набор данных с сервера, который клиент каким-то образом изменял, а отправлял обратно на сервер для дальнейшей обработки. С появлением популярного внедрения Transact-SQL, который расширяет SQL такими программными конструкциями, как циклы и условные операторы, необходимость в этом отпала, и в итоге в MDAC 2.7 он стал устаревшим. Microsoft выпустила SOAP Toolkit 2.0, который позволяет клиентам делать это с помощью открытого стандарта на основе XML.

SQLXML

SQLXML был разработан для SQL Server 2000, но был объявлен устаревшим в MDAC 2.6. Это позволяетло XPath просматривать реляционную базу данных Microsoft и позволяло просматривать данные в виде файла XML. На самом деле он не является устаревшим, но был удален из более поздних версий MDAC, хотя Microsoft использует его в качестве используемого средства поддержки в своих 64-разрядных системах.

Устаревшие компоненты

Некоторые компоненты были полностью удалены из MDAC Microsoft и больше не поддерживаются. Это:

  • ESQL/C:Встроенный SQL (также известный как E-SQL или ESQL / C) - способ использования SQL при программировании на Visual C. Microsoft отказалась от поддержки этого после выпуска SQL Server 6.5, хотя они лицензированы для некоторых сред выполнения ESQL / C компании под названием Micro Focus, разрабатывает COBOL компиляторы и инструменты
  • DAO: DAO или Объекты доступа к данным были объектно-ориентированным интерфейсом, созданным Microsoft, который позволяет ранние версии Microsoft Access и Visual Basic для доступа к ядру базы данных Jet. Позже (в версии 3.5) он смог полностью обойти ядро ​​Jet и получить прямой доступ к источнику данных ODBC.
  • RDO: Удаленные объекты данных, или RDO, технология Microsoft, позволяющая создавать интерфейсы, напрямую обращающиеся к ODBC. RDO версии 2.0 последней версией, разработанной Microsoft.
  • DB-Library: API на основе C, позволяющий приложению взаимодействовать с SQL Server. Он не будет поддерживаться в одном продукте после SQL Server 2000, и никакие функции не были добавлены после SQL Server 6.5.

История

Со временем Microsoft выпустила несколько версий MDAC. Метод распространения различен, и набор функций различен для каждой версии.

MDAC 1.0

MDAC 1.0 был выпущен в августе 1996 года. Согласно Microsoft, «MDAC 1.0 существовал как концепция, чем скоординированная программа установки». Стек MDAC 1.0 состоял из ODBC 3.0, OLE DB 1.1, ADO 1.0 и Advanced Data Connector (ADC) 1.0, который, согласно Microsoft, был предшественником службы удаленных данных MDAC 1.5. В него также включены драйверы ODBC для баз данных Access / Jet, SQL Server и Oracle. MDAC 1.0 был выпущен с помощью нескольких механизмов: Advanced Data Connector поставлен с Internet Information Server (IIS) 3.0 и в виде загружаемого файла cab ; OLE DB 1.1 и ADO 1.0 поставляются с OLE DB 1.1 SDK, который поставляется с Visual Studio 97 и также может быть загружен. MDAC 1.0 поставлялся с Active Server Pages, которые входили в состав IIS 3.0, а также поставлялись с Visual InterDev 1.0.

MDAC 1.5

MDAC 1.5 был выпущен в сентябре 1997 года. и март 1998 г., иал более централизованный механизм распространения, чем MDAC 1.0. Он был выпущен с Microsoft Internet Explorer 4.0, Internet Client SDK 4.0 и на компакт-диске, выданном на конференции профессиональных разработчиков (PDC) 1997 года. Было пять версий MDAC 1.5:

  • MDAC 1.5 (начальный выпуск):, включенный в Internet Explorer 4.0 и Internet Client SDK.
  • MDAC 1.5a: загружается с веб-сайта Microsoft
  • MDAC 1.5b: поставляется с Windows NT 4.0 Option Pack и Office 97
  • MDAC 1.5c: исправлены проблемы с потоками ADO и пулом подключений ODBC и распространяется через веб-сайт Microsoft. Он поставлялся только с компонентами среды выполнения ADO / MDAC.
  • MDAC 1.5d: входил в состав Windows 98 и Internet Explorer 4.01 с пакетом обновления 1.

различные версии MDAC 1.5 состояли из:

  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • Служба удаленных данных 1.5, которая заменила Advanced Data Connector.

В версии MDAC был недостаток безопасности, делавший ее уязвимой для атак с этой привилегиями. Уязвимость привела к тому, что системы, в которых были установлены и IIS, и MDAC, давали неавторизованному веб-пользователю возможность выполнять команды оболочки в системе IIS в качестве привилегированного пользователя. Это может использовать злоумышленнику MDAC для туннелирования SQL и других запросов данных ODBC через общедоступное соединение с частной серверной сетью в многосетевой подключенной к Интернету системе IIS. Это также предоставляется пользователю несанкционированный доступ к защищенным, неопубликованным файлам в системе IIS.

MDAC 1.5 был последним выпуском компонента доступа к данным поддерживаемым Windows NT 3.51 SP5.

MDAC 2.0

MDAC 2.0 распространялся с SDK Data Access 2.0 и включал содержимое MDAC 1.5, ODBC 3.5 SDK и OLE DB 1.5 SDK, а также OLE DB для OLAP Спецификация. Он также включил много обновлений в основной продукт, в том числе функцию безопасности, добавленную в RDS, которая предотвращает его злонамеренное использование сервером IIS. Эта версия входила в состав Windows NT 4.0 SP4, а также в Visual Studio 6.0 с полным пакетом SDK для доступа к данным.

MDAC 2.1

MDAC 2.1 распространялся с SQL Server 7.0 и SQL Server 6.5 SP5. MDAC 2.1 SP1 распространялся с Internet Explorer 5, а MDAC 2.1 SP1a (GA) распространялся с Microsoft Office 2000, BackOffice 4.5 и Visual Studio 98 SP3. Однако ни одна из этих версий MDAC не была выпущена для широкой публики через всемирную паутину. MDAC 2.1 SP2 распространялся с веб-сайта Microsoft. В состав 2.1 были включены следующие компоненты:

  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • поставщик OLE DB для ODBC, SQL Server и Oracle
  • JRO 2.1
  • драйвер Jet
  • RDO.

Эта версия имеет уязвимости безопасности, в результате чего непроверенный буфер мог позволить атаку с повышенными привилегиями. Это было обнаружено некоторое время спустя и привлекуло MDAC 2.1, 2.5 и 2.6 и было исправлено в более позднем патче

MDAC 2.5

MDAC 2.5 был выпущен 17 февраля 2000 г. и распространялся с Windows 2000, и пакеты обновления для MDAC выпускались с пакетами обновления для Windows 2000. Они также распространялись через веб-сайт Microsoft. Выпущено три пакета обновления. Компоненты, включенные в 2.5:

  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • многие поставщики OLE DB
  • JRO 2.5
  • ODBC 3.51
  • многие драйверы ODBC
  • многие драйверы Jet.

В этой версии MDAC. При использовании пула сеансов OLE DB Microsoft COM + будет пытаться постоянно загружать и выгружать OLE DB, и может возникнуть конфликт, из-за которого пул сеансов OLE DB будет работать при 100% загрузке ЦП. Позже это было исправлено. Microsoft опубликовала полный список ошибок, исправленных в MDAC 2.5 с пакетом обновления 2 и с пакетом обновления 3 для MDAC 2.5. Также существовала уязвимость системы безопасности (позже исправленная), в результате чего в драйвере SQL Server обнаружен непроверенный буфер. Этот недостаток появился в MDAC 2.5 SP2.

MDAC 2.6

MDAC 2.6 был выпущен в сентябре 2000 г. и распространялся через Интернет вместе с Microsoft SQL Server 2000 MDAC 2.6 RTM, SP1 (выпущен 20 июня 2001 г.) и SP2 (выпущен 11 июня 2002 г.) распространялись параллельно с пакетами обновлений Microsoft SQL Server 2000, а также их можно было загрузить с веб-сайт Microsoft.

С начала этой версии MDAC, Microsoft Jet, поставщик Microsoft Jet OLE DB и драйверы ODBC для настольных базовых данных не включаются. Вместо этого их можно было установить вручную. Microsoft также выпустила предупреждение о том, что MDAC 2.6 не следует устанавливать в SQL Server 7.0, поскольку кластер MDAC 2.6 или более поздней версии на любом узле кластера напрямую или посредством установки другой программы может вызвать катастрофический сбой агента SQL Server или другого SQL Серверные службы ». Эта проблема затрагивала Backup Exec 9.0 для серверов Windows Veritas Software, поскольку он устанавливает Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) в качестве своей базы данных. В редакции 4367 был установлен MDAC версии 2.6 SP2. 4454 установил MDAC версии 2.7 SP1, в котором не было проблем.

MDAC 2.7

MDAC 2.7 был выпущен в октябре 2001 года через веб-сайт Microsoft. Обновленный выпуск был выпущен в апреле 2002 года посредством выпуска Windows XP и через веб-сайт Microsoft. Версия 2.7 была доступна на английском (США), китайском (традиционный и упрощенный), немецком, японском, корейском, бразильском португальском, чешском ch, датский, греческий, словацкий, словенский, испанский, финский, французский, венгерский, итальянский, голландский, норвежский, польский, португальский, русский, Шведский и турецкий. Иврит и арабский были доступны только в Windows XP.

Основным изменением функции была поддержка 64-битной операционной системы Microsoft, однако поддержка Banyan VINES также была исключена из этой версии MDAC. Было несколько известных проблем: MDAC 2.7 продолжал вызывать проблемы с подключением на кластерных серверах под управлением Microsoft SQL Server 6.5 или SQL Server 7.0, и Microsoft не предоставила никакого обходного пути. При создании или настройке ODBC имен источников данных (DSN) с использованием драйвера ODBC Microsoft SQL Server протокол сетевой библиотеки может неожиданно переключиться на TCP / IP, даже если DSN был настроен на использование именованные каналы. Эту проблему обнаружил репортер InfoWorld Рэндалл К. Кеннеди, который обнаружил, что изменение действительно было внесено в MDAC 2.6, но не было задокументировано. Это было обнаружено при тестировании рабочих нагрузок клиент-серверной базы данных на компьютере под управлением Windows XP; InfoWorld утверждает, что, хотя общая загрузка ЦП сервера выросла всего на 8 процентов при использовании TCP / IP, переключение контекста в секунду упало более чем на 150 процентов (что, конечно, невозможно, потому что тогда у вас будет отрицательная скорость переключения контекста - падение составляет 33% или 60% в зависимости от того, на какой планете находился автор во время написания) для рабочей нагрузки из 10 пользователей. Их не впечатлило то, что фундаментальные функциональные изменения поведения Net-Lib по умолчанию произошли без простого упоминания в несвязанном документе. Пользователи Windows XP также иногда испытывали проблемы с подключением к SQL Server, поскольку SQL Server пытается использовать сертификаты, которые он находит на локальном компьютере, однако, если доступно более одного сертификата, он не знает, какой из них использовать. При попытке использовать Microsoft Analysis Services 2000 RTM иногда возникала ошибка при попытке просмотра кубов. Microsoft также обнаружила проблему в программе установки Windows 95, Windows 98 и Windows Me, которая препятствовала откату программы установки MDAC при обнаружении ошибка установки.

Microsoft решила несколько проблем безопасности для MDAC 2.7. Дэвид Литчфилд сообщил об уязвимости системы безопасности, которая возникает из-за того, что одна из функций ODBC в MDAC, которая используется для подключения к источникам данных, содержит непроверенный буфер. Еще одна уязвимость, которая была исправлена, заключалась в том, что злоумышленник мог ответить на широковещательное сообщение об обнаружении SQL Server от клиентов с помощью специально созданного пакета, который мог вызвать переполнение буфера. Был обнаружен еще один недостаток, при котором код мог выполняться удаленно, когда злоумышленник отвечал на широковещательную рассылку другим специально созданным пакетом.

MDAC 2.8

MDAC 2.8 был выпущен в августе 2003 года и распространялся с Microsoft Windows Server 2003, а также на веб-сайте Microsoft Data Access Technologies. Он не привнес в продукт никаких новых функций, но исправил ряд ошибок и проблем с безопасностью - был удален reg-файл (автоматизирует изменения в реестре), что заставило сервер работать в «небезопасном» режиме, в результате чего RDS можно было использовать для получить несанкционированный доступ к системе и новое ограничение было наложено на длину строки запроса формы. Также было несколько изменений администратора ODBC.

23 мая 2005 г. Брэд Роудс (ведущий менеджер программ Microsoft Data Access Technologies) объявил, что MDAC 2.8 SP1 был последним автономным распространяемым пакетом MDAC, который Microsoft будет поставлять. MDAC теперь является официальным компонентом операционной системы Microsoft. Однако Microsoft создает новый компонент под названием (SQLNCLI), который представляет собой автономный API-доступ к данным, который объединил библиотеки OLE DB и ODBC в одну DLL. Он был настроен, чтобы быть независимым от MDAC, теперь это зависит от состояния операционной системы, который разработчик теперь подключает к этой библиотеке и избегает операций, когда обновляет операционную систему, которая обновляет MDAC, который нарушает работу приложений, созданных для другой версии MDAC.

Windows 7 SP1 нарушила прямую совместимость MDAC 2.8. Программное обеспечение, скомпилированное на Windows 7 с пакетом 1 (SP1) и основанное на MDAC ADO, не будет работать в версиих Windows до Windows 7 с пакетом обновлений 1 (включая Windows 7 RTM, Vista, XP). Microsoft предоставила решения, позволяющие обойти эту проблему для некоторых приложений, но приложения VBA остаются уязвимыми. Исправление этой проблемы было выпущено в феврале 2012 года.

Windows DAC 6.0

Windows Vista больше не будет использовать MDAC, а вместо этого будет использовать Windows DAC, который состоит из обновленных версий ADO, OLE Компоненты DB и ODBC. Согласно Microsoft, «Windows DAC включает некоторые изменения для работы с Windows Vista, но практически полностью функционально эквивалентен MDAC 2.8».

Проверка версии

Есть два способа проверить версию MDAC, установленный на компьютере. Для Windows 2000, Windows XP и Windows Server 2003 один из способов проверки - это программа Microsoft Component Checker, которая сравнивает значение каждой установленной библиотеки DLL MDAC с манифестом файла MDAC. Второй способ - проверить ключ HKEY_LOCAL_MACHINE \ Software \ Microsoft \ DataAccess \ FullInstallVerв реестре Windows. Microsoft отмечает, что эта информация может быть неверной для версий MDAC до 2.1 по сравнению с версиями файлов MDAC, приложений в системе

ВерсияДата выпускаВключено вФункцииПроблемы безопасности
1.0Август 1996 г.
  • ADC - IIS 3.0
  • OLE DB 1.1 SDK (OLE DB 1.1 и ADO 1.0) - Visual Studio
  • Все компоненты, включенные в Visual Interdev 1.0 и с Active Server Pages (выпущенные в IIS 3.0)
  • ODBC 3.0
  • OLE DB 1.1
  • ADO 1.0
  • ADC 1.0
  • Драйверы ODBC для Access / Jet, SQL Server и баз данных Oracle

Бюллетени не выпущены

1.5

сентябрь 1997 г. - март 1998 г.
  • Microsoft Internet Explorer 4.0
  • Internet Client SDK 4.0 (с компакт-диска, выпущенного на Microsoft PDC)
  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • RDS 1.5 (заменено ADC 1.0)
1.5aСентябрь 1997 г. - март 1998 г.

Сервисный выпуск

1.5bСентябрь 1997 г. - март 1998 г.

Сервисный выпуск

1.5cСентябрь 1997 г. - март 1998 г.
  • Исправлены проблемы с потоковой передачей ADO и пулом соединений ODBC
  • Поставляется только с компонентами среды выполнения ADO / MDAC
2.01 июля 1998 г.
  • Visual Studio 98
  • SDK для доступа к данным 2.0
  • ODBC 3.5 SDK
  • OLE DB 1.5 SDK
  • OLE DB для спецификации OLAP
2.0SP11 июля 1998 г.
  • Windows NT 4.0 SP4

2000 г. исправление для Windows NT 4.0

2.0SP21 июля 1998 г.
  • веб-сайт Microsoft

Исправление 2000 г. для всех платформ

2,111 июля 1998 г.
  • SQL Server 7.0
  • SQL Server 6.5 SP5
  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • Поставщик OLE DB для ODBC, SQL Server и Oracle
  • JRO 2.1
  • Драйвер ODBC
  • Драйвер Jet
  • RDO
2.1 SP1Март 15, 1999
  • Internet Explorer 5.0
  • Windows 98 Second Edition
2.1 SP1a (GA)1 апреля 1999 г.
  • Выкл. ice 2000
  • BackOffice 4.5
  • Visual Studio 98 SP3
  • Internet Explorer 5.0a (минимальная установка)
2.1 SP2июль 1999 г.
2.517 февраля 2000 г.
  • Windows 2000
  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • Поставщик OLE DB для драйвера ODBC для:
    • SQL
    • Server
    • Поиск по серверу сайта
    • Интернет Публикация
    • Jet 4.0 (Access 2000)
    • Oracle
    • Службы индексирования (сервер индекса)
    • Службы Microsoft Data Shaping Services
    • Службы OLAP
    • Пакеты DTS
    • Службы каталогов Microsoft
    • Плоский файл DTS сервера
    • Простой поставщик OLE DB
  • JRO 2.5
  • ODBC 3.51
  • драйвер ODBC для
    • Microsoft Access
    • SQL Server
    • Microsoft Excel
    • Текст
    • Visual FoxPro
    • FoxPro VFP
    • dBase
    • dBase VFP
    • Paradox
    • Oracle
  • Драйверы Jet для:
    • Excel
    • Microsoft Exchange
    • Доступ
    • текстовые файлы
    • Lotus 1-2-3
    • Paradox
    • xBase
2.5 SP131 июля, 2000
  • Windows 2000 SP1
2.5 SP2апрель 2000
  • Windows 2000 SP2
2.5 SPS3декабрь 2003
  • Windows 2000 SP3
2.6сентябрь 2000 г.
  • SQL Server 2000
Не входит (устанавливается вручную):
  • Microsoft Jet
  • поставщик Microsoft Jet OLE DB
  • ODBC Desktop Драйверы баз данных
2.6 SP1май 2001 г.
  • SQL Server 2000 SP1
2.6 SP2май 2002
  • SQL Server 2000 SP2
2,7октябрь 2001 г.
  • Windows XP
  • Поддержка 64-битных операционных систем
  • Banyan VINES прекращена поддержка
2.8август 2003 г.
  • Windows Server 2003

Исправленные ошибки и проблемы безопасности

2.8 SP1май 2005
  • SQL Server 2000 SP4
  • Windows XP SP2

Исправлены ошибки

2.8 SP2март 2005
  • Windows Server 2003 SP1
9.0Никогда не выпускался
  • Visual Studio 2005 Beta 1 (удален в последующих выпусках)
  • SQL Server 2005 Beta 1 (удален в последующих выпусках)
Windows DAC 6.0 (вариант MDAC для использовать с Vista)ноябрь 2006 г.
  • Номер версии синхронизирован с версией Windows
  • Никаких других новых функций

Ссылки

Дополнительная литература

Внешние ссылки

Последняя правка сделана 2021-05-30 10:11:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте