Microsoft Data Access Components - Microsoft Data Access Components

Microsoft Data Access Components
MDAC Architecture.svg
MDAC giver en ensartet ramme for adgang til en række datakilder på deres Windows- platform
Udvikler (r) Microsoft
Endelig frigivelse
2.8 SP1 (2.81.1117.6) / Maj 2005
Operativ system Windows 98 , Windows ME , Windows NT 4 , Windows 2000 , Windows XP , Windows Server 2003 , Windows 7 , Windows 10
Type Database
Licens Freeware
Internet side msdn2 .Microsoft .com / dk-os / data / aa937729 .aspx

Microsoft Data Access Components ( MDAC ; også kendt som Windows DAC ) er en ramme for indbyrdes forbundne Microsoft- teknologier, der giver programmører en ensartet og omfattende måde at udvikle applikationer, der kan få adgang til næsten ethvert datalager. Dets komponenter inkluderer: ActiveX Data Objects (ADO), OLE DB og Open Database Connectivity (ODBC). Der har også været flere forældede komponenter, såsom Microsoft Jet Database Engine , MSDASQL (OLE DB-udbyderen til ODBC) og Remote Data Services (RDS). Nogle komponenter er også blevet forældede , såsom den tidligere Data Access Objects API og Remote Data Objects .

Den første version af MDAC blev udgivet i august 1996. På det tidspunkt sagde Microsoft, at MDAC var mere et koncept end et enkeltstående program og ikke havde nogen udbredt distributionsmetode. Senere frigav Microsoft opgraderinger til MDAC som webbaserede omfordelbare pakker. Til sidst blev senere versioner integreret med Microsoft Windows og Internet Explorer , og i MDAC 2.8 SP1 ophørte de med at tilbyde MDAC som en omfordelingspakke.

Gennem hele sin historie har MDAC været genstand for adskillige sikkerhedsfejl , hvilket førte til angreb som et eskaleret privilegiumangreb , selv om sårbarhederne generelt blev rettet i senere versioner og ret hurtigt. Den nuværende version er 2,8 servicepakke 1, men produktet har haft mange forskellige versioner, og mange af dets komponenter er udfaset og erstattet af nyere Microsoft-teknologier. MDAC er nu kendt som Windows DAC i Windows Vista .

Arkitektur

Den seneste version af MDAC (2.8) består af flere interagerende komponenter, som alle er Windows- specifikke undtagen ODBC (som er tilgængelig på flere platforme). MDAC-arkitektur kan ses som tre lag: et programmeringsinterfacelag, der består af ADO og ADO.NET , et databaseadgangslag udviklet af databaseleverandører som Oracle og Microsoft ( OLE DB , .NET-administrerede udbydere og ODBC- drivere) og selve databasen. Disse komponentlag gøres alle tilgængelige for applikationer via MDAC API . Den Microsoft SQL Server Network Library, en proprietær adgang metode specifikt til Microsoft SQL Server, er også inkluderet i MDAC. Udviklere af Windows-applikationer opfordres til at bruge ADO eller ADO.NET til dataadgang, fordelen er, at brugere af applikationsprogrammet ikke er begrænset i deres valg af databasearkitektur, bortset fra at det skal understøttes af MDAC. Naturligvis har udviklere stadig valget mellem at skrive applikationer, der direkte har adgang til OLE DB og ODBC.

Microsoft SQL Server-netværksbibliotek

Microsoft SQL Server-netværksbiblioteket (også kendt som Net-Lib) bruges af Microsoft SQL Server til at læse og skrive data ved hjælp af mange forskellige netværksprotokoller . Selvom Net-Lib er specifikt for SQL Server, inkluderer Microsoft det med MDAC. SQL Server bruger ODS-biblioteket (Open Data Services) til at kommunikere med Net-Lib, som grænseflader direkte til Windows NT- operativsystemets Win32- undersystem . SQL Server-netværksbiblioteket styres ved hjælp af et klientnetværksværktøj, der er samlet med SQL Server.

Hver Net-Lib-understøttet netværksprotokol har en separat driver (må ikke forveksles med en enhedsdriver ) og understøtter et sessionslag i sin protokolstak. Der er to generelle typer Net-Lib: den primære og den sekundære. Den primære Net-Lib består af en Super Socket Net-Lib og den delte hukommelse Net-Lib, mens der er adskillige sekundære Net-Libs, herunder TCP / IP og navngivne pipes netværksbiblioteker via en system-vedvarende pipeline , der får en identitet). Microsoft OLE DB-udbyderen til SQL Server (SQLOLEDB) kommunikerer via primære Net-Libs.

Super Socket Net-Lib beskæftiger sig med kommunikation mellem computere og koordinerer de sekundære Net-Libs - skønt TCP / IP sekundær Net-Lib er en undtagelse, da den direkte kalder på Windows Sockets 2 API. Den Banyan VINES , AppleTalk , ServerNet , IPX / SPX , Giganet , og RPC Net-Libs blev droppet fra MDAC 2.5 og frem. Netværksbiblioteksrouteren havde til opgave at administrere alle disse protokoller, men nu styres kun de navngivne rør sekundære Net-Lib af routeren. Super Socket Net-Lib håndterer også datakryptering via brug af Windows SSL API.

