팁 |
---|
Microsoft Access에 연결하려면 SQL Server가 Microsoft Access 데이터베이스 엔진을 시작해야 합니다. 다른 대부분의 공급자와는 달리 Microsoft Access는 경량의 공급자가 아니지만 전체 Microsoft Access 데이터베이스 엔진은 경량의 공급자입니다. SQL Server 프로세스 공간에서 Microsoft Access를 열면 디스크, 프로세서 또는 메모리 리소스의 부족으로 인해 오류가 발생할 수 있습니다. 발생할 수 있는 오류에는 "OLE DB 공급자의 데이터 원본 개체를 초기화할 수 없습니다."도 포함됩니다. 메모리 부족 오류가 발생하지 않도록 하려면 SQL Server 메모리 프로세스 공간 외부에서 열리도록 공급자를 구성하십시오. |
SQL Server 메모리 공간 외부에서 Microsoft Access를 실행하려면
SQL Server Management Studio 개체 탐색기에서 SQL Server 이름, 서버 개체, 연결된 서버, 공급자를 차례로 확장하고 Microsoft Access 공급자 Microsoft.ACE.OLEDB.12.0 또는 Microsoft.Jet.OLEDB.4.0을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
공급자 옵션 상자에서 Inprocess 허용의 선택을 취소합니다.
확인을 클릭합니다.
Access 데이터베이스에 액세스하기 위해 연결된 서버를 만들려면
Microsoft.Jet.OLEDB.4.0을 provider_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'
보안되지 않는 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
레지스트리 항목을 구성한 후 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
입니다.
첫댓글 감사