Поставщик OLE DB для Jet

Изменения: 5 декабря 2005 г.

Поставщик OLE DB для Jet (Microsoft) предоставляет интерфейс OLE DB для баз данных Microsoft Access и позволяет распределенным запросам SQL Server 2005 обращаться к базам данных Access и электронным таблицам Excel.

Создание связанного сервера для доступа к базе данных Access

  1. Выполните процедуру sp_addlinkedserver для создания связанного сервера, указав Microsoft.Jet.OLEDB.4.0 в качестве provider_name, и полное имя пути к MDB-файлу базы данных Access как data_source. MDB-файл базы данных должен находиться на сервере. Аргумент data_source определяется на сервере, а не на клиенте, и путь должен быть допустимым на сервере.

    Например, чтобы создать связанный сервер Nwind, который работает с базой данных Access Nwind.mdb, расположенной в папке c:\mydata directory, выполните:

    sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 
       'c:\mydata\Nwind.mdb'
    
  2. Для обращения к незащищенной базе данных Access имена входа SQL Server, пытающиеся получить доступ к базе данных Access, должны иметь определенное сопоставление имени входа соответствующему имени пользователя Admin без пароля.

    Следующий пример разрешает доступ для локального пользователя Joe к связанному серверу Nwind.

    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'
    
ms175866.security(ru-ru,SQL.90).gifПримечание безопасности.
В этом примере проверка подлинности Windows не применяется. Пароли передаются в незашифрованном виде. Пароли могут быть видны в определениях источника данных и сценариях, сохраненных на диске, а также в составе резервных копий и в файлах журналов. Никогда не используйте для таких соединений пароль администратора. За инструкциями по безопасности среды обратитесь к сетевому администратору.

Базы данных Access не имеют имен каталога и схемы. Поэтому на таблицы в связанном сервере на основе СУБД Access можно ссылаться в распределенных запросах с помощью четырехкомпонентного имени в формате linked_server**...**table_name.

Следующий пример извлекает все строки из таблицы Employees на связанном сервере Nwind.

SELECT * 
FROM Nwind...Employees

Создание связанного сервера для электронной таблицы Excel

Поставщик OLE DB для Jet 4.0 (Microsoft) может быть использован для доступа к электронным таблицам Microsoft Excel.

  • Чтобы создать связанный сервер, который обращается к электронной таблице Excel, используйте формат следующего примера:

    EXEC sp_addlinkedserver EXCEL,
         'Jet 4.0',
         'Microsoft.Jet.OLEDB.4.0',
         'c:\data\MySheet.xls', 
          NULL,
         'Excel 5.0;'
    
    GO
    
  • Для доступа к данным в электронной таблице Excel требуется указать имя для диапазона ячеек. К именованному диапазону можно обратиться, используя имя диапазона как имя таблицы. Следующий запрос может использоваться для обращения к именованному диапазону SalesData, используя связанный сервер, установленный в предыдущем примере.

    SELECT *
    FROM EXCEL...SalesData
    GO
    

    При вставке строки в именованный диапазон ячеек строка будет добавлена после последней строки, которая является частью именованного диапазона ячеек. Поэтому, если необходимо вставить строку rA после заголовка столбца, свяжите ячейки заголовка столбца с именем и используйте это имя в качестве имени таблицы. Диапазон ячеек будет автоматически увеличиваться по мере вставки строк.

Настройка связанного сервера для файла с форматированным текстом

Поставщик OLE DB для Jet (Microsoft) может использоваться для доступа к текстовым файлам и запросов из них.

  • Для создания связанного сервера для обращения к текстовым файлам напрямую, не связывая файлы как таблицы в MDB-файле СУБД Access, выполните процедуру sp_addlinkedserver, как показано в следующем примере.

    Поставщик Microsoft.Jet.OLEDB.4.0 и строка поставщика 'Text'. Источник данных — полное имя пути каталога, который содержит текстовые файлы. Файл Schema.ini должен присутствовать в том же самом каталоге, где и текстовые файлы. Файл Schema.ini описывает структуру текстового файла. Дополнительные сведения о том, как создать файл Schema.ini, см. в документации по ядру СУБД Jet.

    --Create a linked server.
    EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
       'Microsoft.Jet.OLEDB.4.0',
       'c:\data\distqry',
       NULL,
       'Text'
    GO
    
    --Set up login mappings.
    EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
    GO
    
    --List the tables in the linked server.
    EXEC sp_tables_ex txtsrv
    GO
    
    --Query one of the tables: file1#txt
    --by using a four-part name. 
    SELECT * 
    FROM txtsrv...[file1#txt]
    

См. также

Основные понятия

Поставщики OLE DB, проверенные в работе с SQL Server
Распределенные запросы

Другие ресурсы

sp_addlinkedserver (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

5 декабря 2005 г.

Новое содержимое:
  • Добавлено примечание относительно безопасности.