Delt hukommelse Net-Lib administrerer på den anden side forbindelser mellem flere forekomster af SQL Server, der findes på en computer. Det bruger et delt hukommelsesområde til at kommunikere mellem processerne. Dette er i sagens natur sikkert; der er ikke behov for datakryptering mellem forekomster af SQL Server, der findes på en computer, da operativsystemet ikke tillader nogen anden procesadgang til forekomstenes område med delt hukommelse.

Net-Lib er også i stand til at understøtte efterligning af en indlogget brugers sikkerhedskontekst for protokoller, der understøtter godkendte forbindelser (kaldet betroede forbindelser ). Dette giver Net-Lib mulighed for at levere en integreret logon-godkendelsesmekanisme via brug af Windows-godkendelse . Windows-godkendelse understøttes ikke på Windows 98 eller Windows Me.

OLE DB

OLE DB (også kaldet OLEDB eller OLE-DB) giver MDAC-applikationer adgang til forskellige typer ([data]) butikker på en ensartet måde. Microsoft har brugt denne teknologi til at adskille applikationen fra data kan gemme på websitet det datalager, som det har brug for at få adgang til. Dette blev gjort, fordi forskellige applikationer har brug for adgang til forskellige typer og datakilder og ikke nødvendigvis behøver at vide, hvordan man får adgang til teknologispecifik funktionalitet. Teknologien er konceptuelt opdelt i forbrugere og udbydere . Forbrugerne er de applikationer, der har brug for adgang til dataene, og udbyderen er softwarekomponenten, der udsætter en OLE DB-grænseflade ved hjælp af Component Object Model (eller COM).

OLE DB er databaseadgangsinterfaceteknologien, der bruges af MDAC. OLE DB-udbydere kan oprettes for at få adgang til sådanne enkle datalagre som en tekstfil eller et regneark , gennem så komplekse databaser som Oracle og SQL Server . Men fordi forskellige datalagringsteknologier kan have forskellige muligheder, implementerer OLE DB-udbydere muligvis ikke alle mulige tilgængelige grænseflader. De tilgængelige funktioner implementeres ved brug af COM-objekter - en OLE DB-udbyder vil kortlægge datalagreteknologiens funktionalitet til en bestemt COM-grænseflade. Microsoft kalder tilgængeligheden af ​​en grænseflade for at være "udbydersspecifik", da den muligvis ikke gælder afhængigt af den involverede databaseteknologi. Derudover kan udbydere dog også udvide mulighederne i et datalager; disse funktioner er kendt som tjenester i Microsofts sprog.

Den Microsoft OLE DB Provider for SQL Server (SQLOLEDB) er OLE DB-udbyder, der Microsoft leverer til Microsoft SQL Server fra version 6.5 og opefter.

Universelt datalink

Universelle datalinkfiler (eller '.udl-filer') giver en fælles brugergrænseflade til angivelse af forbindelsesattributter. En bruger kan bruge dialogboksen Egenskaber for datalink til at gemme forbindelsesoplysninger i en .udl-fil som et alternativ til direkte at specificere dem manuelt i en forbindelsesstreng. Derfor giver disse filer et praktisk indirekte niveau . Derudover specificerer dialogboksen et antal alternative OLE DB-dataleverandører til en række målapplikationer.

ODBC

Open Database Connectivity (ODBC) er en indbygget grænseflade, der er adgang til via et programmeringssprog (normalt C ), der kan foretage opkald til et oprindeligt bibliotek . I MDAC er denne grænseflade defineret som en DLL. Der kræves et separat modul eller en driver til hver database, der skal tilgås. Funktionerne i ODBC API er implementeret af disse DBMS-specifikke drivere. Driveren, som Microsoft leverer i MDAC, kaldes SQL Server ODBC Driver (SQLODBC), og (som navnet antyder) er designet til Microsofts SQL Server. Det understøtter SQL Server v6.5 og opefter. ODBC tillader programmer at bruge SQL- anmodninger, der får adgang til databaser uden at skulle kende de proprietære grænseflader til databaser. Den håndterer SQL-anmodningen og konverterer den til en anmodning, som det enkelte databasesystem forstår. Ifølge Microsoft, "Efter SQL Server 2012 opdateres ODBC-driveren til de nyeste serverfunktioner, inklusive Microsoft Windows Azure SQL Database, og frigives som Microsoft ODBC-driver til SQL Server."

ADO

ActiveX Data Objects ( ADO ) er en programmeringsgrænseflade på højt niveau til OLE DB. Det bruger en hierarkisk objektmodel til at tillade applikationer at programmatisk oprette, hente, opdatere og slette data fra kilder, der understøttes af OLE DB. ADO består af en række hierarkiske COM-baserede objekter og samlinger, et objekt der fungerer som en container med mange andre objekter. En programmør kan direkte få adgang til ADO-objekter for at manipulere data eller kan sende en SQL- forespørgsel til databasen via flere ADO-mekanismer. ADO består af ni objekter og fire samlinger .

