hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
성적 동의 반응
‘하우스 오브 예스(House of Yes)’ 나이트클럽은 **"동의 유니콘(consenticorn)"**을 배치했다. 이들은 빛나는 유니콘 뿔을 착용하고 무대를 돌아다니며 콘돔을 배포하고, 모든 신체 접촉에 앞서 명시적 구두 동의를 지키도록 손님들에게 안내한다.
한편 슬라보예 지젝은 동의 유니콘 방식이 **"인간의 성을 단순화한다"**고 비판했다. 그는 이런 시스템이 친밀감과 쾌락의 복잡성을 무시하고 외부 고용자에게 과도한 통제를 위임한다고 주장했다.
일부 바에서는 손님이 원치 않는 신체 접촉을 받거나 데이트 상대에게 불편함을 느낄 경우 직원에게 신호를 보낼 수 있는 안전 암호 시스템을 도입했다.
예를 들어, 화장실이나 컵받침에 암호(가상의 칵테일 이름 등)를 게시해 두고, 손님이 이를 주문하면 바 직원이 상황을 인지하고 손님을 안전하게 퇴장시킨다.
2018년부터 텔레비전 및 영화 업계에서는 로맨틱 장면이나 모의 성관계를 촬영할 때 배우들의 동의를 보장하기 위해 **"[성적인 장면 조정자(intimacy coordinator)]"**를 고용하기 시작했다.
이 직책은 강력한 쇼러너나 감독이 배우에게 카메라 앞에서 나체 연기를 요구할 때 발생할 수 있는 권력 불균형과 취약성을 완화하기 위한 것이다. HBO는 모든 제작에서 성적인 장면 조정자를 고용하며, 그들은 연기 코치와 배우 옹호자 역할을 동시에 수행한다. 즉, 장면이 사실적으로 보이도록 돕는 동시에, 배우의 경계가 존중되고 신체적·정서적 안전이 보장되도록 한다.
성적 동의 기타 견해
법학자 로빈 웨스트는 2000년의 한 글에서, ‘동의(consent)’를 삶의 결정에 대한 윤리적 전제로 사용하는 것이 여성의 경우를 제외하고는 세상의 행복을 증진시킬 수 있다고 주장했다. 그녀는 많은 여성들이 원치 않는 임신, 자신을 폭행하는 배우자와의 결혼, 성희롱하는 상사 밑에서의 직장 등 불행을 초래하는 여러 삶의 경험에 형식적으로는 ‘동의’했다고 지적한다. 즉, 그들은 각각 성관계, 결혼, 혹은 직업을 선택했다는 이유로 ‘동의한 것’으로 간주된다는 것이다(비록 그들이 직장 내 성희롱과 같은 불쾌한 결과를 원하지 않았더라도). 웨스트는 만약 우리가 ‘동의’를 삶의 핵심 윤리 기준으로 삼는다면, 여성에게 발생하는 이러한 부정적 경험들은 비판받을 수 없게 된다고 말한다. 왜냐하면 사람들은 여성이 자유의지로 그 상황에 들어갔다고 주장할 것이기 때문이다.
성적 동의 기타 견해
도나 오리오오는 “...우리가 ‘동의’에 대해 이야기할 때, 흑인 여성이나 유색인종 여성의 경우는 거의 언급되지 않으며, 초점은 주로 백인 여성에게 맞춰져 있다”고 지적한다. 그녀는 흑인 여성 고발자들이 “흑인 여성은 지나치게 성적으로 활발하고 섹스만 원하는 존재”라는 고정관념 때문에 끊임없이 의심과 비난에 직면한다고 말한다.
일부 젊은 페미니스트들은 성적 만남에서 권력 불균형이 존재할 경우 진정한 동의는 불가능하다고 주장한다. 이에 대해 로라 킵니스는 반대하며, “지위, 돈, 외모, 나이, 재능 등 권력의 역학 관계가 바로 성적 맥락에서 사람들 사이의 욕망을 만들어낸다”고 말한다. 킵니스는 욕망 자체가 논의의 초점이 되어야 한다고 본다.
성적 동의 기타 견해
케이트 록우드 해리스는 “‘아니오’라고 하면 안 된다”와 “‘예’라고 하면 된다”는 식의 동의 캠페인들이, 자신이 잘못된 신화라고 보는 의사소통에 대한 단순화된 관념을 전제로 한다고 비판한다. 예를 들어, 성관계 중의 의사소통이 명확하고 이진적인 “예/아니오” 형태여야 한다는 생각이다. 해리스는 이러한 접근이 반(反)성폭력 운동가들로 하여금 대화의 복잡성과 미묘함을 축소하게 만들며, 나아가 동의를 하나의 정치적 행위로 발전시킬 가능성을 제한한다고 주장한다.
성적 동의 기타 견해
예일 법학대학원의 제드 루벤펠드는, 성적 접촉의 합법성을 판단하는 주된 기준이 ‘동의’가 되어서는 안 된다고 주장한다. 첫째, 다른 법률 분야(예: 주택 담보 대출이나 보험 자격, 불실고지 참조)와 달리, 성적 동의를 얻기 전에 진실을 고지해야 할 법적 의무가 존재하지 않는다. 비록 기만 강간이 처벌될 수는 있지만, 이는 일반적인 관계에서의 불성실함을 의미하지는 않는다. 또한 법률은 허위 전제에 근거해 이루어진 성적 동의에 대해 구제책을 제공하지 않는다.
둘째로, 강간법은 성적 자율성을 보호하려 하지만, 루벤펠드에 따르면 한 사람의 자율성을 무효화할 수 있는 것은 강압이나 무능력 상태의 이용뿐이다. 엄밀히 말해 비동의 상황은 단순히 의견 불일치를 의미하므로, 그저 자리를 떠남으로써 해결할 수 있는 문제라는 것이다. 따라서 그의 견해에 따르면, **무방비 상태나 물리적 힘의 사용(또는 그 위협)**만이 강간을 논리적으로 정의할 수 있는 유일한 기준이 된다.
성적 동의 기타 견해
“스텔싱(stealthing)”으로 불리는 콘돔 비동의적 제거는, 남성이 파트너가 안전한 콘돔 사용 성관계에만 동의했음에도 몰래 콘돔을 제거하는 행위를 말한다.
알렉산드라 브로드스키는 ‘스텔싱’을 법적으로 성폭행의 일종으로 규정해야 한다고 주장하지만, 그렇게 하기 어려운 이유도 지적한다. 대부분의 법률 분야에서 ‘합의 위반’은 범죄로 간주되지 않으며, 상대방을 속였다는 이유만으로 성행위가 불법이 되지는 않는다. 따라서 스텔싱을 처벌 가능하게 만드는 가장 설득력 있는 논거는, 무방비한 성교가 임신이나 성병 감염이라는 본질적 위험을 수반한다는 점이라고 본다.
스텔싱을 경험한 여성들은 응급 피임약 비용 부담, 임신이나 성병 감염에 대한 불안, 그리고 일부는 이를 강간의 한 형태로 인식하기도 했다. 스텔싱은 “[생식 강압]”으로 불리는 가정폭력의 일종으로, 콘돔을 몰래 벗기거나 구멍을 뚫는 행위를 포함한다.
성적 동의 기타 견해
한편, 여성이 남성의 동의 없이 임신을 시도하는 역전된 사례는 “역 스텔싱” 또는 정자 절도로 불린다. 이는 피임약 복용 여부에 대해 거짓말을 하거나 피임약을 방해하는 행위(예: 콘돔에 구멍을 뚫기), 혹은 콘돔에서 정자를 채취해 자가 수정하는 것 등을 포함한다.
이러한 경우는 흥미로운 질문을 던진다. 일반적인 스텔싱의 피해자는 낙태를 시도할 수 있지만, 이 경우 남성은 임신 중단을 강요할 수도, 양육비 지급을 거부할 수도 없다는 점에서 이중의 피해자가 될 수 있다.
미아 메르카도는 전 파트너가 동의 없이 온라인에 올리거나 유포한 “리벤지 포르노”와, 해킹 또는 도난을 통해 유출된 유명인 성관계 사진을 **‘비합의적 포르노그래피’**라고 부른다.
그녀는 이 두 행위 모두 성폭력의 한 형태로 취급되어야 한다고 주장하며, 리벤지 포르노는 2017년 기준 미국 34개 주에서 이미 범죄로 규정되어 있으며, 다른 주들에서도 관련 법 제정이 진행 중이라고 지적한다.
성적 동의 기타 견해
확언적 동의 개념은 BDSM 관계에서 특히 복잡해진다. 참가자들이 “[합의된 비동의]”, 즉 메타적·포괄적 동의에 합의하는 경우, 사전에 포괄적 동의가 주어지며 대부분 철회할 수 없는 것으로 간주된다. 이는 대개 구체적인 행위를 사전에 완전히 알지 못한 채 이루어진다.
캐나다의 경우, 두 참가자가 폭력적 행위에 동의하더라도, 법은 개인이 심각한 부상에 이를 수 있는 폭력적 성행위에는 동의할 수 없도록 제한한다.
성적 동의 기타 견해
에즈라 클라인은 캘리포니아 주의 대학에 적용된 “‘예’라고 하면 된다” 법률을 지지한다. 그는 성폭행이 너무 빈번히 일어나고 있다며, 이를 막기 위해서는 캘리포니아주의 새 법과 같은 강력한 법적 조치가 필요하다고 본다.
그는 이 법이 개인의 사생활을 침해할 수 있음을 인정하지만, 효과를 내기 위해서는 일정 부분 ‘과잉 입법’이 불가피하다고 주장한다. 즉, 대학 남성들이 성적 만남이 합의된 것인지에 대해 ‘차가운 두려움’을 느낄 정도의 경각심을 조성해야 한다는 것이다.
클라인은 또한 동의 여부가 불분명한 사례들이야말로 법의 효과에 필수적이라고 본다. 이러한 사례들이 학생들에게 징계 절차나 유죄 판결이 초래할 결과를 인식하게 하고, 결과적으로 성폭행을 줄이는 데 도움이 된다는 것이다.
한편, 프레디 드보어는 “예라고 하면 된다” 법이 확산되면, 법 집행과 사법 시스템이 인종적·계급적 편견을 가진 상태에서 더 낮은 증거 기준으로 판단할 위험이 있다고 경고한다(예: 흑인 운전 중 운전 driving while black 사례). 그는 이런 구조가 “예라고 하면 된다” 혐의와 처벌이 유색인종이나 노동계급 학생들에게 불균형적으로 적용될 수 있다고 지적한다.
성적 동의 기타 견해
마이클 세갈로프는 젊은 게이 남성들이 동의와 성적 경계에 대해 충분히 배우지 못했다고 말한다. 그는 그 이유로, 이들이 “자신의 경험을 설명하거나 이해할 언어를 배우지 못했으며”, 조언을 구할 수 있는 성소수자 롤 모델이 가족이나 공동체 내에 거의 없다는 점을 들었다. 세갈로프는 데이팅 앱이 동의 문제를 악화시킬 수 있다고 지적한다. 일부 남성들은 약속 장소에 도착했을 때 “권리 의식”을 느끼며, 온라인상에서의 성적 상호작용이 이미 “미리 합의된 것”처럼 여겨지기 때문이라는 것이다.
크리스토퍼 로빈슨은 일부 퀴어 공간이 “성폭력을 정상화하거나 심지어 조장한다”고 말한다. 그는 여기에는 “성추행, 술에 취한 채 하는 애정 표현, 노골적인 성폭행” 등이 포함되며, 이러한 공간에서의 “직설적인 성적 표현”이 일부 남성들로 하여금 자신이 저지르는 성희롱을 상대방에 대한 “칭찬”으로 오인하게 만든다고 지적한다. 로빈슨은 가해자들이 “범죄를 매력으로 재정의”하고, 피해자들은 “무시하고 참아야 한다”는 암묵적인 압박을 받는다고 설명한다. 그는 이러한 분위기가 게이 바가 퀴어 사람들을 위해 제공해야 할 안전한 공간의 기능을 훼손한다고 덧붙인다.
성적 동의 기타 견해
존 부토스는 퀴어 커뮤니티에서 동의가 제대로 전달되기 어려운 이유를 여러 가지로 설명한다. 그는 “성관계가 가능한 장소인 퀴어 클럽”, 온라인 데이팅, 그리고 손수건 코드(색상으로 성적 취향이나 역할을 나타내는 비언어적 신호), 크루징 등의 문화가 본질적으로 “비언어적이며 다소 모호한 의사소통”에 의존한다고 말한다.
2019년 ‘동의 페스티벌(Consent Festival)’의 주최자 브로디 터너는 “LGBTIQA+ 침묵의 역사”와 성교육에서의 배제, 그리고 “건강한 LGBTIQA+ 관계”에 대한 미디어 재현의 부족이 성소수자들이 동의에 대한 개념을 배우거나, 그것을 자신의 권리로 인식하지 못하게 만든다고 설명한다.
필립 헨리는 게이 남성 커뮤니티 내에서 엉덩이나 성기를 동의 없이 만지는 행위가 일부 공간에서 묵인되거나 심지어 장려된다고 말한다. 그는 이러한 현상이 게이 클럽 환경에서 동의의 경계가 흐려지기 때문이며, 특히 술을 마시거나 반나체로 춤을 출 때 더 두드러진다고 지적한다. 그는 또한 게이 남성이 원치 않는 접촉에 불쾌감을 표현하면, 종종 “진정해라”거나 “이런 곳에서는 그 정도는 당연하다”는 반응을 듣는다고 말한다.
케미섹스 상황에서 GHB나 크리스탈 메스를 사용하는 게이 남성들 사이에서는 동의가 명확히 정의되지 않으며, “파티와 플레이” 환경에 참여한 사람은 모두 동의했다고 여기는 인식이 존재한다고도 지적된다.
알렉산더 체베스는 게이 바의 어두운 뒷방에 들어가는 것은 “일정 부분의 동의를 포기하는 것”이라고 주장한다. 왜냐하면 “그곳에 가는 목적 자체가 신체적 접촉을 전제로 하기 때문”이다. 그는 이런 공간에서는 원치 않는 손길을 부드럽게 밀어내는 것이 이용자의 책임이라고 덧붙인다.
한편, 레니 맥더그웰은 “게이 공간에서 동의를 논의할 때에는 성적 공포가 아닌 세밀한 접근이 필요하다”고 주장한다. 그는 게이 바나 사우나 같은 장소에 현대적 ‘동의’ 개념을 엄격히 적용하는 것이 게이 남성의 성적 표현에 부정적인 영향을 줄 수 있다고 본다. 즉, 낯선 사람의 비위협적이고 일시적인 신체 접촉은 게이 남성에게 “성적 발견의 긍정적 일부”가 될 수도 있다는 것이다.
조 잭슨은 퀴어 여성 커뮤니티에서 자신이 동의 없이 허벅지 근처나 가슴을 만져지는 경험을 했지만, 당시에는 그것이 “부드러운 유혹의 일부”로 느껴져 아무 말도 하지 않았다고 밝혔다.
그녀는 퀴어 여성 커뮤니티 내에 “엉덩이 만지기, 남성적 발언, 공격적이거나 끈질긴 추파”가 존재하며, “성적 에너지를 이용해 권력을 행사하는 것이 매력적이라는 인식”이 퍼져 있다고 지적한다.
또한 일부 여성들은 동의 개념을 흐리게 하는 “만질 권리”를 느낀다고 말한다. 퀴어 여성들이 자라면서 이성애 관계 중심의 미디어만 접하는 경우가 많기 때문에, 여성 간 데이트와 관련된 어휘나 동의의 사회적 신호를 익히지 못하는 것도 문제라고 한다.
조던 보실예박은 “예(yes)”라는 말이 언제나 동의를 의미하는 것은 아니라고 주장한다. 특히 “가난하거나, 장애가 있거나, 퀴어이거나, 유색인종이거나, 트랜스이거나, 여성스러운 사람들”의 경우 그렇다고 지적한다. 그녀는 현재의 동의 담론이 부유한 이성애자, 시스젠더, 백인, 비장애인을 중심으로 설계된 특권의 산물이라고 비판한다.
맥길 대학교의 퀴어 학생들을 다룬 기사에서는 퀴어 성적 만남에는 이성애 관계처럼 정형화된 “활동 대본”이 없으며, 더 탐구적인 경향이 있어 모든 단계에서의 동의 논의가 더 많이 이루어진다고 한다.
그러나 레베카 칸은 시스젠더와 트랜스젠더 간의 만남에서는 권력 불균형이 발생할 수 있으며, 이는 트랜스젠더가 “두려움”이나 “특권적인 파트너를 기쁘게 하려는 욕구”를 느끼게 할 수 있다고 말한다. 그녀는 이러한 불균형을 해소하기 위해 특권적인 파트너가 “동의가 당연한 것이 아니다”라는 점을 분명히 해주는 것이 중요하다고 강조한다.
또한 무성애자들은 연애 관계 속에서 성관계에 동의하라는 압력을 받는 경우가 있다고 지적된다.
마이크로소프트 데이터 액세스 컴포넌트
마이크로소프트 데이터 접근 컴포넌트(Microsoft Data Access Components, MDAC, Windows DAC으로도 알려져 있음)는 프로그래머가 거의 모든 자료 저장소에 접근할 수 있는 응용 프로그램을 개발할 수 있도록 해주는 상호 관련된 마이크로소프트 기술의 소프트웨어 프레임워크이다. 이 구성 요소에는 액티브엑스 데이터 오브젝트 (ADO), OLE DB, ODBC가 포함된다. 또한 젯 데이터베이스 엔진, MSDASQL (ODBC용 OLE DB 제공자), 원격 데이터 서비스(RDS)와 같이 더 이상 사용되지 않는 구성 요소도 있었다. 이전의 데이터 접근 객체 API 및 원격 데이터 오브젝트와 같이 일부 구성 요소는 구식화되기도 했다.
마이크로소프트 데이터 액세스 컴포넌트
MDAC의 첫 번째 버전은 1996년 8월에 출시되었다. 당시 마이크로소프트는 MDAC가 독립형 프로그램이라기보다는 개념에 가까우며 광범위한 배포 방법이 없다고 밝혔다. 이후 마이크로소프트는 웹 기반 재배포 가능한 패키지 형태로 MDAC 업그레이드를 출시했다. 결국, 이후 버전은 마이크로소프트 윈도우 및 인터넷 익스플로러에 통합되었고, MDAC 2.8 SP1에서는 MDAC를 재배포 가능한 패키지로 제공하는 것을 중단했다.
역사 전반에 걸쳐 MDAC는 여러 보안 결함의 대상이 되어 권한 상승 공격과 같은 공격으로 이어졌지만, 이러한 취약점은 일반적으로 이후 버전에서 신속하게 수정되었다. 현재 버전은 2.8 서비스 팩 1이지만, 이 제품은 다양한 버전을 거쳤고 많은 구성 요소가 더 새로운 마이크로소프트 기술로 대체되거나 더 이상 사용되지 않게 되었다. MDAC는 이제 윈도우 비스타에서 Windows DAC으로 알려져 있다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
MDAC의 최신 버전 (2.8)은 여러 상호 작용하는 구성 요소로 이루어져 있으며, 이들 중 ODBC (여러 플랫폼에서 사용 가능)를 제외하고는 모두 Windows 전용이다. MDAC 아키텍처는 프로그래밍 인터페이스 계층( ADO 및 ADO.NET으로 구성), 오라클 및 마이크로소프트와 같은 데이터베이스 공급업체가 개발한 데이터베이스 접근 계층( OLE DB, .NET 관리형 제공자 및 ODBC 드라이버), 그리고 데이터베이스 자체의 세 계층으로 볼 수 있다. 이러한 구성 요소 계층은 MDAC 애플리케이션 프로그래밍 인터페이스를 통해 애플리케이션에서 모두 사용할 수 있다. 마이크로소프트 SQL 서버에 특정한 독점적인 접근 방식인 마이크로소프트 SQL 서버 네트워크 라이브러리도 MDAC에 포함되어 있다. 윈도우 애플리케이션 개발자는 데이터 접근을 위해 ADO 또는 ADO.NET을 사용하는 것이 권장되며, 이는 애플리케이션 프로그램 사용자가 MDAC에서 지원하는 데이터베이스 아키텍처를 선택하는 데 제약을 받지 않는다는 이점이 있다. 물론 개발자는 여전히 OLE DB 및 ODBC에 직접 접근하는 애플리케이션을 작성할 수 있다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
마이크로소프트 SQL 서버 네트워크 라이브러리(Net-Lib라고도 함)는 SQL 서버에서 여러 네트워크 프로토콜을 사용하여 데이터를 읽고 쓰는 데 사용된다. Net-Lib는 SQL 서버에 특화되어 있지만 마이크로소프트는 이를 MDAC에 포함시킨다. SQL 서버는 Open Data Services (ODS) 라이브러리를 사용하여 Net-Lib와 통신하며, Net-Lib는 윈도우 NT 운영 체제 라인의 Win32 서브시스템과 직접 인터페이스한다. SQL 서버 네트워크 라이브러리는 SQL 서버에 번들로 제공되는 클라이언트 네트워크 유틸리티를 사용하여 제어된다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
Net-Lib가 지원하는 각 네트워크 프로토콜에는 별도의 드라이버(장치 드라이버와 혼동하지 말 것)가 있으며, 프로토콜 스택에 세션 계층을 지원한다. Net-Lib에는 두 가지 일반적인 유형이 있다: 기본 Net-Lib와 보조 Net-Lib. 기본 Net-Lib는 슈퍼 소켓 Net-Lib와 공유 메모리 Net-Lib로 구성되며, TCP/IP 및 네임드 파이프 네트워크 라이브러리(네임드 파이프는 시스템에 영구적인 파이프라인을 통해 다른 프로세스와 통신하는 방법)를 포함하여 수많은 보조 Net-Lib가 있다. 마이크로소프트 OLE DB 제공자 for SQL Server (SQLOLEDB)는 기본 Net-Lib를 통해 통신한다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
슈퍼 소켓 Net-Lib는 컴퓨터 간 통신을 처리하고 보조 Net-Lib를 조정한다. 단, TCP/IP 보조 Net-Lib는 Windows Sockets 2 API를 직접 호출한다는 점에서 예외이다. Banyan VINES, AppleTalk, ServerNet, IPX/SPX, Giganet 및 RPC Net-Lib는 MDAC 2.5부터 제외되었다. 네트워크 라이브러리 라우터는 이 모든 프로토콜을 관리하는 역할을 했지만, 현재는 네임드 파이프 보조 Net-Lib만 라우터에 의해 관리된다. 슈퍼 소켓 Net-Lib는 윈도우 SSL API를 사용하여 데이터 암호화도 처리한다.
반면에 공유 메모리 Net-Lib는 한 컴퓨터에 존재하는 여러 SQL 서버 인스턴스 간의 연결을 관리한다. 프로세스 간 통신을 위해 공유 메모리 영역을 사용한다. 이는 본질적으로 안전하다. 운영 체제가 다른 프로세스에서 인스턴스의 공유 메모리 영역에 접근하는 것을 허용하지 않으므로 한 컴퓨터에 존재하는 SQL 서버 인스턴스 간에 데이터 암호화가 필요 없다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
Net-Lib는 또한 인증된 연결(신뢰할 수 있는 연결이라고 함)을 지원하는 프로토콜에 대해 로그인한 사용자의 보안 컨텍스트를 가장하는 기능도 지원한다. 이를 통해 Net-Lib는 윈도우 인증을 사용하여 통합된 로그온 인증 메커니즘을 제공한다. 윈도우 인증은 윈도우 98 또는 윈도우 미에서는 지원되지 않는다.
OLE DB (OLEDB 또는 OLE-DB라고도 함)는 MDAC 애플리케이션이 다양한 유형의 자료 저장소에 균일한 방식으로 접근할 수 있도록 한다. 마이크로소프트는 이 기술을 사용하여 애플리케이션을 데이터 저장소에서 분리하여 웹사이트에서 접근해야 하는 데이터를 저장할 수 있도록 했다. 이는 다양한 애플리케이션이 다양한 유형 및 소스의 데이터에 접근해야 하며, 기술별 기능을 접근하는 방법을 반드시 알 필요는 없기 때문이다. 이 기술은 개념적으로 소비자와 제공자로 나뉜다. 소비자는 데이터에 접근해야 하는 애플리케이션이며, 제공자는 컴포넌트 오브젝트 모델 (또는 COM)을 사용하여 OLE DB 인터페이스를 노출하는 소프트웨어 구성 요소이다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
OLE DB는 MDAC에서 사용하는 데이터베이스 접근 인터페이스 기술이다. OLE DB 제공자는 텍스트 파일이나 스프레드시트와 같은 간단한 데이터 저장소부터 Oracle 및 SQL 서버와 같은 복잡한 데이터베이스에 접근하기 위해 생성될 수 있다. 그러나 다른 데이터 저장소 기술은 다른 기능을 가질 수 있으므로 OLE DB 제공자는 가능한 모든 사용 가능한 인터페이스를 구현하지 않을 수 있다. 사용 가능한 기능은 COM 객체를 사용하여 구현된다. OLE DB 제공자는 데이터 저장소 기술의 기능을 특정 COM 인터페이스에 매핑한다. 마이크로소프트는 인터페이스의 가용성을 "제공자별"이라고 부르는데, 이는 관련된 데이터베이스 기술에 따라 적용되지 않을 수 있기 때문이다. 또한 제공자는 데이터 저장소의 기능을 증강할 수도 있다. 이러한 기능은 마이크로소프트 용어로 서비스라고 알려져 있다.
SQL Server용 마이크로소프트 OLE DB 공급자(SQLOLEDB)는 마이크로소프트가 SQL Server 6.5 버전 이상을 위해 제공하는 OLE DB 공급자이다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
범용 데이터 링크 파일(.udl 파일)은 연결 속성을 지정하기 위한 공통 사용자 인터페이스를 제공한다. 사용자는 데이터 링크 속성 대화 상자를 사용하여 연결 정보를 .udl 파일에 저장하여 연결 문자열에 직접 수동으로 지정하는 대안으로 사용할 수 있다. 결과적으로 이 파일은 편리한 수준의 간접성을 제공한다. 또한 대화 상자는 다양한 대상 애플리케이션을 위한 여러 대체 OLE DB 데이터 공급자를 지정한다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
ODBC는 프로그래밍 언어 (주로 C)를 통해 접근되는 네이티브 인터페이스로, 네이티브 라이브러리를 호출할 수 있다. MDAC에서 이 인터페이스는 DLL로 정의된다. 접근해야 하는 각 데이터베이스에는 별도의 모듈 또는 드라이버가 필요하다. ODBC API의 함수는 이러한 DBMS별 드라이버에 의해 구현된다. 마이크로소프트가 MDAC에서 제공하는 드라이버는 SQL Server ODBC 드라이버(SQLODBC)라고 불리며, 이름에서 알 수 있듯이 마이크로소프트의 SQL Server를 위해 설계되었다. SQL Server v6.5 이상을 지원한다. ODBC를 통해 프로그램은 데이터베이스의 독점적인 인터페이스를 알 필요 없이 데이터베이스에 접근할 SQL 요청을 사용할 수 있다. SQL 요청을 처리하고 개별 데이터베이스 시스템이 이해하는 요청으로 변환한다. 마이크로소프트에 따르면, "SQL Server 2012 이후에는 ODBC 드라이버가 마이크로소프트 윈도우 애저 SQL 데이터베이스를 포함한 최신 서버 기능을 위해 업데이트되어 마이크로소프트 SQL Server용 ODBC 드라이버로 출시될 것이다."
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
액티브엑스 데이터 오브젝트 (ADO)는 OLE DB에 대한 상위 수준 프로그래밍 인터페이스이다. 계층적 객체 모델을 사용하여 애플리케이션이 OLE DB가 지원하는 소스로부터 데이터를 프로그래밍 방식으로 생성, 검색, 업데이트 및 삭제할 수 있도록 한다. ADO는 일련의 계층적 COM 기반 객체와 컬렉션(다른 많은 객체의 컨테이너 역할을 하는 객체)으로 구성된다. 프로그래머는 ADO 객체에 직접 접근하여 데이터를 조작하거나, 여러 ADO 메커니즘을 통해 데이터베이스에 SQL 쿼리를 보낼 수 있다. ADO는 9개의 객체와 4개의 컬렉션으로 구성된다.
컬렉션은 다음과 같다:
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
필드(Fields): 이 컬렉션은 Field 객체 집합을 포함한다. 컬렉션은 Recordset 객체 또는 Record 객체에서 사용될 수 있다. Recordset 객체에서 Fields 컬렉션을 구성하는 각 Field 객체는 해당 Recordset 객체의 컬럼에 해당한다. Record 객체에서 Field는 트리 구조 네임스페이스(반정형 데이터 공급자, 예를 들어 Microsoft OLE DB Provider for Internet Publishing에 사용됨)를 가리키는 절대 또는 상대 URL이거나 해당 Record 객체와 관련된 기본 Stream 객체에 대한 참조일 수 있다.
객체는 다음과 같다.
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
연결(Connection): 연결 객체는 OLE DB를 통한 데이터 저장소에 대한 ADO의 연결이다. 연결 객체는 세션에 대한 정보를 저장하고 데이터 저장소에 연결하는 메서드를 제공한다. 일부 데이터 저장소에는 연결을 설정하는 다른 메서드가 있으므로 특정 OLE DB 공급자에 대한 연결 객체에서 일부 메서드가 지원되지 않을 수 있다. 연결 객체는 키-값 쌍 목록으로 연결을 지정하는 연결 문자열(예: "Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';")을 사용하여 'Open' 메서드로 데이터 저장소에 연결한다. 그 시작은 연결 객체가 요구하는 데이터 저장소 연결 유형을 식별해야 한다. 이는 다음 중 하나여야 한다.
"provider=" 구문을 사용하는 OLE DB 공급자(예: SQLOLEDB)
"file name=" 구문을 사용하는 파일 이름
"Remote provider=" 및 "Remote server=" 구문을 사용하는 원격 공급자 및 서버( RDS 참조)
"URL=" 구문을 사용하는 절대 URL
마이크로소프트 데이터 액세스 컴포넌트 아키텍처
명령(Command): 연결 객체가 데이터 소스에 대한 세션을 설정한 후, 명령 객체를 통해 데이터 공급자에게 명령이 전송된다. 명령 객체는 CommandText 속성을 사용하여 SQL 쿼리를 공급자에게 직접 보낼 수 있고, Parameter 객체 또는 Parameters 컬렉션을 사용하여 매개변수화된 쿼리 또는 저장 프로시저를 보내거나, Execute 메서드를 통해 쿼리를 실행하고 결과를 데이터셋 객체로 반환할 수 있다. Stream, RecordSet 또는 Connection 객체와 관련된 Command 객체에서 사용할 수 있는 다른 여러 메서드가 있다.
레코드셋(Recordset): 레코드셋은 레코드 그룹이며, 기본 테이블에서 오거나 테이블에 대한 쿼리 결과로 올 수 있다. RecordSet 객체는 Fields 컬렉션과 Properties 컬렉션을 포함한다. Fields 컬렉션은 Field 객체 집합으로, 테이블의 해당 컬럼이다. Properties 컬렉션은 Property 객체 집합으로, OLE DB 공급자의 특정 기능을 정의한다. RecordSet은 내부에 존재하는 데이터를 검사하기 위한 수많은 메서드와 속성을 가지고 있다. 레코드셋의 레코드는 레코드의 값을 변경한 다음 Update 또는 UpdateBatch 메서드를 호출하여 업데이트할 수 있다. 새 레코드를 추가하는 것은 AddNew 함수를 통해 수행한 다음 Update 또는 UpdateBatch 메서드를 호출하여 수행된다. 레코드도 Delete 메서드를 사용하여 레코드셋에서 삭제한 다음 Update 메서드를 호출하여 삭제한다. 그러나 참조 무결성 위반과 같은 이유로 삭제가 발생할 수 없는 경우, 레코드셋은 Update 메서드 호출 후에도 편집 모드로 유지된다. 프로그래머는 업데이트를 취소하기 위해 CancelUpdate 함수를 명시적으로 호출해야 한다. 또한 ADO는 트랜잭션(지원되는 경우)을 롤백하고 일괄 업데이트를 취소할 수 있다. 레코드셋은 다음 세 가지 방법 중 하나로 업데이트될 수도 있다: 즉시 업데이트, 일괄 업데이트, 또는 트랜잭션 사용:
즉시(Immediate): 레코드셋은 adLockOptimistic 또는 adLockPessimistic 잠금을 사용하여 잠긴다. 레코드가 변경되고 Update 메서드가 호출된 후 데이터 소스에서 데이터가 업데이트된다.
일괄(Batch): 레코드셋은 adLockBatchOptimistic을 사용하여 잠기고, Update가 호출될 때마다 데이터는 임시 버퍼에서 업데이트된다. 마지막으로 UpdateBatch가 호출될 때 데이터는 데이터 소스에서 완전히 업데이트된다. 이것은 모든 작업이 메모리에서 수행된다는 장점이 있으며, 문제가 발생하면 UpdateCancel이 호출되어 업데이트가 데이터 소스로 전송되지 않는다.
트랜잭션(Transaction): OLE DB 공급자가 허용하는 경우, 트랜잭션을 사용할 수 있다. 트랜잭션을 시작하려면 프로그래머는 BeginTrans 메서드를 호출하고 필요한 업데이트를 수행한다. 모든 작업이 완료되면 프로그래머는 CommitTrans 메서드를 호출한다. RollbackTrans는 트랜잭션 내에서 수행된 모든 변경 사항을 취소하고 데이터베이스를 트랜잭션 시작 전 상태로 롤백하는 데 호출될 수 있다.
ADO.NET은 ADO의 최신 버전(ADO 2.8 이후, 현재는 ADO Classic으로 자주 언급됨)으로, 클래식 ADO와 함께 MDAC 2.8 스택의 일부이다. 마이크로소프트 .NET을 중심으로 구축되었다. 때로는 ADO의 진화적인 단계로 여겨지기도 하지만, 마이크로소프트에 의해 몇 가지 근본적인 구조적 변경이 이루어졌다. ADO.NET은 .NET 관리형 공급자(특히 .NET용으로 설계된 OLE DB 공급자의 수정 버전)를 통해 실행된다. 객체 구조는 더 이상 Recordset 객체를 중심으로 구축되지 않는다. 대신 Dataset 객체가 여러 소스에서 수집된 데이터를 포함하는 데 사용된다. 이는 프로그래머에게 투명하다. 이전 ADO Recordset과 달리 Dataset의 설계는 연결되지 않은 데이터 사용을 촉진한다. 개념적으로 Dataset 객체는 자체적으로 작은 인메모리 관계형 데이터베이스로 볼 수 있으며, 데이터를 어떤 방향으로든 조작할 수 있다. 데이터베이스에 변경 사항을 다시 전파하기 위해 데이터 어댑터 객체가 사용되어 데이터 소스와 DataSet 객체 간에 데이터를 전송한다. 커서도 ADO.NET에서 더 이상 사용되지 않으며, 데이터 리더 객체로 대체되었다. 이 객체는 대량의 결과를 한 번에 한 레코드씩 저장하지 않고 효율적으로 처리하는 데 사용된다.
마이크로소프트 데이터 액세스 컴포넌트 더 이상 사용되지 않거나 구식화된 구성 요소
MDAC는 지속적으로 진화하는 구성 요소 프레임워크이다. 따라서 이전에 MDAC의 일부였지만 이후에 더 이상 사용되지 않거나 프레임워크에서 완전히 제거된 여러 구성 요소가 있다.
Jet은 Joint Engine Technology의 약자이며 마이크로소프트 액세스, 마이크로소프트 익스체인지 서버 및 비주얼 베이직에 사용되는 데이터베이스 엔진이었다. Jet은 관계형 데이터베이스 관리 시스템 (RDBMS)의 일부였으며 다른 소프트웨어가 마이크로소프트 데이터베이스에 접근하는 데 사용할 수 있는 단일 인터페이스를 제공했다. Jet은 또한 보안, 참조 무결성, 트랜잭션 처리, 색인, 레코드 및 페이지 잠금, 데이터 복제를 지원했다. 이후 Jet 버전에서는 엔진이 확장되어 SQL 쿼리를 실행하고, 문자 데이터를 유니코드 형식으로 저장하고, 뷰를 생성하고, 마이크로소프트 SQL 서버와의 양방향 복제를 허용했다. 이는 MSDE에 의해 대체되었고, MSDE는 SQL Server Express에 의해 대체되었다.
마이크로소프트 데이터 액세스 컴포넌트 더 이상 사용되지 않거나 구식화된 구성 요소
Jet에는 세 가지 모듈이 있었다. 하나는 네이티브 Jet ISAM 드라이버로, 마이크로소프트 액세스 데이터베이스 파일(MDB)을 직접 조작할 수 있는 Jet 동적 연결 라이브러리 (DLL)였으며, 이는 색인 순차 접근 방식 (ISAM) 데이터베이스의 수정된 형태였다. 다른 모듈은 Xbase, Paradox, Btrieve 및 FoxPro 파일을 포함하여 ISAM 데이터베이스에 접근할 수 있는 DLL인 ISAM 드라이버였다. 최종 모듈은 데이터 접근 객체 (DAO) DLL이었으며, DAO를 통해 프로그래머는 Jet 엔진에 접근할 수 있었다. 기본적으로 Access Basic 및 비주얼 베이직 애플리케이션 개발자가 Jet에 접근하는 데 사용하는 객체 지향 데이터 언어였다.
마찬가지로, Jet 데이터 소스 간 복제를 허용하는 마이크로소프트 Jet OLE DB 제공자 및 복제 객체(JRO)는 MDAC 2.6에서 제거되었다.
마이크로소프트 데이터 액세스 컴포넌트 더 이상 사용되지 않거나 구식화된 구성 요소
ODBC용 마이크로소프트 OLE DB 제공자인 MSDASQL은 모든 ODBC 드라이버를 통해 액티브엑스 데이터 오브젝트가 데이터베이스에 접근할 수 있도록 하는 OLE DB 제공자였다. 마이크로소프트는 여러 OLE-DB 제공자(인덱싱 서비스용, 액티브 디렉터리용, Jet용, SQL 서버용, Oracle용(MSDAORA) 및 인터넷 퍼블리싱용)를 제공했지만, 달리 지시하지 않는 한 ADO는 MSDASQL을 기본 제공자로 사용했다. MDAC 2.5 이후에는 Oracle ODBC 드라이버와 MSDASQL 모두 Oracle 7을 지원하고 Oracle 8i를 부분적으로 지원했다. 지원되지 않는 기능은 다음과 같다.
마이크로소프트는 처음에 64비트 운영 체제에서 MSDASQL 구성 요소를 더 이상 사용하지 않게 했다. 그리고 마이크로소프트 오라클 ODBC 드라이버는 나중에 .NET 관리형 오라클 제공자로 대체되었으며, 이는 오라클 9i를 지원했다. 그러나 Windows Server 2008 및 윈도우 비스타 SP1은 MSDASQL의 64비트 버전을 함께 제공한다.
마이크로소프트 데이터 액세스 컴포넌트 더 이상 사용되지 않거나 구식화된 구성 요소
원격 데이터 서비스(RDS)는 서버에서 데이터 세트를 검색하여 클라이언트가 어떤 식으로든 변경한 다음 추가 처리를 위해 서버로 다시 보내는 것을 허용했다. 루프 및 조건문과 같은 프로그래밍 구조로 SQL을 확장하는 트랜잭트 SQL의 대중적인 채택으로 인해 이는 덜 필요해졌고, 결국 MDAC 2.7에서 더 이상 사용되지 않게 되었다. 마이크로소프트는 클라이언트가 개방형 XML 기반 표준을 통해 이를 수행할 수 있도록 SOAP Toolkit 2.0을 제작했다.
SQLXML은 SQL Server 2000용으로 설계되었지만, MDAC 2.6과 함께 사용이 중단되었다. 이는 마이크로소프트의 관계형 데이터베이스가 XPath를 통해 표시되고 데이터가 XML 파일로 표시될 수 있도록 했다. 실제로 사용이 중단된 것은 아니지만 이후 MDAC 버전에서 제거되었고, 마이크로소프트는 이를 다운로드 가능한 구성 요소로 제공하며 64비트 운영 체제에서 지원할 예정이다.
마이크로소프트는 MDAC에서 여러 구성 요소를 완전히 제거했으며 더 이상 지원하지 않는다. 다음과 같다.
ESQL/C: 임베디드 SQL (E-SQL 또는 ESQL/C라고도 함)은 Visual C로 프로그래밍할 때 SQL을 사용하는 방법이다. 마이크로소프트는 SQL Server 6.5가 출시된 후 이에 대한 지원을 중단했지만, ESQL/C 런타임 환경의 일부를 COBOL 컴파일러 및 도구를 개발하는 회사인 Micro Focus에 라이선스했다.
마이크로소프트 데이터 액세스 컴포넌트 역사
마이크로소프트는 시간이 지남에 따라 여러 버전의 MDAC를 출시했다. 배포 방법은 다양했으며 각 버전마다 기능 세트가 다르다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 1.0은 1996년 8월에 처음 출시되었다. 마이크로소프트에 따르면, "MDAC 1.0은 독립 실행형 설치 프로그램이라기보다는 개념으로 존재했다." MDAC 1.0 스택은 ODBC 3.0, OLE DB 1.1, ADO 1.0 및 Advanced Data Connector (ADC) 1.0으로 구성되었다. 마이크로소프트에 따르면 ADC 1.0은 MDAC 1.5의 원격 데이터 서비스의 전신이었다. 또한 Access/Jet, SQL Server 및 Oracle 데이터베이스용 ODBC 드라이버도 포함되었다. MDAC 1.0은 여러 메커니즘을 통해 출시되었다: Advanced Data Connector는 인터넷 정보 서비스 (IIS) 3.0과 함께 제공되었고 다운로드 가능한 cab 파일로 제공되었다. OLE DB 1.1 및 ADO 1.0은 OLE DB 1.1 SDK와 함께 제공되었으며, 이는 비주얼 스튜디오 97과 함께 제공되었고 다운로드도 가능했다. MDAC 1.0은 IIS 3.0에 포함된 Active Server Pages와 함께 제공되었고, Visual InterDev 1.0과도 함께 제공되었다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 1.5는 1997년 9월에서 1998년 3월 사이에 출시되었으며, MDAC 1.0보다 더 중앙 집중적인 배포 메커니즘을 사용했다. 마이크로소프트 인터넷 익스플로러 4.0, 인터넷 클라이언트 SDK 4.0과 함께 출시되었고, 1997년 전문 개발자 콘퍼런스 (PDC)에서 배포된 CD-ROM을 통해서도 제공되었다. MDAC 1.5의 다섯 가지 버전이 있었다.
MDAC 1.5의 여러 버전은 다음과 같이 구성되었다.
이 버전의 MDAC에는 권한 상승 공격에 취약하게 만드는 보안 결함이 있었다. 이 취약점으로 인해 IIS와 MDAC가 모두 설치된 시스템은 권한 없는 웹 사용자에게 IIS 시스템에서 권한 있는 사용자로 셸 명령을 실행할 수 있는 기능을 부여했다. 이로 인해 공격자는 멀티홈 인터넷 연결 IIS 시스템에서 공용 연결을 통해 사설 백엔드 네트워크로 SQL 및 기타 ODBC 데이터 요청을 터널링하기 위해 MDAC를 사용할 수 있었다. 또한 사용자는 IIS 시스템의 보안된, 게시되지 않은 파일에 무단으로 접근할 수 있었다.
MDAC 1.5는 Windows NT 3.51 SP5에서 지원되는 마지막 데이터 접근 구성 요소 릴리스였다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 2.0은 Data Access 2.0 SDK와 함께 배포되었으며 MDAC 1.5의 내용, ODBC 3.5 SDK 및 OLE DB 1.5 SDK, OLE DB for OLAP Specification이 포함되었다. 또한 핵심 제품에 대한 많은 업데이트가 포함되었으며, IIS 서버에서 악의적으로 사용되는 것을 방지하는 RDS에 추가된 보안 기능도 포함되었다. 이 버전은 Windows NT 4.0 SP4에 포함되었고, 전체 Data Access SDK가 포함된 Visual Studio 6.0과도 함께 제공되었다.
MDAC 2.1은 SQL 서버 7.0 및 SQL 서버 6.5 SP5와 함께 배포되었다. MDAC 2.1 SP1은 인터넷 익스플로러 5와 함께 배포되었고, MDAC 2.1 SP1a (GA)는 마이크로소프트 오피스 2000, 백오피스 4.5 및 비주얼 스튜디오 98 SP3와 함께 배포되었다. 그러나 이러한 MDAC 버전 중 어느 것도 월드 와이드 웹을 통해 일반 대중에게 공개되지 않았다. MDAC 2.1 SP2는 마이크로소프트 웹사이트에서 배포되었다. 2.1에 포함된 구성 요소는 다음과 같다.
마이크로소프트 데이터 액세스 컴포넌트 역사
이 버전에는 검사되지 않은 버퍼로 인해 권한 상승 공격이 발생할 수 있는 보안 취약점이 있었다. 이는 얼마 후에 발견되었고 MDAC 2.1, 2.5, 2.6에 영향을 미쳤으며 이후 패치에서 해결되었다.
MDAC 2.5는 2000년 2월 17일에 출시되었으며 윈도우 2000과 함께 배포되었고, MDAC 서비스 팩은 윈도우 2000 서비스 팩과 병행하여 출시되었다. 또한 마이크로소프트 웹사이트를 통해서도 배포되었다. 세 가지 서비스 팩이 출시되었다. 2.5에 포함된 구성 요소는 다음과 같다.
이 버전의 MDAC에서 몇 가지 문제가 발견되었다. OLE DB 세션 풀링을 사용할 때 마이크로소프트 COM+는 OLE DB를 계속 로드하고 언로드하려고 시도했으며, 이로 인해 OLE DB 세션 풀링이 CPU 사용률 100%로 실행되는 충돌이 발생할 수 있었다. 이 문제는 나중에 수정되었다. 마이크로소프트는 MDAC 2.5 서비스 팩 2 및 MDAC 2.5 서비스 팩 3에서 수정된 버그 목록을 전체 공개했다. 또한 SQL 서버 드라이버에서 검사되지 않은 버퍼가 발견되어 보안 취약점(나중에 수정됨)이 존재했다. 이 결함은 MDAC 2.5 SP2에서 도입되었다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 2.6은 2000년 9월에 출시되었으며 웹을 통해 마이크로소프트 SQL 서버 2000과 함께 배포되었다. MDAC 2.6 RTM, SP1 (2001년 6월 20일 출시), SP2 (2002년 6월 11일 출시)는 마이크로소프트 SQL 서버 2000 서비스 팩과 병행하여 배포되었으며 마이크로소프트 웹사이트에서도 다운로드할 수 있었다.
마이크로소프트 데이터 액세스 컴포넌트 역사
이 MDAC 버전부터 마이크로소프트 Jet, 마이크로소프트 Jet OLE DB 제공자, ODBC 데스크톱 데이터베이스 드라이버는 포함되지 않았다. 대신 이들은 수동으로 설치할 수 있었다. 마이크로소프트는 또한 SQL 서버 7.0 클러스터에 MDAC 2.6을 설치하지 말라는 경고를 발표했다. "클러스터의 노드에 직접 또는 다른 프로그램 설치를 통해 MDAC 2.6 이상을 설치하면 SQL 서버 에이전트 또는 다른 SQL 서버 서비스에 치명적인 오류가 발생할 수 있기 때문"이었다. 이 문제는 Veritas Software의 윈도우 서버용 Backup Exec 9.0에 영향을 미쳤다. Backup Exec 9.0은 마이크로소프트 SQL 서버 2000 데스크톱 엔진(MSDE 2000)을 데이터베이스로 설치하기 때문이었다. 리비전 4367은 MDAC 버전 2.6 SP2를 설치했고, 리비전 4454는 MDAC 버전 2.7 SP1을 설치했는데, 이 버전에는 문제가 없었다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 2.7은 2001년 10월에 마이크로소프트 웹사이트를 통해 출시되었다. 2002년 4월에는 윈도우 XP 출시와 마이크로소프트 웹사이트를 통해 새로 고침 릴리스가 발행되었다. 버전 2.7은 미국 영어, 중국어(번체 및 간체), 독일어, 일본어, 한국어, 브라질 포르투갈어, 체코어, 덴마크어, 그리스어, 슬로바키아어, 슬로베니아어, 스페인어, 핀란드어, 프랑스어, 헝가리어, 이탈리아어, 네덜란드어, 노르웨이어, 폴란드어, 포르투갈어, 러시아어, 스웨덴어, 튀르키예어로 제공되었다. 히브리어 및 아랍어는 윈도우 XP를 통해서만 사용 가능했다.
마이크로소프트 데이터 액세스 컴포넌트 역사
주요 기능 변경 사항은 마이크로소프트의 64비트 운영 체제 지원이었으나, Banyan VINES 지원은 이 MDAC 버전에서 제외되었다. 몇 가지 알려진 문제가 있었다. MDAC 2.7은 마이크로소프트 SQL 서버 6.5 또는 SQL 서버 7.0을 실행하는 클러스터 서버에서 계속 연결 문제를 일으켰으며, 마이크로소프트는 해결책을 제공하지 않았다. 마이크로소프트 SQL 서버 ODBC 드라이버를 사용하여 ODBC 데이터 원본 이름 (DSN)을 생성하거나 구성할 때 네트워크 라이브러리 프로토콜이 DSN이 네임드 파이프를 사용하도록 구성되었음에도 불구하고 예기치 않게 TCP/IP로 전환될 수 있었다. 이 문제는 인포월드 기자 랜들 C. 케네디가 발견했으며, 그는 이 변경 사항이 실제로는 MDAC 2.6에서 이루어졌지만 전혀 문서화되지 않았다고 밝혔다. 이 문제는 윈도우 XP 컴퓨터에서 클라이언트/서버 데이터베이스 워크로드를 테스트할 때 발견되었다. 인포월드는 TCP/IP를 사용할 때 전체 서버 CPU 사용률이 8%만 증가했지만, 10 사용자 워크로드의 경우 초당 문맥 교환이 150% 이상 감소했다고 주장한다(이는 물론 불가능하다. 그러면 음수 문맥 교환률이 되기 때문이며, 저자가 글을 쓸 당시 어느 행성에 있었는지에 따라 감소율은 33% 또는 60%이다). 그들은 Net-Lib의 기본 동작에 대한 근본적인 기능 변경이 관련 없는 문서에 스쳐 지나가듯 언급된 것에 대해 실망했다. 윈도우 XP 사용자들도 때때로 SQL 서버에 연결하는 데 문제가 발생했는데, SQL 서버가 로컬 컴퓨터에서 발견하는 인증서를 사용하려고 시도하지만, 사용 가능한 인증서가 두 개 이상인 경우 어떤 것을 사용해야 할지 알지 못했기 때문이었다. 마이크로소프트 분석 서비스 2000 RTM을 사용하려고 시도할 때 큐브를 찾아볼 때 오류가 가끔 나타나기도 했다. 마이크로소프트는 또한 윈도우 95, 윈도우 98, 윈도우 미의 설치 프로그램에서 MDAC 설치 프로그램이 설치 오류를 만나면 롤백되지 않도록 하는 문제를 발견했다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 2.7에 대한 몇 가지 보안 문제가 마이크로소프트에 의해 해결되었다. Next Generation Security Software Ltd의 데이비드 리치필드는 데이터 소스에 연결하는 데 사용되는 MDAC의 ODBC 함수 중 하나에 검사되지 않은 버퍼가 포함되어 있어 보안 취약점이 발생한다고 보고했다. 수정된 또 다른 취약점은 공격자가 클라이언트가 브로드캐스트한 SQL Server 검색 메시지에 특별히 제작된 패킷으로 응답하여 버퍼 오버플로를 유발할 수 있다는 것이었다. 또 다른 결함은 공격자가 브로드캐스트에 다른 특별히 제작된 패킷으로 응답할 때 코드가 원격으로 실행될 수 있다는 것이었다.
마이크로소프트 데이터 액세스 컴포넌트 역사
MDAC 2.8은 2003년 8월에 출시되었으며 마이크로소프트 Windows Server 2003과 마이크로소프트의 Data Access Technologies 웹사이트를 통해 배포되었다. 제품에 새로운 기능을 추가하지 않았지만 여러 버그 및 보안 문제를 수정했다. 서버가 "안전하지 않은" 모드로 실행되도록 하는 레그 파일(레지스트리 변경을 자동화)이 제거되어 RDS가 시스템에 무단 접근을 얻기 위해 악용될 수 있었으며 Shape 쿼리 문자열의 길이에 새로운 제한이 부과되었다. 또한 몇 가지 ODBC 관리자 변경 사항도 있었다.
2005년 5월 23일, 마이크로소프트 데이터 접근 기술의 수석 프로그램 관리자인 브래드 로즈는 MDAC 2.8 SP1이 마이크로소프트가 출하할 MDAC의 마지막 독립 실행형 재배포 가능 패키지라고 발표했다. MDAC는 이제 마이크로소프트 운영 체제의 공식 구성 요소이지만, 이전에 출시된 웹 배포 가능 버전에 대한 버그 및 보안 수정 사항은 계속 제공할 예정이다. 그러나 마이크로소프트는 SQL 네이티브 클라이언트 (SQLNCLI)라는 새로운 구성 요소를 만들었는데, 이는 OLE DB 및 ODBC 라이브러리를 하나의 DLL로 결합한 독립 실행형 데이터 접근 API이다. 이는 이제 운영 체제 상태에 의존하는 MDAC와는 독립적으로 형성되었다. 개발자는 이제 이 라이브러리에 연결하여 MDAC의 다른 버전에 구축된 애플리케이션을 운영 체제 업데이트 시 MDAC 업데이트로 인해 손상되는 상황을 피할 수 있다.
윈도우 7 SP1은 MDAC 2.8의 상위 호환성을 깨뜨렸다. 윈도우 7 SP1에서 컴파일되어 MDAC ADO에 의존하는 소프트웨어는 윈도우 7 SP1 이전 버전(윈도우 7 RTM, 비스타, XP 포함)에서는 작동하지 않는다. 마이크로소프트는 일부 애플리케이션에 대해 이 문제를 해결하는 솔루션을 제공했지만 VBA 애플리케이션은 여전히 영향을 받는다. 이 문제에 대한 수정 사항은 2012년 2월에 출시되었다.
윈도우 비스타는 더 이상 MDAC를 사용하지 않고, ADO, OLE DB, ODBC 구성 요소의 업데이트된 버전으로 구성된 Windows DAC를 사용할 것이다. 마이크로소프트에 따르면, "Windows DAC는 윈도우 비스타와 함께 작동하기 위한 일부 변경 사항을 포함하고 있지만, 기능적으로는 MDAC 2.8과 거의 동일하다."
컴퓨터에 설치된 MDAC 버전을 확인하는 방법은 두 가지가 있다. 윈도우 2000, 윈도우 XP 및 윈도우 서버 2003의 경우, 마이크로소프트의 Component Checker 프로그램을 통해 각 설치된 MDAC DLL의 값을 MDAC 파일 매니페스트와 비교하는 방법이 있다. 두 번째 방법은 윈도우 레지스트리에서 키 HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer를 확인하는 것이다. 마이크로소프트는 이 정보가 MDAC 파일이 시스템에 설치된 버전과 비교했을 때 2.1 이전 버전의 MDAC에서는 부정확할 수 있다고 언급한다.
새와 나무
《새와 나무》는 1984년 2월 25일에 방영된 TV문학관이다.
새와 나무 줄거리
먼 길을 가던 한 나그네(박근형)는 숲 속을 지나다가 마치 나무처럼 서 있는 한 남자(이순재)를 발견한다. 그는 그 숲의 주인으로 이전부터 그래왔던 것처럼 나그네를 정중히 자신의 집으로 안내하여 식사를 대접하고 잠자리를 제공한다. 식사 후 그 남자는 나그네에게 자신의 이야기를 들려준다. 그는 황금만능주의 풍조에 혐오감을 느끼고 다만 나무를 심고 돌보기만 하는 일을 반복하는데...
우주메리미
《우주메리미》는 2025년 10월 10일부터 2025년 11월 15일까지 방송된 SBS 금토 드라마이다.
우주메리미 기획 의도
최고급 신혼집 경품을 사수하려는 두 남녀의 달달살벌한 90일 간의 위장 신혼기