1

SQL Server 2008 R2からへのリンク サーバーを確立しようとしていますAccess database。はAccess databaseパスワードで保護されていません。他の投稿 (特にこれ) で見たように、これは通常、現在のユーザーが NetworkService フォルダー内の Temp フォルダーにアクセスできないことが原因です。これを で実行しているためWindows Server 2008、ディレクトリ構造は、ほとんどの人が理解していないものとはかなり異なります。内のすべての一時フォルダーへのアクセスを許可しましたが"root:\Documents and Settings\" directory、役に立ちませんでした。

これは、リンク サーバーを追加するために使用している手順です。

EXEC sp_addlinkedserver 
@server = N'OS_Access', 
@provider = N'Microsoft.ACE.OLEDB.12.0', 
@srvproduct = N'',
@datasrc = N'C:\RTBData\Data\OS.mdb';
GO

リンクサーバーは問題なく作成されますが、データベースのテーブル/ビューを表示できません。同様に、私の ASP.NET アプリケーションもアクセスできません。

(Data Connectivity Components for Office をインストールして)​​両方を試しましACE and JET(64-bit)たが、どちらも機能しません。また、ACE プロバイダーを true に設定してみ"Dynamic Parameter"まし"Allow InProcess"た。

さらに、メモリの問題を除外するために、SQL 構成マネージャーの文字列の前に " をMSSQLSERVER services追加して、メモリ使用量を増やしてみました。"-g512;"startup parameters"

誰かがこれに光を当てることができれば、それは素晴らしいことです! ありがとう!

更新: sa アカウントを使用して SQL にログインしたところ、リンク サーバーを表示できました。現在のユーザー アカウントには SQL サーバーでの完全な権限があるため、アカウント間の違いがわかりません。Tempたぶん、sa アカウント (組み込み) がアクセスできる間違ったフォルダーにアクセス許可を与えました。誰かがここで私を正しい方向に向けることができれば、それは素晴らしいことであり、他の多くの人々にも役立つと思います.

4

2 に答える 2

1

コントロールパネルでUACを無効にすることで問題を解決しました。これによりどのような変更が行われたかはわかりませんが、他の人に役立つかもしれません!

于 2013-03-18T15:37:05.953 に答える
1
USE [master]
GO
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Name & Location of DB';;, [TableName])
于 2014-09-21T17:26:22.743 に答える