Samlingerne er:

  1. Felter: Denne samling indeholder et sæt feltobjekter. Samlingen kan bruges i enten et Recordset-objekt eller et Record-objekt. I et Recordset-objekt svarer hvert af de feltobjekter, der udgør Fields-samlingen, til en kolonne i det Recordset-objekt. I et Record-objekt kan et felt være en absolut eller relativ URL, der peger ind i et trestruktureret navneområde (bruges til semistrukturerede dataudbydere som Microsoft OLE DB-udbyderen til internetpublicering) eller som en reference til det tilknyttede standardstream-objekt med det Record-objekt.
  2. Egenskaber: Et objekt kan have mere end et egenskabsobjekt, som er indeholdt i objektets egenskabssamling.
  3. Parametre: Et kommandoobjekt kan have flere parameterkommandoer for at ændre dets foruddefinerede adfærd, og hvert af parameterobjekterne er indeholdt i kommandoobjektets parametersamling
  4. Fejl: Alle udbyderoprettede fejl videregives til en samling af fejlobjekter, mens selve fejlsamlingen er indeholdt i et forbindelsesobjekt. Når en ADO-handling opretter en fejl, ryddes samlingen, og der oprettes en ny gruppe fejlobjekter i samlingen.

Genstandene er:

  1. Forbindelse: Forbindelsesobjektet er ADO's forbindelse til et datalager via OLE DB. Forbindelsesobjektet gemmer information om sessionen og giver metoder til at oprette forbindelse til datalageret. Da nogle datalagre har forskellige metoder til at oprette en forbindelse, understøttes nogle metoder muligvis ikke i forbindelsesobjektet for bestemte OLE DB-udbydere. Et forbindelsesobjekt forbinder til datalageret ved hjælp af sin 'Åbn' metode med en forbindelsesstreng, der specificerer forbindelsen som en liste over nøgleværdipar (for eksempel: " Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';"). Starten skal identificere den type datalagerforbindelse, som forbindelsesobjektet kræver. Dette skal enten være:
    • en OLE DB-udbyder (for eksempel SQLOLEDB) ved hjælp af syntaksen "provider ="
    • et filnavn ved hjælp af syntaksen "filnavn ="
    • en fjernudbyder og en server (se RDS ) ved hjælp af syntaksen "Remote provider =" og "Remote server ="
    • en absolut URL ved hjælp af syntaksen "URL ="
  2. Kommando: Når forbindelsesobjektet opretter en session til datakilden, sendes instruktioner til dataudbyderen via kommandoobjektet. Kommandoobjektet kan sende SQL-forespørgsler direkte til udbyderen ved hjælp af CommandText- ejendommen, sende en parametreret forespørgsel eller lagret procedure ved brug af et parameterobjekt eller parametersamling eller køre en forespørgsel og returnere resultaterne til et datasætobjekt via Udfør metode. Der er flere andre metoder, der kan bruges i kommandoobjektet, der relaterer til andre objekter, såsom Stream-, RecordSet- eller Connection-objekter.
  3. Pladesæt: Et pladesæt er en gruppe af poster og kan enten komme fra en basistabel eller som et resultat af en forespørgsel til tabellen. RecordSet-objektet indeholder en Fields- samling og en Properties- samling. Feltsamlingen er et sæt feltobjekter, som er de tilsvarende kolonner i tabellen. Egenskabssamlingen er et sæt ejendomsobjekter, der definerer en bestemt funktionalitet hos en OLE DB-udbyder. RecordSet har adskillige metoder og egenskaber til at undersøge de data, der findes inden i det. Optegnelser kan opdateres i pladesættet ved at ændre værdierne i posten og derefter kalde på Updateeller UpdateBatchmetoden. Tilføjelse af nye poster udføres gennem AddNewfunktionen og derefter ved at kalde på Updateeller UpdateBatchmetoden. Records slettes også i pladesættet med Delete-metoden og derefter ved at kalde på Update-metoden. Men hvis sletningen af ​​en eller anden grund ikke kan forekomme, f.eks. På grund af krænkelser af henvisningens integritet , forbliver pladesættet i redigeringstilstand efter opkaldet til Updatemetoden. Programmøren skal eksplicit tilkalde CancelUpdatefunktionen for at annullere opdateringen. Derudover kan ADO tilbageføre transaktioner (hvis dette understøttes) og annullere batchopdateringer. Recordsets kan også opdateres på en af ​​tre måder: via en øjeblikkelig opdatering, via en batchopdatering eller ved brug af transaktioner:
    1. Umiddelbar: Pladesættet låses ved hjælp af adLockOptimisticeller adLockPessimistic-låsen. Dataene opdateres ved datakilden, efter at posten er ændret, og Updatemetoden kaldes.
    2. Batch: Pladesættet låses ved hjælp af adLockBatchOptimisticog hver gang Updatekaldes opdateres dataene i en midlertidig buffer. Endelig, når UpdateBatchder kaldes, opdateres dataene fuldstændigt tilbage ved datakilden. Dette har den fordel, at det hele gøres i hukommelsen, og hvis der opstår et problem, UpdateCancelkaldes det, og opdateringerne sendes ikke til datakilden
    3. Transaktion: Hvis OLE DB-udbyderen tillader det, kan transaktioner bruges. For at starte transaktionen påkalder programmøren BeginTransmetoden og foretager de nødvendige opdateringer. Når de alle er færdige, påkalder programmøren CommitTransmetoden. RollbackTranskan påberåbes for at annullere ændringer foretaget inde i transaktionen og rulle databasen tilbage til staten, før transaktionen startede
  4. Record: Dette objekt repræsenterer en post i databasen og indeholder en feltsamling. Et RecordSet består af en samling Record-objekter.
  5. Stream: En stream, der hovedsagelig bruges i et RecordSet-objekt, er et middel til at læse og skrive en stream af bytes. Det bruges mest til at gemme et pladesæt i et XML-format, til at sende kommandoer til en OLE DB-udbyder som et alternativ til CommandText-objektet og til at indeholde indholdet af en binær- eller tekstfil.
  6. Parameter: En parameter er et middel til at ændre adfærden for et fælles stykke funktionalitet, for eksempel kan en gemt procedure muligvis have forskellige parametre sendt til den afhængigt af hvad der skal gøres; disse kaldes parametriserede kommandoer .
  7. Felt: Hvert postobjekt indeholder mange felter, og et RecordSet-objekt har også et tilsvarende feltobjekt. RecordSet-objektets feltobjekt svarer til en kolonne i databasetabellen, som det refererer til.
  8. Ejendom: Dette objekt er specifikt for OLE DB-udbyderen og definerer en evne, som udbyderen har implementeret. Et ejendomsobjekt kan enten være en indbygget egenskab - det er en veldefineret egenskab, der allerede er implementeret af ADO og kan derfor ikke ændres - eller en dynamisk egenskab - defineret af den underliggende dataudbyder og kan ændres
  9. Fejl: Når en OLE DB-provider fejl opstår under brugen af ADO, vil en fejl objekt oprettes i Fejl kollektion. Andre fejl går dog ikke ind i et fejlobjekt. F.eks. Er eventuelle fejl, der opstår ved manipulation af data i et RecordSet- eller feltobjekt, gemt i en statusegenskab.

