CAFE

[DB]강좌게시판

MSSQL 에서 MDB 파일을 Linked Server 로 연결하기

작성자whitebono|작성시간13.04.16|조회수3,865 목록 댓글 1

Jet용 Microsoft OLE DB 공급자는 Microsoft Access 데이터베이스에 OLE DB 인터페이스를 제공하고 SQL Server 2005 이상 분산 쿼리로 Access 데이터베이스 및 Excel 스프레드시트를 쿼리할 수 있도록 합니다.

Microsoft Office 2007 드라이버를 다운로드하려면 2007 Office System 드라이버: 데이터 연결 구성 요소 를 참조하십시오.


팁 src

Microsoft Access에 연결하려면 SQL Server가 Microsoft Access 데이터베이스 엔진을 시작해야 합니다. 다른 대부분의 공급자와는 달리 Microsoft Access는 경량의 공급자가 아니지만 전체 Microsoft Access 데이터베이스 엔진은 경량의 공급자입니다. SQL Server 프로세스 공간에서 Microsoft Access를 열면 디스크, 프로세서 또는 메모리 리소스의 부족으로 인해 오류가 발생할 수 있습니다. 발생할 수 있는 오류에는 "OLE DB 공급자의 데이터 원본 개체를 초기화할 수 없습니다."도 포함됩니다. 메모리 부족 오류가 발생하지 않도록 하려면 SQL Server 메모리 프로세스 공간 외부에서 열리도록 공급자를 구성하십시오.

SQL Server 메모리 공간 외부에서 Microsoft Access를 실행하려면

  1. SQL Server Management Studio 개체 탐색기에서 SQL Server 이름, 서버 개체, 연결된 서버, 공급자를 차례로 확장하고 Microsoft Access 공급자 Microsoft.ACE.OLEDB.12.0 또는 Microsoft.Jet.OLEDB.4.0을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  2. 공급자 옵션 상자에서 Inprocess 허용의 선택을 취소합니다.

  3. 확인을 클릭합니다.

Access 데이터베이스에 액세스하기 위해 연결된 서버를 만들려면

  1. Microsoft.Jet.OLEDB.4.0provider_name으로 지정하고 Access .mdb 데이터베이스 파일의 전체 경로 이름을 data_source로 지정하여 연결된 서버를 만드는 sp_addlinkedserver를 실행합니다. .mdb 데이터베이스 파일은 서버에 있어야 하고, data_source는 클라이언트가 아닌 서버에서 평가되어야 하며, 경로는 서버에서 유효한 경로여야 합니다.

    예를 들어 c:\mydata 디렉터리에 있는 Nwind.mdb라는 Access 데이터베이스에 대해 작동하는 Nwind라는 연결된 서버를 만들려면 다음과 같이 하십시오.

    sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0',    'c:\mydata\Nwind.mdb'
  2. 보안되지 않는 Access 데이터베이스에 액세스하려면 Access 데이터베이스에 액세스하려는 SQL Server 로그인에는 암호 없이 사용자 이름 Admin으로 정의된 로그인 매핑이 있어야 합니다.

    다음 예에서는 Nwind라는 연결된 서버에 대해 로컬 사용자 Joe에게 액세스를 부여합니다.

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'Admin', NULL

    보안된 Access 데이터베이스를 액세스하려면 Access에서 올바른 작업 그룹 정보 파일을 사용하도록 레지스트리 편집기에서 레지스트리를 구성하십시오. 레지스트리 편집기를 사용하여 다음 레지스트리 항목에 대해 Access에서 사용할 작업 그룹 정보 파일의 전체 경로 이름을 추가하십시오.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB

  3. 레지스트리 항목을 구성한 후 sp_addlinkedsrvlogin을 사용하여 로컬 로그인에서 Access 로그인으로의 로그인 매핑을 만드십시오.

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe',    'AccessUser', '034fhd99dl'
보안 정보보안 정보

이 예에서는 Windows 인증을 사용하지 않습니다. 암호는 암호화되지 않은 상태로 전송됩니다. 암호는 디스크, 백업 및 로그 파일에 저장되는 데이터 원본 정의와 스크립트에 표시될 수 있습니다. 따라서 이러한 유형의 연결에는 관리자 암호를 사용하지 마십시오. 사용자의 환경과 관련된 보안 지침에 대해서는 해당 네트워크 관리자에게 문의하십시오.

Access 데이터베이스에는 카탈로그와 스키마 이름이 없습니다. 따라서 Access 기반의 연결된 서버는 linked_server...table_name 형식의 네 부분으로 된 이름을 사용하여 분산 쿼리에서 참조될 수 있습니다.

다음 예에서는 Nwind라는 연결된 서버의 Employees 테이블에서 모든 행을 검색합니다.

SELECT * FROM Nwind...Employees

 

 

 

원본은

http://msdn.microsoft.com/ko-kr/library/ms175866(v=SQL.105).aspx

입니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자myunam | 작성시간 16.07.26 감사
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