Its components include: ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC).
There have been several deprecated components as well, such as the Jet Database Engine, MSDASQL (the OLE DB provider for ODBC), and Remote Data Services (RDS).
The latest version of MDAC (2.8) consists of several interacting components, all of which are Windows specific except for ODBC (which is available on several platforms).
Naturally, developers still have the choice of writing applications which directly access OLE DB and ODBC.
The SQL Server uses the Open Data Services (ODS) library to communicate with Net-Lib, which interfaces directly with the Windows NT operating system line's Win32 subsystem.
The Microsoft OLE DB Provider for SQL Server (SQLOLEDB) communicates via primary Net-Libs.
The Shared Memory Net-Lib, on the other hand, manages connections between multiple instances of SQL Server that exist on one computer.
[1] OLE DB (also called OLEDB or OLE-DB) allows MDAC applications access to different types of data stores in a uniform manner.
OLE DB providers can be created to access such simple data stores as a text file or spreadsheet, through to such complex databases as Oracle and SQL Server.
However, because different data store technology can have different capabilities, OLE DB providers may not implement every possible interface available.
The capabilities that are available are implemented through the use of COM objects – an OLE DB provider will map the data store technology's functionality to a particular COM interface.
Additionally, the dialog box specifies a number of alternate OLE DB data providers for a variety of target applications.
It uses a hierarchical object model to allow applications to programmatically create, retrieve, update and delete data from sources supported by OLE DB.
Conceptually, a Dataset object can be seen as a small in-memory relational database in its own right that allows for manipulation of data in any direction.
Cursors were also deprecated in ADO.NET, being replaced with a DataReader object, which is used to efficiently process a large list of results one record at a time without storing them.
Jet also provided support for security, referential integrity, transaction processing, indexing, record and page locking, and data replication.
One was the Native Jet ISAM Driver, a Jet dynamic link library (DLL) that could directly manipulate Microsoft Access database files (MDB), which was a modified form of an Indexed Sequential Access Method (ISAM) database.
[31] With the popular adoption of Transact-SQL, which extends SQL with such programming constructs as loops and conditional statements, this became less necessary and it was eventually deprecated in MDAC 2.7.
It has not actually been deprecated but has been removed from later versions of MDAC, though Microsoft does provide it as a downloadable component and will support it on their 64-bit operating systems.
MDAC 1.0 was released via several mechanisms: the Advanced Data Connector shipped with Internet Information Server (IIS) 3.0 and as a downloadable cab file; OLE DB 1.1 and ADO 1.0 shipped with the OLE DB 1.1 SDK, which came with Visual Studio 97 and was also downloadable.
This allowed the attacker to use MDAC to tunnel SQL and other ODBC data requests through the public connection to a private back-end network when on a multi-homed Internet-connected IIS system.
The components that were included with 2.1 were: This version had security vulnerabilities whereby an unchecked buffer could allow an elevated privileges attack.
Version 2.7 was available in U.S. English, Chinese (Traditional and Simplified), German, Japanese, Korean, Brazilian Portuguese, Czech, Danish, Greek, Slovak, Slovenian, Spanish, Finnish, French, Hungarian, Italian, Dutch, Norwegian, Polish, Portuguese, Russian, Swedish, and Turkish.
[50] This issue was found by InfoWorld reporter Randall C. Kennedy, who identified that the change was actually made in MDAC 2.6 but was never documented.
It was discovered when testing client/server database workloads on a Windows XP computer; InfoWorld claims that although overall server CPU utilization rose by only 8 percent using TCP/IP, context switches per second dropped by more than 150 percent (which is of course impossible because you would then have a negative context switch rate - the drop is either 33% or 60% depending on which planet the author was on at the time of writing) for a 10-user workload.
They were unimpressed that a fundamental functional change to the default behaviour of Net-Lib occurred without more than a passing mention in an unrelated document.
[55] Another vulnerability that was fixed was one whereby an attacker could respond to an SQL Server discovery message broadcast by clients with a specially crafted packet that could cause a buffer overflow.
[56] Another flaw was found whereby code could be executed remotely when the attacker responded to the broadcast with another specially crafted packet.
It did not introduce any new features to the product but fixed a number of bugs and security issues – a reg file (automates changes to the registry) was removed that made the server run in an "unsafe" mode whereby the RDS could be exploited to gain unauthorized access to the system[58] and a new restriction was imposed on the length of the Shape query string.
[61] However, Microsoft have created a new component called the SQL Native Client (SQLNCLI), which is a stand-alone data access API that has combined the OLE DB and ODBC libraries into one DLL.