ADO.NET

ADO.NET er den nyeste version af ADO (efter ADO 2.8, nu ofte omtalt som ADO Classic) og er en del af MDAC 2.8-stakken sammen med klassisk ADO. Det er bygget op omkring Microsoft .NET . Selvom det undertiden ses som et evolutionært skridt op fra ADO, blev der foretaget nogle grundlæggende strukturelle ændringer af Microsoft. ADO.NET kører gennem en .NET Managed Provider, en modificeret version af en OLE DB-udbyder specielt designet til .NET. Objektstrukturen er ikke længere bygget omkring et Recordset-objekt. I stedet bruges et datasætobjekt til at indeholde data indsamlet fra flere kilder. Dette er gennemsigtigt for programmøren. I modsætning til det gamle ADO Recordset fremmer datasættets design brugen af ​​afbrudte data. Konceptuelt kan et datasætobjekt ses som en lille relationel database i hukommelsen i sig selv, der giver mulighed for manipulation af data i enhver retning. For at udbrede ændringer tilbage i databasen bruges et DataAdapter- objekt, der overfører data fra mellem datakilden og DataSet-objektet. Markører blev også udfaset i ADO.NET og blev erstattet med et DataReader- objekt, som bruges til effektivt at behandle en stor liste med resultater en post ad gangen uden at gemme dem.

Forældede og forældede komponenter

MDAC er en komponentramme, der konstant udvikler sig. Som sådan har der været flere komponenter, der tidligere var en del af det, men som siden er blevet udfaset eller helt fjernet fra rammen.

Microsoft Jet Database Engine og JRO

Jet står for Joint Engine Technology og var en databasemotor, der blev brugt til Microsoft Access , Microsoft Exchange Server og Visual Basic . Jet var en del af et Relational Database Management System (RDBMS) og tilbød en enkelt grænseflade, som anden software kunne bruge til at få adgang til Microsoft-databaser. Jet leverede også support til sikkerhed, referenceintegritet , transaktionsbehandling , indeksering , registrering af sider og låsning af data og replikering af data. I senere versioner af Jet blev motoren udvidet til at køre SQL- forespørgsler, gemme karakterdata i Unicode- format, oprette visninger og tilladt tovejsreplikering med Microsoft SQL Server. Det er siden blevet afløst af MSDE .

Der var tre moduler til Jet. Den ene var Native Jet ISAM Driver , et Jet dynamisk linkbibliotek (DLL), der direkte kunne manipulere Microsoft Access-databasefiler (MDB), som var en modificeret form af en ISAM-database (Indexed Sequential Access Method ). En anden af modulerne var ISAM-drivere , DLL-filer, der tillod adgang til ISAM-databaser, blandt dem er Xbase , Paradox , Btrieve og FoxPro filer. Det sidste modul var Data Access Objects (DAO) DLL , DAO tillod programmører adgang til Jet-motoren. Det var dybest set et objektorienteret datasprog, der blev brugt af Access Basic og Visual Basic applikationsudviklere til at få adgang til Jet.

Tilsvarende blev Microsoft Jet OLE DB-udbyder og replikeringsobjekter (JRO), som tillod replikering mellem Jet-datakilder, fjernet fra MDAC 2.6

MSDASQL og Oracle ODBC

Microsoft OLE DB-udbyderen til ODBC, eller MSDASQL, var en OLE DB-udbyder til at give ActiveX-dataobjekter adgang til databaser via enhver ODBC-driver. Microsoft leverede flere OLE-DB-udbydere (til indekseringstjenesten, Active Directory , Jet, SQL Server, Oracle ( MSDAORA) og Internet Publishing), men medmindre andet er bestemt, misligholdte ADO at bruge MSDASQL som standardudbyder. Efter MDAC 2.5 understøttede både Oracle ODBC-driveren og MSDASQL Oracle 7 og delvist Oracle 8i. Funktioner, der ikke blev understøttet, var:

