Как я создаю Связанный сервер в SQL Server 2005 к защищенной паролем базе данных Access 95?

Управление версиями с Подверсией является источником, к которому я обычно обращаюсь для получения информации о Подверсии. Главы 5 и 6 похожи, они могли бы получить Вас в правильном направлении.

4
задан 18 February 2010 в 22:05
2 ответа

Вы, кажется, не различаете пароль базы данных (сначала представленный в Струйных 3.0, версии Струи в A95) и Струйное имя пользователя/пароль безопасности уровня пользователя. Вашими примерами является весь последний, но Вы упоминаете пароль базы данных в своем вопросе. Только поддержки OLEDB, что (ODBC не делает), таким образом, необходимо проверить http://www.connectionstrings.com/access на строку подключения OLEDB с паролем базы данных.

0
ответ дан 3 December 2019 в 03:51

После нескольких часов борьбы с этой проблемой я наконец нашел не одно, а два решения! Я использую SQL Server 2008 и Access 2000, но думаю, что решение одно и то же.

Решение 1. Используйте OPENDATASOURCE

Используйте этот подход, если вы будете нечасто обращаться к данным на связанном сервере:

select * from 
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Data Source=C:\MyAccessDB.mdb;User ID=Admin;Password=;Jet OLEDB:Database Password=MyDBPassword;')...MyTable

Для чтобы это работало, вам также необходимо включить опцию Ad Hoc Distributed Queries :

exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

Решение 2: Использовать связанный сервер

Как вы уже сказали, связанный сервер, похоже, не работает. Однако есть небольшая ошибка, которая заставляет все работать гладко; вам необходимо указать пароль базы данных в строке поставщика, например ; PWD = пароль .

exec sp_addlinkedserver 
    @server = 'TestLinkServer', 
    @provider = 'Microsoft.Jet.OLEDB.4.0', 
    @srvproduct = 'Access',
    @datasrc = 'C:\MyAccessDB.mdb', 
    @provstr = ';PWD=MyDBPassword'

exec sp_addlinkedsrvlogin 
    @rmtsrvname = 'TestLinkServer',
    @useself = 'FALSE',
    @locallogin = null, 
    @rmtuser = 'Admin', 
    @rmtpassword = null

GO

Теперь вы можете запросить свою базу данных Access как связанный сервер:

select * from TestLinkServer...MyTable
3
ответ дан 3 December 2019 в 03:51

Теги

Похожие вопросы