Microsoft 데이터 액세스 구성 요소
Microsoft Data Access Components![]() | 이 글은 인용 방식이 불분명하다.. (2013년 8월) (이 를 및 된 의 과 를 하여 더 할 수 |
![]() MDAC는 윈도우즈 플랫폼에서 다양한 데이터 소스에 액세스하기 위한 통일된 프레임워크를 제공한다. | |
개발자 | 마이크로소프트 |
---|---|
최종 발매 | 2.8 SP1(2.81.117.6) / 2005년 5월 |
운영 체제 | Windows 98, Windows ME, Windows NT 4, Windows 2000, Windows XP, Windows Server 2003, Windows 7, Windows 10 |
유형 | 데이터베이스 |
면허증 | 프리웨어 |
웹사이트 | msdn2 |
Microsoft Data Access Components(MDAC, Windows DAC라고도 함)는 프로그래머가 거의 모든 데이터 저장소에 액세스할 수 있는 통일되고 포괄적인 애플리케이션 개발 방법을 가능하게 하는 상호 관련 Microsoft 기술의 프레임워크다.그 구성 요소는 다음과 같다.ActiveX 데이터 개체(ADO), OLE DB 및 ODBC(Open Database Connectivity)를 참조하십시오.Jet Database Engine, MSDASQL(ODBC용 OLE DB 제공자), RDS(원격 데이터 서비스)와 같이 사용되지 않는 몇 가지 구성 요소도 있었다.이전의 Data Access Objects API 및 Remote Data Objects와 같은 일부 구성 요소도 더 이상 사용되지 않게 되었다.
MDAC의 첫 버전은 1996년 8월에 발매되었다.당시 마이크로소프트는 MDAC가 독립형 프로그램이라기보다는 개념이며 널리 보급되는 방법이 없다고 말했다.이후 마이크로소프트는 MDAC에 대한 업그레이드를 웹 기반 재배포 가능 패키지로 출시했다.결국 이후 버전은 마이크로소프트 윈도우즈 및 Internet Explorer와 통합되었고, MDAC 2.8 SP1에서는 재배포 가능한 패키지로 MDAC를 제공하는 것을 중단했다.
MDAC는 역사를 통틀어 여러 보안 결함의 대상이 되어 왔으며, 이는 취약성이 일반적으로 이후 버전에서 상당히 신속하게 수정되었음에도 불구하고 권한 상승 공격과 같은 공격을 초래했다.현재 버전은 2.8 서비스 팩 1이지만, 이 제품은 많은 다양한 버전을 가지고 있었고 많은 구성 요소들이 더 이상 사용되지 않고 새로운 마이크로소프트 기술로 대체되었다.MDAC는 현재 윈도 비스타에서 윈도 DAC로 알려져 있다.
건축
최신 버전의 MDAC(2.8)는 여러 상호 작용하는 구성요소로 구성되며, ODBC(여러 플랫폼에서 사용 가능한)를 제외하고 모두 Windows에 특화된 구성요소들이다.MDAC 아키텍처는 ADO와 ADO로 구성된 프로그래밍 인터페이스 계층의 세 가지 계층으로 볼 수 있다.NET, 오라클 및 마이크로소프트(OLE DB, .NET 관리 제공자 및 ODBC 드라이버)와 같은 데이터베이스 벤더가 개발한 데이터베이스 액세스 계층 및 데이터베이스 자체.이러한 구성요소 계층은 모두 MDAC API를 통해 애플리케이션에 제공된다.마이크로소프트 SQL 서버 전용의 독점 액세스 방법인 마이크로소프트 SQL 서버 네트워크 라이브러리도 MDAC에 포함되어 있다.Windows 애플리케이션 개발자들은 ADO나 ADO를 사용하도록 권장된다.NET for data access, 이점은 애플리케이션 프로그램 사용자가 MDAC에 의해 지원되어야 한다는 점을 제외하고 데이터베이스 아키텍처의 선택에 제약되지 않는다는 것이다.당연히 개발자들은 OLE DB와 ODBC에 직접 접속하는 응용프로그램을 작성할 수 있다.
Microsoft SQL Server 네트워크 라이브러리
Microsoft SQL Server Network Library(Net-Lib라고도 함)는 Microsoft SQL Server가 다양한 네트워크 프로토콜을 사용하여 데이터를 읽고 쓰는 데 사용한다.Net-Lib는 SQL Server에만 해당되지만 Microsoft는 이를 MDAC에 포함시킨다.SQL Server는 ODS(Open Data Services) 라이브러리를 사용하여 Net-Lib와 통신하며, Net-Lib는 Windows NT 운영 체제 라인의 Win32 서브시스템과 직접 인터페이스한다.SQL Server Network Library는 SQL Server와 함께 번들로 제공되는 Client Network Utility를 사용하여 제어된다.
각 Net-Lib 지원 네트워크 프로토콜은 별도의 드라이버를 가지고 있으며(장치 드라이버와 혼동되지 않도록), 프로토콜 스택에서 세션 계층을 지원한다.Net-Lib에는 두 가지 일반적인 유형이 있다: 1차 및 2차.1차 Net-Lib는 Super Socket Net-Lib와 Shared Memory Net-Lib로 구성되며, TCP/IP 및 명명된 파이프 네트워크 라이브러리를 포함한 수많은 2차 Net-Libs가 있다(이명된 파이프는 ID가 부여된 시스템 영구적 파이프라인을 통해 다른 프로세스와 통신하는 방법이다).SQL Server용 Microsoft OLE DB Provider(SQLOLEDB)는 기본 Net-Libs를 통해 통신한다.
Super Socket Net-Lib는 컴퓨터 간 통신을 처리하고 보조 Net-Libs를 조정하지만 TCP/IP Secondary Net-Lib는 Windows Sockets 2 API를 직접 호출한다는 점에서 예외적이다.반얀 넝쿨, 애플톡, 서버넷, IPX/SPX, 기가넷, RPC Net-Libs는 MDAC 2.5에서 계속 떨어졌다.네트워크 라이브러리 라우터는 이러한 모든 프로토콜을 관리하는 작업을 가지고 있었지만, 지금은 명명된 파이프 2차 Net-Lib만이 라우터에 의해 관리된다.또한 Super Socket Net-Lib는 Windows SSL API를 사용하여 데이터 암호화를 처리한다.
반면 Shared Memory Net-Lib는 한 컴퓨터에 존재하는 SQL Server의 여러 인스턴스 간의 연결을 관리한다.프로세스 간 통신을 위해 공유 메모리 영역을 사용한다.이것은 본질적으로 안전하며, 운영체제가 공유 메모리 인스턴스의 영역에 대한 다른 어떠한 프로세스 액세스도 허용하지 않기 때문에 한 대의 컴퓨터에 존재하는 SQL Server 인스턴스들 사이에 데이터 암호화가 필요하지 않다.
Net-Lib은 인증된 연결(신뢰할 수 있는 연결이라고 함)을 지원하는 프로토콜에 대해 로그인한 사용자의 보안 컨텍스트를 가장하는 것도 지원할 수 있다.이를 통해 Net-Lib는 윈도우즈 인증을 통해 통합 로그온 인증 메커니즘을 제공할 수 있다.윈도우즈 98 또는 윈도우즈 Me에서는 윈도우즈 인증이 지원되지 않음.[1]
OLE DB
OLE DB(OLEDB 또는 OLE-DB라고도 함)는 MDAC 응용프로그램이 서로 다른 유형의 ([데이터] 저장소에 균일한 방식으로 접근할 수 있도록 한다.마이크로소프트는 이 기술을 이용해 웹사이트에 저장되는 데이터로부터 접근해야 할 데이터 저장소를 분리했다.이는 서로 다른 애플리케이션들이 서로 다른 데이터 유형과 출처에 대한 접근을 필요로 하며, 기술별 기능성에 접근하는 방법을 반드시 알 필요는 없기 때문에 수행되었다.그 기술은 개념적으로 소비자와 제공자로 구분된다.소비자는 데이터에 대한 액세스가 필요한 애플리케이션이며, 제공자는 컴포넌트 오브젝트 모델(또는 COM)의 사용을 통해 OLE DB 인터페이스를 노출하는 소프트웨어 컴포넌트다.
OLE DB는 MDAC가 사용하는 데이터베이스 접속 인터페이스 기술이다.Oracle 및 SQL Server와 같은 복잡한 데이터베이스를 통해 텍스트 파일 또는 스프레드시트와 같은 단순한 데이터 저장소에 액세스하기 위해 OLE DB 공급자를 만들 수 있다.그러나, 서로 다른 데이터 저장소 기술은 서로 다른 기능을 가질 수 있기 때문에, OLE DB 제공자들은 가능한 모든 가능한 인터페이스를 구현하지 않을 수 있다.이용 가능한 기능은 COM 객체의 사용을 통해 구현된다 – OLE DB 제공자는 데이터 저장소 기술의 기능을 특정 COM 인터페이스에 매핑할 것이다.마이크로소프트는 인터페이스의 가용성이 관련된 데이터베이스 기술에 따라 적용되지 않을 수 있기 때문에 "제공자별"이라고 부른다.그러나 제공자들은 또한 데이터 저장소의 기능을 증가시킬 수 있다. 이러한 기능은 Microsoft 용어로 서비스라고 알려져 있다.
SQL Server용 Microsoft OLE DB Provider(SQLOLEDB)는 Microsoft가 Microsoft SQL Server에 대해 6.5 이상 버전에서 제공하는 OLE DB Provider이다.
범용 데이터 링크
범용 데이터 링크 파일(또는 '.udl 파일')은 연결 속성을 지정하기 위한 공통 사용자 인터페이스를 제공한다.사용자는 데이터 링크 속성 대화상자를 사용하여 연결 문자열에 직접 손으로 지정하는 대신 .udl 파일에 연결 정보를 저장할 수 있다.결과적으로, 이 파일들은 편리한 수준의 양방향성을 제공한다.또한, 대화상자는 다양한 대상 응용프로그램에 대한 다수의 대체 OLE DB 데이터 공급자를 지정한다.[2]
ODBC
ODBC(Open Database Connectivity)는 프로그래밍 언어(일반적으로 C)를 통해 액세스되는 네이티브 인터페이스로, 네이티브 라이브러리로 전화를 걸 수 있다.MDAC에서 이 인터페이스는 DLL로 정의된다.액세스해야 하는 각 데이터베이스에는 별도의 모듈이나 드라이버가 필요하다.ODBC API의 기능은 이러한 DBMS 고유 드라이버에 의해 구현된다.마이크로소프트가 MDAC에서 제공하는 드라이버를 SQL 서버 ODBC 드라이버(SQLODBC)라고 하며, (이름의 의미대로) 마이크로소프트 SQL 서버용으로 설계되었다.SQL Server v6.5 이상을 지원한다.[3]ODBC는 프로그램이 데이터베이스에 대한 독점 인터페이스를 알 필요 없이 데이터베이스에 액세스하는 SQL 요청을 사용할 수 있도록 한다.SQL 요청을 처리하고 개별 데이터베이스 시스템이 이해하는 요청으로 변환한다.마이크로소프트에 따르면 "SQL 서버 2012 이후, 마이크로소프트 윈도 Azure SQL 데이터베이스를 포함한 가장 최근의 서버 기능에 대해 ODBC 드라이버가 업데이트되고, SQL 서버용 마이크로소프트 ODBC 드라이버로 출시될 것"[4]이라고 밝혔다.
ADO
ActiveX Data Objects(ADO)는 OLE DB에 대한 고급 프로그래밍 인터페이스다.계층적 객체 모델을 사용하여 OLE DB가 지원하는 소스에서 응용 프로그램이 프로그래밍 방식으로 데이터를 생성, 검색, 업데이트 및 삭제할 수 있다. ADO는 일련의 계층적 COM 기반 객체 및 모음으로 구성되며, 이는 다른 많은 객체의 컨테이너 역할을 한다.프로그래머는 데이터를 조작하기 위해 ADO 객체에 직접 접근할 수도 있고, 여러 ADO 메커니즘을 통해 데이터베이스로 SQL 질의를 보낼 수도 있다.ADO는 9개의 물건과 4개의 소장품으로 이루어져 있다.
컬렉션:
- 필드: 이 컬렉션에는 필드 객체 집합이 포함되어 있다.컬렉션은 Recordset 객체 또는 Record 객체에서 사용될 수 있다.레코드 집합 개체에서 필드 컬렉션을 구성하는 각 필드 개체는 해당 레코드 집합 개체의 열에 해당한다.레코드 개체에서 필드는 트리 구조화된 네임스페이스(Microsoft OLE DB Provider for Internet Publishing과 같은 반구조화된 데이터 공급자에 사용됨)를 가리키는 절대 또는 상대 URL이거나 해당 레코드 개체와 연결된 기본 스트림 개체에 대한 참조일 수 있다.[5]
- 속성:개체는 개체의 속성 집합에 포함된 둘 이상의 속성 개체를 가질 수 있다.[6]
- 매개 변수: 명령 개체에는 미리 정의된 동작을 변경하기 위한 여러 매개 변수 명령이 있을 수 있으며 각 매개 변수 개체는 명령 개체의 매개 변수 집합에[7] 포함되어 있음
- 오류: 오류 컬렉션 자체가 연결 개체에 포함된 동안 모든 공급자가 생성한 오류는 오류 개체 모음으로 전달된다.ADO 작업이 오류를 생성하면 수집이 지워지고 수집에 새로운 오류 개체 그룹이 생성된다.[8]
개체는 다음과 같다.
- 연결:연결 개체는 ADO가 OLE DB를 통해 데이터 저장소에 연결하는 것이다.연결 개체는 세션에 대한 정보를 저장하고 데이터 저장소에 연결하는 방법을 제공한다.일부 데이터 저장소는 서로 다른 연결 방법을 가지고 있으므로, 특정 OLE DB 제공자에 대한 연결 개체에서 일부 방법이 지원되지 않을 수 있다.연결 개체는 연결을 키 값 쌍 목록(예: ")으로 지정하는 연결 문자열을 사용하여 'Open' 방법을 사용하여 데이터 저장소에 연결한다.
Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';
").[9] 연결 개체에 필요한 데이터 저장소 연결 유형을 식별해야 하는 시작.이는 다음 중 하나여야 한다. - 명령: 연결 개체가 데이터 소스에 세션을 설정한 후 명령 개체를 통해 데이터 공급자에게 명령이 전송된다.명령 개체를 사용하여 SQL 쿼리를 제공자에게 직접 전송할 수 있음텍스트 속성, 매개 변수 개체 또는 매개 변수 모음을 사용하여 매개 변수화된 쿼리 또는 저장 프로시저를 보내거나 쿼리를 실행하고 실행 방법을 통해 결과를 데이터 집합 개체로 반환하십시오.Stream, RecordSet 또는 Connection 객체와 같은 다른 객체와 관련된 명령 객체에 사용할 수 있는 몇 가지 다른 방법이 있다.[11]
- 레코드 집합: 레코드 집합은 레코드의 그룹이며, 기본 테이블에서 나오거나 테이블에 대한 쿼리의 결과로 나올 수 있다.RecordSet 객체는 필드 집합과 속성 집합을 포함한다.[12]필드 집합은 테이블의 해당 열인 필드 객체의 집합이다.Properties 컬렉션은 OLE DB 공급자의 특정 기능을 정의하는 Property 오브젝트 집합이다.RecordSet에는 그 안에 존재하는 데이터를 검사하기 위한 수많은 방법과 속성이 있다.[13]레코드의 값을 변경한 다음 레코드를 호출하여 레코드 집합에서 레코드를 업데이트할 수 있다.
Update
또는UpdateBatch
방법의새 레코드를 추가하는 작업은AddNew
기능을 발휘한 다음 를 호출하여Update
또는UpdateBatch
방법의[14]기록도 Delete method와 함께 recordset에서 삭제된 다음 Update method를 호출하여 삭제한다.그러나 참조 무결성의 위반으로 인해 삭제될 수 없는 경우, 레코드 세트는 다음 번호로 호출한 후에도 편집 모드로 유지된다.Update
방법의프로그래머는 명시적으로 에 방문해야 한다.CancelUpdate
업데이트를 취소하는 기능.또한 ADO는 트랜잭션을 롤백하고(지원되는 경우) 일괄 업데이트를 취소할 수 있다.[15]또한 레코드 세트는 즉시 업데이트를 통해, 일괄 업데이트를 통해 [16]또는 트랜잭션의 사용을 통해 세 가지 방법 중 하나로 업데이트될 수 있다.- 즉시:레코드 세트는 다음을 사용하여 잠근다.
adLockOptimistic
또는adLockPessimistic
데이터가 데이터 원본에서 업데이트되는 것은 레코드가 변경되고Update
메소드를 호출한다. - 배치: 레코드 세트가 다음 중
adLockBatchOptimistic
그리고 매번Update
데이터는 임시 버퍼에서 업데이트된다고 한다.마지막으로 언제UpdateBatch
데이터가 데이터 소스에서 완전히 업데이트된다고 한다.이것은 모두 기억 속에서 행해진다는 이점이 있으며, 만약 문제가 발생하면UpdateCancel
호출되고 업데이트는 데이터 소스로 전송되지 않음 - 트랜잭션:OLE DB 제공자가 허용하면 트랜잭션을 사용할 수 있다.거래를 시작하기 위해 프로그래머는
BeginTrans
필요한 업데이트 방법 및 수행그들이 모두 끝나면 프로그래머는 그 프로그램을 실행한다.CommitTrans
방법의RollbackTrans
트랜잭션 내부에서 변경한 내용을 취소하고 트랜잭션이 시작되기[17] 전의 상태로 데이터베이스를 롤백하기 위해 호출할 수 있음
- 즉시:레코드 세트는 다음을 사용하여 잠근다.
- 레코드: 이 개체는 데이터베이스에서 하나의 레코드를 나타내며 필드 컬렉션을 포함한다.RecordSet는 Record 객체의 모음으로 구성된다.[18]
- 스트림: 주로 RecordSet 객체에서 사용되는 스트림은 바이트 스트림을 읽고 쓰는 수단이다.[19]주로 XML 형식으로 레코드 세트를 저장하고,[20] 명령의 대안으로 OLE DB 공급자에게 명령을 전송하는 데 사용된다.텍스트 개체 및 이진 또는 텍스트 파일의 내용 포함
- 매개변수: 매개변수는 공통 기능 조각의 동작을 변경하는 수단이다. 예를 들어 저장 프로시저가 수행해야 하는 작업에 따라 전달되는 매개변수가 다를 수 있다. 이러한 매개변수를 매개변수화된 명령이라고 한다.[21]
- 필드: 각 레코드 오브젝트는 많은 필드를 포함하며, RecordSet 오브젝트는 해당하는 필드 오브젝트도 포함한다.RecordSet 개체의 Field 개체는 해당 개체가 참조하는 데이터베이스 테이블의 열에 해당한다.[22]
- 속성:이 개체는 OLE DB 제공자에 한정되며 제공자가 구현한 기능을 정의한다.속성 개체는 기본 제공 속성일 수 있음 – 이미 ADO에 의해 구현된 잘 정의된 속성이며 따라서 변경할 수 없음 - 또는 동적 속성 - 기본 데이터 공급자에 의해 정의되며 변경할[23] 수 있음
- 오류: ADO 사용 중 OLE DB 제공자 오류가 발생하면 오류 컬렉션에 오류 개체가 생성된다.[24]그러나 다른 오류는 오류 개체에 들어가지 않는다.예를 들어, RecordSet 또는 Field 객체의 데이터를 조작할 때 발생하는 모든 오류는 Status 속성에 저장된다.[25]
아도넷
ADO.NET은 ADO의 최신 버전(ADO 2.8 이후, 현재 종종 ADO Classic으로 언급됨)이며, MDAC 2.8 스택에 속하며, 클래식 ADO와 함께 포함된다.그것은 마이크로소프트 사를 중심으로 만들어졌다.NET. 때로는 ADO로부터의 진화적인 단계로 보여지지만, 몇 가지 근본적인 구조적인 변화는 마이크로소프트에 의해 이루어졌다.ADO.NET은 를 통해 실행된다.NET Managed Provider, 를 위해 특별히 설계된 OLE DB Provider의 수정된 버전.NET. 객체 구조가 더 이상 레코드 집합 객체를 중심으로 구축되지 않는다.대신 Dataset 개체는 여러 소스에서 수집된 데이터를 포함하는 데 사용된다.이것은 프로그래머에게 투명하다.기존 ADO Recordset과는 달리, Dataset의 디자인은 연결이 끊어진 데이터의 사용을 촉진한다.개념적으로, 데이터셋 개체는 어떤 방향으로든 데이터를 조작할 수 있는 그 자체로 작은 메모리 내 관계형 데이터베이스로 볼 수 있다.변경사항을 데이터베이스로 다시 전파하기 위해 데이터 소스와 DataSet 개체 간에 데이터를 전송하는 DataAdapter 개체가 사용된다.커서는 ADO에서도 더 이상 사용되지 않았다.NET는 DataReader 객체로 대체되며, 대용량 결과 목록을 저장하지 않고 한 번에 한 레코드씩 효율적으로 처리하는 데 사용된다.[26]
사용되지 않거나 사용되지 않는 구성 요소
MDAC는 지속적으로 진화하는 구성요소 프레임워크다.이와 같이, 이전에는 그것의 일부였지만, 그 이후는 사용되지 않거나 프레임워크에서 완전히 제거된 몇 가지 구성요소가 있었다.
제트 데이터베이스 엔진 및 JRO
Jet는 Joint Engine Technology의 약자로 Microsoft Access, Microsoft Exchange Server 및 Visual Basic에 사용되는 데이터베이스 엔진이었다.Jet는 RDBMS(Relational Database Management System)의 일부였으며 Microsoft 데이터베이스에 액세스하는 데 다른 소프트웨어가 사용할 수 있는 단일 인터페이스를 제공했다.Jet는 또한 보안, 참조 무결성, 트랜잭션 처리, 색인화, 기록 및 페이지 잠금, 데이터 복제에 대한 지원을 제공했다.이후 버전의 Jet에서는 엔진을 확장하여 SQL 쿼리를 실행하고, 문자 데이터를 유니코드 형식으로 저장하며, 보기를 생성하고, Microsoft SQL Server를 사용하여 양방향 복제를 허용했다.그것은 SQL Server Express를 대체한 MSDE로 대체되었다.
젯에게는 세 개의 모듈이 있었다.하나는 Microsoft Access 데이터베이스 파일(MDB)을 직접 조작할 수 있는 Jet Dynamic Link Library(DLL)인 Native Jet ISAM Driver로 ISAM(Indexed Sequential Access Method) 데이터베이스의 변형 형태였다.또 다른 모듈로는 ISAM 데이터베이스에 대한 액세스를 허용하는 DLL인 ISAM Drivers가 있었는데, 그 중에는 Xbase, Paradis, Btrieve, FoxPro 파일도 있었다.최종 모듈은 DAO(Data Access Objects) DLL이었고, DAO는 프로그래머가 Jet 엔진에 접근할 수 있도록 허용했다.기본적으로 액세스 베이직과 비주얼 베이직 애플리케이션 개발자들이 제트에 접근하기 위해 사용하는 객체 지향 데이터 언어였다.
마찬가지로, Jet 데이터 원본 간에 복제를 허용했던 Microsoft Jet OLE DB Provider and Replication Objects(JRO)가[27] MDAC 2.6에서 제거되었다.
MSDASQL 및 Oracle ODBC
ODBC용 Microsoft OLE DB 공급자 또는MSDASQL
는 ActiveX Data Objects가 ODBC 드라이버를 통해 데이터베이스에 액세스할 수 있도록 허용하는 OLE DB 공급자였습니다.Microsoft는 여러 OLE-DB 제공자(인덱싱 서비스, Active Directory, Jet, SQL Server, Oracle용)를 제공했다.MSDAORA
([28] ) 및 인터넷 게시), 그러나 달리 지시되지 않는 한 ADO는 MSDASQL을 기본 제공자로 사용하는 것으로 기본 설정되었다.MDAC 2.5 이후 Oracle ODBC 드라이버와 MSDASQL 모두 Oracle 7을 지원했으며 Oracle 8i를 부분적으로 지원했다.지원되지 않는 기능:
- CLOB, BLOB, BFILE, NCAR, NCLOB 및 NVARCHAR2 Oracle 데이터 유형
- Oracle 7.x 및 8i에 대한 유니코드 지원
- Oracle의 여러 클라이언트 인스턴스
- 내포된 외부 결합
Microsoft는 처음에 MSDASQL 구성 요소를 64비트 운영 체제에[29] 사용하지 않았으며 Microsoft Oracle ODBC 드라이버는 나중에 에 의해 대체되었다.Oracle 9i를 지원했던 NET Managed Oracle Provider.[30]그러나 Windows Server 2008 및 Windows Vista SP1은 64비트 버전의 MSDASQL과 함께 배송된다.
원격 데이터 서비스(RDS)
RDS(Remote Data Services)는 서버에서 데이터 집합을 검색할 수 있도록 허용했고, 클라이언트가 어떤 식으로든 변경한 후 추가 처리를 위해 서버로 다시 전송했다.[31]루프와 조건문과 같은 프로그래밍 구조로 SQL을 확장하는 Transact-SQL이 널리 채택되면서, 이것은 덜 필요하게 되었고, 결국 MDAC 2.7에서 더 이상 사용되지 않게 되었다. 마이크로소프트는 고객이 개방형 XML 기반의 표준을 통해 이것을 할 수 있는 SOAP Toolkit 2.0을 생산했다.[32]
SQLXML
SQLXML은 SQL Server 2000용으로 설계되었지만 MDAC 2.6에서 더 이상 사용되지 않았다.그것은 마이크로소프트의 관계형 데이터베이스를 XPath로 볼 수 있게 했고 데이터를 XML 파일로 볼 수 있게 했다.마이크로소프트가 다운로드 가능한 구성요소로 제공하고 64비트 운영 체제에서 지원할 예정이지만 실제로 더 이상 사용되지 않고 이후 버전의 MDAC에서 제거되었다.
구식 구성 요소
마이크로소프트에 의해 MDAC에서 완전히 제거되어 더 이상 지원되지 않는 구성 요소가 몇 개 있다.다음 구성 요소:
- ESQL/C: 임베디드 SQL(E-SQL 또는 ESQL/C라고도 함)은 Visual C에서 프로그래밍할 때 SQL을 사용하는 방법이다.마이크로소프트는 SQL 서버 6.5가 출시된 후 이에 대한 지원을 중단했지만, COBOL 컴파일러와 툴을[33] 개발하는 마이크로 포커스라는 회사에 ESQL/C 런타임 환경의 일부를 허가했다.
- DAO: DAO 또는 Data Access Objects는 Microsoft에 의해 생성된 객체 지향 인터페이스로, Microsoft Access 및 Visual Basic의 초기 버전이 Jet Database Engine에 액세스할 수 있도록 허용하였다.이후(버전 3.5)에는 제트 엔진을 완전히 우회하여 ODBC 데이터 소스에 직접 접근할 수 있었다.[34]
- RDO: 원격 데이터 개체 또는 RDO는 ODBC에서 직접 호출되는 인터페이스를 만들 수 있는 마이크로소프트 기술이었습니다.RDO 버전 2.0은 마이크로소프트가 개발한 최종 버전이다.
- DB-Library: 응용 프로그램이 SQL Server와 상호 작용하도록 허용한 C 기반 API.SQL Server 2000 이후는 어떤 제품에서도 지원되지 않으며, SQL Server 6.5 이후에는 기능이 추가되지 않았다.
역사
마이크로소프트는 시간이 지남에 따라 여러 버전의 MDAC를 출시했다.배포 방법이 다양하고 버전마다 피쳐 세트가 다르다.
MDAC 1.0
MDAC 1.0은 1996년 8월에 처음 출시되었다.[35]마이크로소프트에 따르면, "MDAC 1.0은 조정된 독립 실행형 설치 프로그램보다 개념으로 더 많이 존재했다."MDAC 1.0 스택은 ODBC 3.0, OLE DB 1.1, ADO 1.0 및 ADC(Advanced Data Connector) 1.0으로 구성되었으며, 마이크로소프트에 따르면 MDAC 1.5의 원격 데이터 서비스의 전구였다.액세스/제트, SQL 서버 및 오라클 데이터베이스용 ODBC 드라이버도 포함했다.MDAC 1.0은 몇 가지 메커니즘을 통해 출시되었다: IIS(Internet Information Server) 3.0과 다운로드 가능한 cab 파일로서, OLE DB 1.1 및 ADO 1.0은 OLE DB 1.1 SDK와 함께 제공되었으며 Visual Studio 97과 함께 제공되었고 다운로드도 가능했다.[36]MDAC 1.0은 Active Server Pages와 함께 제공되었으며, 그 자체는 IIS 3.0에서 제공되었으며 Visual InterDev 1.0에서도 제공되었다.[37]
MDAC 1.5
MDAC 1.5는 1997년 9월부터 1998년 3월 사이에 출시되었으며, MDAC 1.0보다 더 중앙집중화된 유통 메커니즘을 포함했다.마이크로소프트 Internet Explorer 4.0, 인터넷 클라이언트 SDK 4.0, 그리고 1997년 PDC(Professional Developers Conference)에서 제공된 CD-ROM과 함께 출시되었다.MDAC 1.5의 5가지 버전이 있었다.
- MDAC 1.5(초기 릴리즈): Internet Explorer 4.0 및 Internet Client SDK에 포함.
- MDAC 1.5a: Microsoft 웹 사이트에서 다운로드 가능
- MDAC 1.5b: Windows NT 4.0 옵션 팩 & Office 97과 함께 제공
- MDAC 1.5c: ADO 스레딩 및 ODBC Connection Pooling과 관련된 고정된 문제로 Microsoft 웹 사이트를 통해 배포되었다.ADO/MDAC 런타임 구성요소만 함께 제공되었다.
- MDAC 1.5d: Windows 98 및 Internet Explorer 4.01 서비스 팩 1과 함께 제공됨.[37]
MDAC 1.5의 다른 버전은 다음과 같이 구성되었다.
- ODBC 3.5
- OLE DB 1.5
- ADO 1.5
- 고급 데이터 커넥터를 대체한 원격 데이터 서비스 1.5.[36]
이 버전의 MDAC에는 보안 결함이 있어 권한 상승 공격에 취약하다.이 취약성으로 인해 IIS와 MDAC가 모두 설치된 시스템은 권한 없는 웹 사용자에게 권한 있는 사용자로 IIS 시스템에서 셸 명령을 실행할 수 있는 권한을 부여했다.이를 통해 공격자는 다중 호밍 인터넷 연결 IIS 시스템에서 SQL 및 기타 ODBC 데이터 요청을 개인 백엔드 네트워크에 대한 공개하여 SQL 및 기타 ODBC 데이터 요청을 터널링할 수 있었다.또한 사용자가 IIS 시스템에서[38] 게시되지 않은 보안 파일에 무단으로 액세스할 수 있도록 허용했다.
MDAC 1.5는 윈도 NT 3.51 SP5에서 지원되는 마지막 데이터 액세스 구성요소 릴리스였다.
MDAC 2.0
MDAC 2.0은 Data Access 2.0 SDK와 함께 배포되었으며 MDAC 1.5, ODBC 3.5 SDK 및 OLE DB 1.5 SDK, OLAP용 OLE DB 사양 등의 내용을 포함하였다.그것은 또한 핵심 제품에 대한 많은 업데이트를 포함했는데,[36] 여기에는 IIS 서버에 악의적으로 사용되는 것을 방지하는 RDS에 추가된 보안 기능이 포함된다.[39]이 버전은 Windows NT 4.0 SP4에 포함되었고 [40]Visual Studio 6.0에도 포함되었으며, 전체 Data Access SDK와 함께 제공되었다.[36]
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는 마이크로소프트 웹사이트에서 배포되었다.2.1에 포함된 구성요소는 다음과 같다.
- ADO 2.1
- RDS 2.1
- OLE DB 2.1
- ODBC, SQL Server 및 Oracle용 OLE DB 공급자
- JRO2.1번길
- 제트 운전사
- RDO.[41]
이 버전은 확인되지 않은 버퍼로 상승된 권한 공격을 허용할 수 있는 보안 취약성을 가지고 있다.이는 얼마 후 발견되었으며 MDAC 2.1, 2.5 및 2.6에 영향을 미쳤으며 이후 패치로[42] 해결되었다.
MDAC 2.5
MDAC 2.5는 2000년 2월 17일에 출시되어 윈도 2000과 함께 배포되었으며, MDAC 서비스 팩은 윈도 2000 서비스 팩과 병행하여 출시되었다.마이크로소프트의 웹사이트를 통해서도 배포되었다.서비스 팩 3개가 출시됐다.2.5에 포함된 구성 요소는 다음과 같다.
- ADO 2.5
- ADO MD 2.5
- ADOX 2.5
- RDS 2.5
- OLE DB 2.5
- 많은 OLE DB 공급자
- 제이로2.5번길
- ODBC 3.51
- 많은 ODBC 드라이버
- 많은 제트 운전사들.[43]
이 버전의 MDAC에서는 몇 가지 문제가 발견되었다.OLE DB Session Pooling을 사용할 때 Microsoft COM+는 OLE DB를 지속적으로 로드 및 언로드하려고 시도하며, OLE DB Session Pooling을 100% CPU 사용으로 실행하는 충돌이 발생할 수 있다.이것은 나중에 고쳐졌다.[44]마이크로소프트는 MDAC 2.5 서비스 팩 2와 MDAC 2.5 서비스 팩 3에 고정된 버그 전체 목록을 발표했다.SQL Server 드라이버에서 확인되지 않은 버퍼가 발견된 보안 취약성(Later fixed)도 있었다.이 결함은 MDAC 2.5 SP2에 도입되었다.
MDAC 2.6
MDAC 2.6은 2000년 9월에 출시되어 웹을 통해 배포되었으며, 마이크로소프트 SQL 서버[45] 2000 MDAC 2.6 RTM, SP1(2001년 6월 20일 발매), SP2(2002년 6월 11일 발매)가 마이크로소프트 SQL 서버 2000 서비스 팩과 병행하여 배포되었으며, 마이크로소프트 웹사이트에서도 다운로드할 수 있었다.
이 MDAC 버전부터 마이크로소프트 Jet, 마이크로소프트 Jet OLE DB Provider 및 ODBC Desktop Database Drivers는 포함되지 않았다.대신 수동으로 설치할 수 있다.[46]마이크로소프트는 또 "클러스터의 임의 노드에 MDAC 2.6 이상을 직접 또는 다른 프로그램의 설치를 통해 설치하면 SQL 서버 에이전트 또는 기타 SQL 서버 서비스에 치명적인 장애가 발생할 수 있기 때문에 MDAC 2.6을 SQL 서버 7.0 클러스터에 설치해서는 안 된다"[47]는 경고 메시지를 발표했다.이 문제는 Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)을 데이터베이스로 설치하기 때문에 Veritas Software의 백업 Exec 9.0 for 윈도우즈 Servers에 영향을 미쳤다.개정판 4367은 MDAC 버전 2.6 SP2를 설치했고, 개정판 4454는 MDAC 버전 2.7 SP1을 설치했는데 문제가[48] 없었다.
MDAC 2.7
MDAC 2.7은 2001년 10월 마이크로소프트의 웹사이트를 통해 출시되었다.2002년 4월 윈도 XP의 발매와 마이크로소프트의 웹사이트를 통해 리프레시 릴리즈가 발표되었다.버전 2.7은 미국 영어, 중국어(번체 및 단순화), 독일어, 일본어, 한국어, 브라질 포르투갈어, 체코어, 덴마크어, 그리스어, 슬로바키아어, 슬로베니아어, 스페인어, 핀란드어, 프랑스어, 헝가리어, 이탈리아어, 네덜란드어, 노르웨이어, 폴란드어, 포르투갈어, 러시아어, 스웨덴어 및 터키어로 제공되었다.히브리어와 아랍어는 윈도우 XP를 통해서만 사용할 수 있었다.
주요 특징 변화는 마이크로소프트의 64비트 운영체제에 대한 지원이었지만, 반얀 넝쿨에 대한 지원 역시 이번 버전의 MDAC에서 떨어졌다.MDAC 2.7이 Microsoft SQL Server 6.5 또는 SQL Server 7.0을 실행하는 클러스터링된 서버에서 연결 문제를 계속 유발하고 Microsoft가 제공하는 해결 방법이 없다는 [49]몇 가지 알려진 문제가 있었다.Microsoft SQL Server ODBC 드라이버를 사용하여 ODBC DSN(데이터 소스 이름)[50]을 생성하거나 구성할 때 DSN이 명명된 파이프를 사용하도록 구성되었더라도 네트워크 라이브러리 프로토콜이 예기치 않게 TCP/IP로 전환될 수 있음이 문제는 InfoWorld 기자 Randall C에 의해 발견되었다. 실제로 MDAC 2.6에서 변경이 이루어졌지만 문서화되지 않았다는 사실을 확인한 케네디.Windows XP 컴퓨터에서 클라이언트/서버 데이터베이스 워크로드를 테스트할 때 발견되었는데, InfoWorld는 TCP/IP를 사용하여 전체 서버 CPU 활용률이 겨우 8% 증가했지만 초당 컨텍스트 스위치는 150% 이상 감소했다고 주장한다(물론 이는 음의 컨텍스트 스위치 속도 - dro).p는 10명의 사용자 작업 부하에 대해 작성자가 작성 당시 어느 행성에 있었느냐에 따라 33% 또는 60%이다.그들은 Net-Lib의 기본 행동에 대한 근본적인 기능적 변화가 관련 없는 문서에 언급된 것 이상 없이 발생했다는 것에 대해 아무런 인상을 받지 못했다.[51]SQL Server가 로컬 컴퓨터에서 찾은 인증서를 사용하려고 하지만 사용 가능한 인증서가 두 개 이상 있는 경우 어떤 인증서를 사용해야 할지 알지 못하기 때문에 Windows XP 사용자도 SQL Server에 연결하는 데 문제가 발생하는 경우가 있었다.[52]Microsoft Analysis Services 2000 RTM을 사용하려고 할 때 큐브를 찾아보려고 할 때 오류가 나타나는 경우가 종종 있다.[53]마이크로소프트는 또한 윈도 95, 윈도 98, 윈도 Me의 설치 프로그램에서 MDAC 설치 프로그램이 설치 오류가 발생했을 때 롤백하지 못하게 하는 문제를 발견했다.[54]
마이크로소프트가 MDAC 2.7에 대해 몇 가지 보안 문제를 해결했다. 차세대 보안 소프트웨어 Ltd의 David Litchfield는 데이터 소스에 연결하는 데 사용되는 MDAC의 ODBC 기능 중 하나가 확인되지 않은 버퍼를 포함하고 있기 때문에 발생하는 보안 취약성을 보고했다.[55]해결된 또 다른 취약성은 공격자가 버퍼 오버플로를 유발할 수 있는 특수하게 조작된 패킷으로 클라이언트가 브로드캐스트하는 SQL Server 검색 메시지에 응답할 수 있는 취약성이었다.[56]공격자가 다른 특수하게 조작된 패킷으로 브로드캐스트에 응답할 때 코드가 원격으로 실행될 수 있는 또 다른 결함이 발견되었다.[57]
MDAC 2.8
MDAC 2.8은 2003년 8월에 출시되어 마이크로소프트의 데이터 액세스 기술 웹사이트뿐만 아니라 마이크로소프트 윈도 서버 2003과 함께 배포되었다.그것은 그 제품에 대한지만 벌레와 안보 현안들에 관한 번호를 고쳐 주– reg 파일(레지스트리에 변화를 자동화하)은 그 긴급 분배 체계는 system[58]고 새로운 제한이 형상 싶어의 길이에 부과되었다에 무단 접근하는 데 이용당할 수 있는"안전하지 않은"모드에서 서버를 집어 제거된 새로운 기능을 소개하지 않았다.ery끈을 [59]매다또한 몇 가지 ODBC 관리자 변경사항이 있었다.[60]
2005년 5월 23일 브래드 로즈(Microsoft Data Access Technologies의 프로그램 매니저)는 MDAC 2.8 SP1이 마이크로소프트가 출하할 MDAC의 마지막 독립적 재배포 가능자였다고 발표했다.MDAC는 이전에 출시된 버전의 웹 배포 가능 버그와 보안 수정 사항을 지속적으로 제공할 예정이지만 이제 마이크로소프트 운영 체제의 공식 구성 요소가 되었다.[61]그러나 마이크로소프트는 OLE DB와 ODBC 라이브러리를 하나의 DLL로 결합한 독립 실행형 데이터 액세스 API인 SQL Native Client(SQLNCLI)라는 새로운 구성요소를 만들었다.그것은 현재 운영 체제가 있는 상태에 의존하고 있는 MDAC와는 독립적으로 형성되었으며, 개발자는 이제 이 라이브러리에 연결되고 MDAC를 업데이트하는 운영 체제의 업데이트가 다른 버전의 MDAC에 구축된 애플리케이션을 중단하는 상황을 방지한다.[62]
Windows 7 SP1은 MDAC 2.8의 정방향 호환성을 깼다. MDAC ADO에 의존하는 Windows 7 SP1에서 컴파일된 소프트웨어는 Windows 7 SP1 이전 버전(Windows 7 RTM, Vista, XP 포함)에서는 작동하지 않는다.[63]Microsoft는 일부 애플리케이션에 대해 이 문제를 해결하기 위한 솔루션을 제공했지만 VBA 애플리케이션은 여전히 영향을 받고 있다.[64]이 문제에 대한 해결책은 2012년 2월에 발표되었다.[65]
윈도 DAC 6.0
윈도 비스타는 더 이상 MDAC를 사용하지 않고 대신 업데이트된 버전의 ADO, OLE DB, ODBC 구성요소로 구성된 윈도 DAC를 사용한다.마이크로소프트에 따르면 "Windows DAC는 윈도 비스타와 함께 작동하기 위한 일부 변경사항을 포함하고 있지만 기능적으로는 거의 완전히 MDAC 2.8과 같다"[66]고 한다.
버전 확인
컴퓨터에 설치된 MDAC 버전을 확인하는 방법에는 두 가지가 있다.윈도우즈 2000, 윈도우즈 XP 및 윈도우즈 서버 2003의 경우 한 가지 확인 방법은 설치된 각 MDAC DLL의 값을 MDAC 파일 매니페스트와 비교하는 마이크로소프트의 Component Checker 프로그램을 통해 확인할 수 있다.두 번째 방법은 키를 확인하는 것이다.HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer
Windows 레지스트리에서.Microsoft는 시스템에[67] 설치된 MDAC 파일 버전과 비교할 때 2.1 이전 버전의 MDAC에 대해 이 정보가 정확하지 않을 수 있다는 점에 주목한다.
버전 | 출시일자 | 에 포함됨 | 특징들 | 보안 문제 |
---|---|---|---|---|
1.0 | 1996년 8월 |
|
| 공지가 배포되지 않음 |
1.5 | 1997년 9월 – 1998년 3월 |
|
| |
1.5a | 1997년 9월-98년 3월 | 서비스 릴리즈 | ||
1.5b | 1997년 9월-98년 3월 |
| 서비스 릴리즈 | |
1.5c | 1997년 9월-98년 3월 |
| ||
2.0 | 1998년 7월 1일 |
|
| |
2.0SP1 | 1998년 7월 1일 |
| Windows NT 4.0에 대한 Y2K 업데이트 적용 | |
2.0SP2 | 1998년 7월 1일 |
| 모든 플랫폼에 대한 Y2K 업데이트 적용 | |
2.1 | 1998년 7월 11일 |
|
| |
2.1 SP1 | 1999년 3월 15일 |
| ||
2.1 SP1a(GA) | 1999년 4월 1일 |
| ||
2.1 SP2 | 1999년 7월 | |||
2.5 | 2000년 2월 17일 |
|
| |
2.5 SP1 | 2000년 7월 31일 |
| ||
2.5 SP2 | 2000년 4월 |
| ||
2.5 SPS3 | 2003년 12월 |
| ||
2.6 | 2000년 9월 |
| 포함되지 않음(수동으로 설치):
| |
2.6 SP1 | 2001년 5월 |
| ||
2.6 SP2 | 2002년 5월 |
| ||
2.7 | 2001년 10월 |
|
| |
2.8 | 2003년 8월 |
| 버그 및 보안 문제 해결 | |
2.8 SP1 | 2005년 5월 |
| 고정 버그 | |
2.8 SP2 | 2005년 3월 |
| ||
9.0 | 개봉하지 않음 |
| ||
Windows DAC 6.0(Vista와 함께 사용할 MDAC의 변형) | 2006년 11월 |
|
참조
- ^ Kalen Delaney, "Inside Microsoft SQL Server 2000", Microsoft Press, 페이지 70–74.
- ^ MSDN, "Udl 파일 생성", "ADO 2.8 API Reference"는 2007년 4월 28일에 접속했다.
- ^ 이비드의
- ^ Prash Sirolkar(작성자);앨리사 헨리(출연자)Stephen Pepitone(논객);Acey J. Bunch (출연자); David Schwartz (출연자), "Data Access Technologies Road Map" , Microsoft Corporation이 2018년 3월 1일에 접속했다.
- ^ MSDN, "필드 컬렉션", "ADO 2.8 API Reference"는 2005년 9월 19일에 접속했다.
- ^ MSDN, "Properties Collection", "ADO 2.8 API Reference"는 2005년 9월 19일에 접속되었다.
- ^ MSDN, "Parameters Collection", "ADO 2.8 API Reference"는 2005년 9월 19일에 접속하였다.
- ^ MSDN, "Errors Collection", "ADO 2.8 API Reference"는 2005년 9월 19일에 접속되었다.
- ^ MSDN, "연결 오브젝트 사용", "ADO 2.8 프로그래머 가이드"는 2005년 9월 10일에 접속했다.
- ^ MSDN, "ADO 연결 문자열", "ADO 2.8 프로그래머 가이드"는 2005년 9월 10일에 접속했다.
- ^ MSDN, "Command Object Overview", "ADO 2.8 Programmers Guide" 2005년 9월 10일에 액세스
- ^ MSDN, "데이터 검사", "ADO 2.8 프로그래머 가이드"는 2005년 9월 10일에 접속했다.
- ^ 레코드 집합의 데이터를 검사할 수 있는 ADO 방법과 속성의 전체 목록은 Microsoft의 API 문서에서 확인할 수 있다.
- ^ MSDN, "데이터 편집", "ADO 2.8 프로그래머 가이드"는 2005년 9월 10일에 접속했다.
- ^ MSDN, "삭제 방법을 이용한 레코드 삭제", "ADO 2.8 프로그래머 가이드"는 2005년 9월 10일에 접속했다.
- ^ MSDN, "데이터 업데이트 및 지속", "ADO 2.8 프로그래머 가이드"는 2005년 9월 12일에 접속했다.
- ^ MSDN, "거래 처리", "ADO 2.8 프로그래머 가이드"는 2005년 9월 12일에 접속했다.
- ^ MSDN, "Record Object", "ADO 2.8 API Reference"는 2005년 9월 12일에 접속하였다.
- ^ MSDN, "기록과 스트림", "ADO 2.8 프로그래머 가이드"는 2005년 9월 12일에 접속했다.
- ^ MSDN, "Streams and Persistence", "ADO 2.8 Programmers Guide"는 2005년 9월 12일에 접속했다.
- ^ MSDN, "Parameter Object", "ADO 2.8 API Reference"는 2005년 9월 12일에 접속하였다.
- ^ MSDN, "필드 오브젝트", "ADO 2.8 API Reference"는 2005년 9월 12일에 접속하였다.
- ^ MSDN, "Property Object" "ADO 2.8 Programmers Guide"는 2005년 9월 13일에 접속하였다.
- ^ MSDN, "오류 처리", "ADO 2.8 프로그래머 가이드"는 2005년 9월 18일에 접속했다.
- ^ MSDN, "현장 관련 오류 정보", "ADO 2.8 프로그래머 가이드"는 2005년 9월 18일에, & MSDN, "기록 세트 관련 오류 정보", "ADO 2.8 프로그래머 가이드"는 2005년 9월 18일에 액세스했다.
- ^ 더그 로타우스 & 마이크 피조, "ADO.MSDN, ADO 프로그래머를 위한 NET"는 2005년 9월 22일에 접속했다.
- ^ Microsoft, 사용되지 않는 구성요소(OLE DB)는 2005년 8월 5일에 검색되었다.
- ^ Hamilton, Bill (2008). ADO.NET 3.5 Cookbook. Cookbook Series (2 ed.). O'Reilly Media, Inc. p. 27. ISBN 9780596101404. Retrieved 2012-10-09.
[...] use the [...] Oracle OLE DB provider (MSDAORA) to access Oracle data.
- ^ Microsoft, "Data Access Technologies Road Map", 사용되지 않는 MDAC Components, Microsoft "ADO Programmer's Guide" 부록 A: Providers, Microsoft OLE DB Provider for ODBC Archived 2001-10-05 Wayback Machine, 2005년 7월 30일 검색.
- ^ 마이크로소프트, MS KB 기사 244661: INFO: 마이크로소프트 오라클 ODBC 드라이버와 OLEDB 프로바이더의 한계, 2004년 8월 25일 최종 검토, 2005년 8월 4일 회수.
- ^ 마이크로소프트, "RDS(원격 데이터 서비스)"는 2005년 8월 11일에 회수했다.
- ^ Microsoft, "데이터 액세스 기술 로드맵", "사용되지 않는 MDAC 구성 요소"
- ^ Kalen Delaney, "Inside Microsoft SQL Server 2000", Microsoft Press, p65.
- ^ 크리스틴 솔로몬, "마이크로소프트 오피스 97 개발자 핸드북", 마이크로소프트 프레스 페이지 195–200.
- ^ (독일어로) Christian Koller, "ADO und MDAC Versionen" : MDAC 1.0 및 1.1 (OLE DB 1.0 및 OLE DB 1.1)은 2005년 7월 1일에 접속했다.
- ^ a b c d INFO: What are MDAC, DA SDK, ODBC, OLE DB, ADO, RDS, and ADO/MD?, Microsoft, March 14, 2005, retrieved 2005-07-01
- ^ a b Koller, Christian, "ADO und MDAC Versionen", MDAC 1.5 (in German), retrieved 2005-07-01
- ^ Microsoft, Microsoft 보안 프로그램: 자주 묻는 질문: Microsoft 보안 게시판(MS99-025), 2005년 7월 6일에 액세스.
- ^ Microsoft, PRB: 보안 설정으로 인한 RDS 핸들러 오류 메시지(2003년 9월 30일 마지막 검토), 2005년 7월 6일에 액세스, Microsoft 보안 프로그램: Microsoft Security Bulletin(MS98-004) : "RDS 및 IIS를 통해 승인되지 않은 ODBC Data Access"(마지막 개정판:1998년 7월 17일), 2005년 7월 6일에 액세스; CVE 취약성 CVE-1999-1011.
- ^ Christian Koller, "ADO und MDAC Versionen" : MDAC 2.0, 2005년 7월 1일에 접속.
- ^ (독일어로) Christian Koller, "ADO und MDAC Versionen" : MDAC 2.1, 2005년 7월 1일에 접속.
- ^ Microsoft, "데이터 액세스 구성 요소:Q329414용 보안 핫픽스; Microsoft Security Bulletin MS02-06 – 원래 Microsoft KB 기사 Q329414 - (원래 2002년 11월 20일에 게시됨)는 2005년 7월 6일에 액세스했다.
- ^ (독일어로) Christian Koller, "ADO und MDAC Versionen" : MDAC 2.5, 2005년 7월 1일에 접속.
- ^ 마이크로소프트, MS KB 기사 320700, "OLE DB 세션 풀링이 CPU 사용률 100%(MDAC 2.5)를 초래함"은 2005년 7월 6일에 접속했다.
- ^ 마이크로소프트, MDAC 2.6(2.60.6526.3)에 대한 MS KB 문서 842272 릴리스 매니페스트가 2005년 7월 6일에 접속했다.
- ^ Microsoft, MS KB 문서 271908 MDAC 버전 2.6 이상에는 2005년 7월 6일에 액세스한 Jet 또는 Desktop ODBC 드라이버가 포함되어 있지 않다.
- ^ Microsoft, MS KB 문서 820754 MDAC 2.6 이상을 2005년 7월 6일에 액세스한 SQL Server 7.0 클러스터에 설치하면 안 된다.
- ^ Veritas, 문서 ID: 258144 VERITAS 백업 Exec (tm) 9.0 for 윈도우즈 서버s를 마이크로소프트 SQL 서버 7.0 클러스터에 설치하면 안 된다.아카이브된 2013-01-05 오늘
- ^ "Release manifest for MDAC 2.7 Refresh (2.70.9001.0)". Support.microsoft.com. Retrieved 2019-04-10.
- ^ Microsoft, MS KB 문서 289573 PRB: SQL Server Net-Library로 DSN 구성
- ^ Kennedy, Randall C. (21 November 2001). "It's not a bug, it's a feature". InfoWorld. IDG. Archived from the original on 10 March 2007.
- ^ Microsoft, MS KB 문서 309398 SQL Server 2000 설치 또는 로컬 연결이 실패하고 "SSL 보안 오류:ConnectionOpen(SECDoClientHandshake())" 오류 메시지.
- ^ Microsoft, MS KB 문서 297232 FIX: Analysis Services 2000 RTM을 설치한 후 큐브 또는 프로세스 마이닝 모델을 찾을 수 없음
- ^ Microsoft, MS KB 문서 311720 PRB: MDAC 롤백 Windows 95, Windows 98 및 Windows Millennium Edition에서 실패할 수 있음
- ^ Microsoft, Microsoft Security Bulletin MS02-040 MDAC Function의 Unified Buffer가 시스템 절충을 활성화할 수 있음(Q326573)
- ^ Microsoft, Microsoft Security Bulletin MS03-033 MDAC 기능의 확인되지 않은 버퍼에서 시스템 손상(823718)을 사용할 수 있음
- ^ Microsoft, Microsoft 보안 게시판 MS04-003 MDAC 함수의 버퍼 오버런 허용(832483)
- ^ 마이크로소프트.MS KB 문서 818490: 정보: 보안상의 이유로 MDAC 2.8 Redist 설정에서 Handunsf.reg 파일이 제거됨
- ^ 마이크로소프트.MS KB 문서 838405: 픽스: MDAC 2.8을 적용한 후 "데이터 쉐이핑 서비스에 전달된 인수가 잘못됨" 오류
- ^ 마이크로소프트.MS KB 문서 818489, 정보: MDAC 2.8의 ODBC 관리자 변경 사항.
- ^ 브래드 로즈(블로그 입력)2005년 5월 23일 MDAC 재배포 가능성의 종료는 2005년 8월 11일 & 마이크로소프트, MS KB 문서 892854: "Microsoft Data Access Components에 대한 릴리스 전략"을 검색했으며, 2005년 1월 24일 마지막으로 업데이트되었으며, 2005년 8월 11일 검색되었다.
- ^ Acey J. Bunch(2005년 4월 26일), MSDN 블로그 항목인 "SQL Native Client 소개".
- ^ MSDN, 「Windows 7 서비스 팩 1의 MDAC ADODB COM 컴포넌트의 획기적인 변화」, 「Forum」은 2011년 3월 9일에 접속했다.
- ^ KB 2517589, "Windows 7 서비스 팩 1 기반 컴퓨터에서 다시 컴파일된 ADO 애플리케이션은 하위 수준의 운영 체제에서 실행되지 않는다", "는 2011년 3월 17일에 액세스했다.
- ^ KB 2640696 "Windows 7 SP1 또는 Windows Server 2008 R2 SP1에서 컴파일된 ADO 기반 응용 프로그램이 이전 버전의 Windows에서 실행되지 않음", ""은 2012년 4월 20일에 액세스했다.
- ^ Microsoft, "FAQ About Windows DAC/MDAC"2006년 12월 12일에 접속.
- ^ 마이크로소프트.MS KB 기사 301202, MDAC 버전을 확인하는 방법 2005년 1월 18일 마지막 업데이트, 2005년 9월 29일 검색.
- ^ 11장 Bob Beauchemin, Niels Berglund, Dan Sullivan의 "A First Look at Developers for Developers"에 대한 보충 자료.2006년 3월 24일 웨이백 머신에 보관
추가 읽기
- "ADO API Reference". MSDN. Microsoft. Retrieved 3 May 2014.
- "ADO Programmer's Guide". MSDN. Microsoft. Retrieved 3 May 2014.
- Delaney, Kalen (2000). Inside Microsoft SQL Server 2000 (3 ed.). Microsoft Press. ISBN 9780735609983.
- Rothaus, Doug; Mike, Pizzo (December 2001). "ADO.NET for the ADO Programmer". MSDN. Microsoft. Retrieved 3 May 2014.
- Shirolkar, Prash; Henry, Alyssa; Pepitone, Stephen; Bunch, Acey J.; Schwartz, David (January 2013). "Data Access Technologies Road Map". MSDN. Microsoft. Retrieved 3 May 2014.
- Solomon, Christine (1997). Microsoft Office 97 Developer's Handbook. Microsoft Press. ISBN 9781572316065.