Microsoft afskaffede oprindeligt MSDASQL-komponenten for deres 64-bit operativsystemer, og Microsoft Oracle ODBC-driveren blev senere afløst af en .NET Managed Oracle Provider, der understøttede Oracle 9i. Dog leveres Windows Server 2008 og Windows Vista SP1 med en 64-bit version af MSDASQL.

Remote Data Services (RDS)

Remote Data Services (RDS) tillod hentning af et sæt data fra serveren, som klienten derefter ændrede på en eller anden måde og derefter sendte tilbage til serveren til videre behandling. Med den populære vedtagelse af Transact-SQL , der udvider SQL med sådanne programmeringskonstruktioner som sløjfer og betingede udsagn, blev dette mindre nødvendigt, og det blev til sidst udfaset i MDAC 2.7. Microsoft producerede SOAP Toolkit 2.0, som gør det muligt for klienter at gøre dette via en åben XML- baseret standard.

SQLXML

SQLXML blev designet til SQL Server 2000, men blev udfaset med MDAC 2.6. Det tillod Microsofts relationsdatabase at blive vist af XPath og tillod, at data kunne ses som en XML- fil. Det er faktisk ikke udfaset, men er fjernet fra senere versioner af MDAC, selvom Microsoft leverer det som en komponent, der kan downloades, og vil understøtte det på deres 64-bit operativsystemer.

Forældede komponenter

Flere komponenter er blevet fjernet fuldstændigt fra MDAC af Microsoft og understøttes ikke længere. De er:

  • ESQL / C: Indlejret SQL (også kendt som E-SQL eller ESQL / C) er en måde at bruge SQL på, når programmering i Visual C. Microsoft droppede understøttelse af dette, efter at SQL Server 6.5 blev frigivet, skønt de licenserede nogle af ESQL / C run-time miljø til et firma kaldet Micro Focus , der udvikler COBOL kompilatorer og værktøjer
  • DAO: DAO eller Data Access Objects var en objektorienteret grænseflade oprettet af Microsoft, som tillod tidlige versioner af Microsoft Access og Visual Basic at få adgang til Jet-databasemotoren . Senere (i version 3.5) var det i stand til at omgå Jet-motoren helt og direkte få adgang til ODBC -datakilder.
  • RDO: Remote Data Objects , eller RDO, var en Microsoft- teknologi, der tillod oprettelse af grænseflader, der direkte kaldte ODBC. RDO version 2.0 var den endelige version udviklet af Microsoft.
  • DB-Library: et C-baseret API, der tillod et program at interagere med SQL Server. Det understøttes ikke på noget produkt efter SQL Server 2000, og der blev ikke tilføjet nogen funktioner efter SQL Server 6.5.

Historie

Microsoft har frigivet flere versioner af MDAC over tid. Distributionsmetoden har varieret, og funktionssættet er forskelligt for hver version.

MDAC 1.0

MDAC 1.0 blev først udgivet i august 1996. Ifølge Microsoft "eksisterede MDAC 1.0 mere som koncept end et koordineret, enkeltstående installationsprogram." MDAC 1.0-stakken bestod af ODBC 3.0, OLE DB 1.1, ADO 1.0 og Advanced Data Connector (ADC) 1.0 - som ifølge Microsoft var forløberen for MDAC 1.5's Remote Data Service. Det omfattede også ODBC-drivere til Access / Jet, SQL Server og Oracle- databaser. MDAC 1.0 blev frigivet via flere mekanismer: Advanced Data Connector leveret med Internet Information Server (IIS) 3.0 og som en cab-fil , der kan downloades ; OLE DB 1.1 og ADO 1.0 leveres med OLE DB 1.1 SDK, der fulgte med Visual Studio 97 og også kunne downloades. MDAC 1.0 fulgte med Active Server Pages, der i sig selv kom i IIS 3.0, og kom også med Visual InterDev 1.0.

MDAC 1.5

MDAC 1.5 blev frigivet mellem september 1997 og marts 1998 og involverede en mere central distributionsmekanisme end MDAC 1.0. Den blev frigivet med Microsoft Internet Explorer 4.0, Internet Client SDK 4.0 og gennem en CD-ROM, der blev givet på 1997 Professional Developers Conference (PDC). Der var fem versioner af MDAC 1.5:

  • MDAC 1.5 (indledende udgivelse): inkluderet i Internet Explorer 4.0 og Internet Client SDK.
  • MDAC 1.5a: kan downloades fra Microsofts websted
  • MDAC 1.5b: fulgte med Windows NT 4.0 Option Pack & Office 97
  • MDAC 1.5c: faste problemer med ADO-threading og ODBC Connection Pooling og blev distribueret via Microsofts websted. Det fulgte kun med ADO / MDAC runtime-komponenter.
  • MDAC 1.5d: fulgte med Windows 98 og Internet Explorer 4.01 service pack 1.

De forskellige versioner af MDAC 1.5 bestod af:

  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • Remote Data Service 1.5, der erstattede Advanced Data Connector.

Denne version af MDAC havde en sikkerhedsfejl, der gjorde den sårbar over for et eskaleret privilegiumangreb . Sårbarheden forårsagede systemer, der havde både IIS og MDAC installeret for at give en uautoriseret webbruger mulighed for at udføre shell-kommandoer på IIS-systemet som en privilegeret bruger. Dette gjorde det muligt for angriberen at bruge MDAC til at tunnelere SQL og andre ODBC-dataforespørgsler gennem den offentlige forbindelse til et privat back-end-netværk, når det er på et multi-hjem Internet-forbundet IIS-system. Det tillod også brugeren at få uautoriseret adgang til sikrede, ikke-offentliggjorte filer på IIS-systemet

MDAC 1.5 var den sidste udgivelse af dataadgangskomponenter, der blev understøttet under Windows NT 3.51 SP5.

MDAC 2.0

MDAC 2.0 blev distribueret med Data Access 2.0 SDK og omfattede indholdet af MDAC 1.5, ODBC 3.5 SDK og OLE DB 1.5 SDK og OLE DB til OLAP- specifikation. Det havde også inkluderet mange opdateringer til kerneproduktet, herunder en sikkerhedsfunktion tilføjet til RDS, som forhindrede det i at blive brugt skadeligt på en IIS-server. Denne version blev inkluderet i Windows NT 4.0 SP4 og også med Visual Studio 6.0, der fulgte med den fulde Data Access SDK.

MDAC 2.1

MDAC 2.1 blev distribueret med SQL Server 7.0 og SQL Server 6.5 SP5. MDAC 2.1 SP1 blev distribueret med Internet Explorer 5 og MDAC 2.1 SP1a (GA) blev distribueret med Microsoft Office 2000, BackOffice 4.5 og Visual Studio 98 SP3. Imidlertid blev ingen af ​​disse versioner af MDAC frigivet til offentligheden via internettet . MDAC 2.1 SP2 blev distribueret fra Microsofts websted. Komponenterne, der var inkluderet i 2.1, var:

  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • OLE DB-udbyderen til ODBC, SQL Server og Oracle
  • JRO 2.1
  • en Jet-driver
  • RDO.

Denne version havde sikkerhedssårbarheder, hvorved en ukontrolleret buffer kunne tillade et forhøjet privilegiumangreb. Dette blev fundet et stykke tid senere, og det påvirkede MDAC 2.1, 2.5 og 2.6 og blev behandlet i et senere program

MDAC 2.5

MDAC 2.5 blev frigivet den 17. februar 2000 og distribueret med Windows 2000 , og MDAC-servicepakkerne blev frigivet parallelt med Windows 2000-servicepakkerne. De blev også distribueret via Microsofts websted. Tre servicepakker blev frigivet. Komponenterne inkluderet i 2.5 var:

  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • mange OLE DB-udbydere
  • JRO 2.5
  • ODBC 3.51
  • mange ODBC-drivere
  • mange Jet-chauffører.

Flere udgaver blev fundet i denne version af MDAC. Når du bruger OLE DB Session Pooling, vil Microsoft COM + forsøge kontinuerligt at indlæse og aflaste OLE DB, og der kan opstå en konflikt, der får OLE DB Session Pooling til at køre ved 100% CPU-brug. Dette blev senere rettet. Microsoft offentliggjorde en komplet liste over fejl, der er rettet i MDAC 2.5 Service Pack 2 og MDAC 2.5 Service Pack 3 . En sikkerhedssårbarhed eksisterede også (senere rettet), hvorved der blev fundet en ukontrolleret buffer i SQL Server-driveren. Denne fejl blev introduceret i MDAC 2.5 SP2.

MDAC 2.6

MDAC 2.6 blev frigivet i september 2000 og blev distribueret via internettet og med Microsoft SQL Server 2000 blev MDAC 2.6 RTM, SP1 (udgivet 20. juni 2001) og SP2 (udgivet 11. juni 2002) distribueret parallelt med Microsoft SQL Server 2000 servicepakker og kunne også downloades fra Microsofts websted.

Begyndende med denne version af MDAC var Microsoft Jet, Microsoft Jet OLE DB Provider og ODBC Desktop Database Drivers ikke inkluderet. I stedet kunne disse installeres manuelt. Microsoft frigav også en advarselsadvarsel om, at MDAC 2.6 ikke skal installeres på en SQL Server 7.0-klynge, fordi "hvis du installerer MDAC 2.6 eller nyere på en hvilken som helst node i klyngen, direkte eller gennem installationen af ​​et andet program, kan det forårsage en katastrofal fejl i SQL Server Agent eller andre SQL Server-tjenester. " Dette problem påvirkede Veritas Softwares Backup Exec 9.0 til Windows-servere, fordi det installerer Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) som sin database. Revision 4367 installerede MDAC version 2.6 SP2, mens revision 4454 installerede MDAC version 2.7 SP1, som ikke havde problemet

MDAC 2.7

MDAC 2.7 blev frigivet i oktober 2001 via Microsofts websted. En opdateringsudgivelse blev udstedt i april 2002 gennem frigivelsen af ​​Windows XP og via Microsofts websted. Version 2.7 var tilgængelig på amerikansk engelsk , kinesisk (traditionel og forenklet), tysk, japansk, koreansk, brasiliansk portugisisk , tjekkisk , dansk, græsk, slovakisk , slovensk , spansk, finsk, fransk, ungarsk, italiensk, hollandsk , norsk, polsk, Portugisisk, russisk, svensk og tyrkisk . Hebraisk og arabisk var kun tilgængelige via Windows XP.

Hovedfunktionsændringen var understøttelse af Microsofts 64-bit operativsystem, men understøttelse af Banyan VINES blev også droppet fra denne version af MDAC. Der var flere kendte problemer: MDAC 2.7 fortsatte med at forårsage forbindelsesproblemer på klyngede servere, der kører Microsoft SQL Server 6.5 eller SQL Server 7.0, uden nogen løsning leveret af Microsoft. Når du opretter eller konfigurerer ODBC -datakildenavne (DSN'er) ved hjælp af Microsoft SQL Server ODBC-driveren, kan netværksbiblioteksprotokollen uventet skifte til TCP / IP , selvom DSN var konfigureret til at bruge navngivne rør . Dette problem blev fundet af InfoWorld- reporter Randall C. Kennedy , der identificerede, at ændringen faktisk blev foretaget i MDAC 2.6, men blev aldrig dokumenteret. Det blev opdaget ved test af klient- / serverdatabasearbejdsbelastninger på en Windows XP-computer; InfoWorld hævder, at selvom den samlede server-CPU-udnyttelse kun steg med 8 procent ved hjælp af TCP / IP, faldt kontekstskiftere pr. Sekund med mere end 150 procent (hvilket naturligvis er umuligt, fordi du derefter ville have en negativ kontekstskifthastighed - faldet er enten 33 % eller 60% afhængigt af hvilken planet forfatteren var på i skrivende stund) til en 10-arbejdsbelastning. De var ikke imponeret over, at en grundlæggende funktionel ændring af Net-Libs standardadfærd fandt sted uden mere end en forbigående omtale i et ikke-relateret dokument. Windows XP-brugere oplevede også undertiden problemer med at oprette forbindelse til SQL Server, fordi SQL Server forsøger at bruge certifikater, den finder på den lokale computer, men hvis der er mere end et certifikat til rådighed, vidste det ikke, hvilket certifikat der skulle bruges. Når du forsøger at bruge Microsoft Analysis Services 2000 RTM, vises der undertiden en fejl, når du prøver at gennemse terninger. Microsoft opdagede også et problem i Windows 95 , Windows 98 og Windows Me 's installationsprogram, der forhindrede MDAC-installationsprogrammet i at rulle tilbage, når det stødte på en installationsfejl.

Flere sikkerhedsproblemer blev løst af Microsoft til MDAC 2.7. David Litchfield fra Next Generation Security Software Ltd rapporterede en sikkerhedssårbarhed, der skyldes, at en af ​​ODBC-funktionerne i MDAC, der bruges til at oprette forbindelse til datakilder, indeholdt en ukontrolleret buffer. En anden sårbarhed, der blev løst, var en, hvor en angriber kunne reagere på en SQL Server-opdagelsesmeddelelse, der blev sendt af klienter med en specielt udformet pakke, der kunne forårsage bufferoverløb. En anden fejl blev fundet, hvorved kode kunne udføres eksternt, da angriberen reagerede på udsendelsen med en anden specielt udformet pakke.

MDAC 2.8

MDAC 2.8 blev udgivet i august 2003 og distribueret med Microsoft Windows Server 2003 , samt på Microsofts Data Access Technologies hjemmeside. Det introducerede ingen nye funktioner til produktet, men løste et antal fejl og sikkerhedsproblemer - en reg-fil (automatiserer ændringer i registreringsdatabasen) blev fjernet, der fik serveren til at køre i en "usikker" tilstand, hvorved RDS kunne udnyttes til få uautoriseret adgang til systemet, og en ny begrænsning blev pålagt længden af ​​Shape-forespørgselsstrengen. Der var også flere ODBC-administratorændringer.

Den 23. maj 2005 meddelte Brad Rhodes (Lead Program Manager for Microsoft Data Access Technologies), at MDAC 2.8 SP1 var den sidste enkeltstående omfordeling af MDAC, som Microsoft vil sende. MDAC er nu en officiel komponent i Microsofts operativsystem, selvom de leverer løbende fejlrettelser og sikkerhedsproblemer til tidligere udgivne versioner af den webdistribuerede version. Imidlertid har Microsoft oprettet en ny komponent kaldet SQL Native Client (SQLNCLI), som er en stand-alone dataadgang API, der har kombineret OLE DB og ODBC bibliotekerne i en DLL. Det blev dannet for at være uafhængigt af MDAC, som nu er afhængig af den tilstand, operativsystemet er i - en udvikler linker nu til dette bibliotek og undgår situationer, hvor en opdatering af operativsystemet, der opdaterer MDAC, bryder applikationer bygget til en anden version af MDAC.

Windows 7 SP1 har brudt fremad kompatibilitet med MDAC 2.8. Software kompileret på Windows 7 SP1, der er afhængig af MDAC ADO, fungerer ikke på Windows-versioner før Windows 7 SP1 (inklusive Windows 7 RTM, Vista, XP). Microsoft har leveret løsninger til at omgå dette problem for nogle applikationer, men VBA-applikationer forbliver berørt. Løsningen til dette problem blev frigivet i februar 2012.

Windows DAC 6.0

Windows Vista bruger ikke længere MDAC, men bruger i stedet Windows DAC, som består af opdaterede versioner af ADO-, OLE DB- og ODBC-komponenter. Ifølge Microsoft indeholder "Windows DAC nogle ændringer til at arbejde med Windows Vista, men svarer næsten udelukkende til MDAC 2.8."

Versionskontrol

Der er to måder at kontrollere den version af MDAC, der er installeret på en computer. For Windows 2000, Windows XP og Windows Server 2003 er en måde at kontrollere via Microsofts Component Checker- program, der sammenligner værdien af ​​hver installeret MDAC DLL med MDAC-filmanifestet. Den anden måde er at kontrollere nøglen HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVeri Windows-registreringsdatabasen . Microsoft bemærker, at disse oplysninger kan være forkerte for versioner af MDAC før 2.1 sammenlignet med de versioner af MDAC-filer, der er installeret på systemet

Version Udgivelses dato Inkluderet i Funktioner Sikkerhedsspørgsmål
1.0 August 1996
  • ADC - IIS 3.0
  • OLE DB 1.1 SDK (OLE DB 1.1 og ADO 1.0) - Visual Studio
  • Alle komponenter inkluderet i Visual Interdev 1.0 og med Active Server Pages (frigivet i IIS 3.0)
  • ODBC 3.0
  • OLE DB 1.1
  • ADO 1.0
  • ADC 1.0
  • ODBC-drivere til Access / Jet, SQL Server og Oracle-databaser

Ingen bulletiner frigivet

1.5

September 1997 - marts 1998
  • Microsoft Internet Explorer 4.0
  • Internet Client SDK 4.0 (fra CD udstedt på Microsoft PDC)
  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • RDS 1.5 (erstattet ADC 1.0)
1,5a September 1997 – marts 1998

Service frigivelse

1,5b September 1997 – marts 1998

Service frigivelse

1,5c September 1997 – marts 1998
  • Rettede problemer med ADO-threading og ODBC Connection Pooling
  • Kom kun med ADO / MDAC runtime-komponenter
2.0 1. juli 1998
  • Visual Studio 98
  • Dataadgang 2.0 SDK
  • ODBC 3.5 SDK
  • OLE DB 1.5 SDK
  • OLE DB til OLAP-specifikation
2.0SP1 1. juli 1998
  • Windows NT 4.0 SP4

Y2K afhjælpning til Windows NT 4.0

2.0SP2 1. juli 1998
  • Microsofts websted

Y2K-oprydning for alle platforme

2.1 11. juli 1998
  • SQL Server 7.0
  • SQL Server 6.5 SP5
  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • OLE DB-udbyder til ODBC, SQL Server og Oracle
  • JRO 2.1
  • ODBC-driver
  • Jet-driver
  • RDO
2.1 SP1 15. marts 1999
  • Internet Explorer 5.0
  • Windows 98 Anden udgave
2.1 SP1a (GA) 1. april 1999
  • Office 2000
  • BackOffice 4.5
  • Visual Studio 98 SP3
  • Internet Explorer 5.0a (minimal installation)
2.1 SP2 Juli 1999
2.5 17. februar 2000
  • Windows 2000
  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • OLE DB-udbyder til ODBC-driveren til:
    • SQL
    • Server
    • Site Server Search
    • Internet Publishing
    • Jet 4.0 (Access 2000)
    • Oracle
    • Indekseringstjenester (indeksserver)
    • Microsoft Data Shaping Services
    • OLAP-tjenester
    • DTS-pakker
    • Microsoft Directory-tjenester
    • Server DTS Flat File
    • OLE DB Simple Provider
  • JRO 2.5
  • ODBC 3.51
  • en ODBC-driver til
    • Microsoft Access
    • SQL Server
    • Microsoft Excel
    • Tekst
    • Visual FoxPro
    • FoxPro VFP
    • dBase
    • dBase VFP
    • Paradoks
    • Oracle
  • Jetdrivere til:
    • Excel
    • Microsoft Exchange
    • Adgang
    • tekstfiler
    • Lotus 1-2-3
    • Paradoks
    • xBase
2.5 SP1 31. juli 2000
  • Windows 2000 SP1
2.5 SP2 April 2000
  • Windows 2000 SP2
2.5 SPS3 December 2003
  • Windows 2000 SP3
2.6 September 2000
  • SQL Server 2000
Ikke inkluderet (manuelt installeret):
  • Microsoft Jet
  • Microsoft Jet OLE DB-udbyder
  • ODBC Desktop Database drivere
2.6 SP1 Maj 2001
  • SQL Server 2000 SP1
2.6 SP2 Maj 2002
  • SQL Server 2000 SP2
2.7 Oktober 2001
  • Windows XP
  • Understøttelse af 64-bit operativsystemer
  • Banyan VINES- support faldt
2.8 August 2003
  • Windows Server 2003

Rettede fejl og sikkerhedsproblemer

2.8 SP1 Maj 2005
  • SQL Server 2000 SP4
  • Windows XP SP2

Rettede fejl

2.8 SP2 Marts 2005
  • Windows Server 2003 SP1
9,0 Aldrig frigivet
  • Visual Studio 2005 Beta 1 (Fjernet i efterfølgende udgivelser)
  • SQL Server 2005 Beta 1 (Fjernet i efterfølgende udgivelser)
Windows DAC 6.0 (en variant af MDAC til brug med Vista) November 2006
  • Versionsnummer synkroniseret med Windows-version
  • Ingen andre nye funktioner

Referencer

Yderligere læsning

eksterne links