これは私の問題です。ExcelでのT-SQL OPENROWSET SQLサーバー以外のマシンから実行した場合のみエラー
次のクエリを実行しています。最初は、ネットワーク上の場所にあるファイルにアクセスしたいので、本当に必要なものです。 2番目の問題は、問題の絞り込みに役立つことが示されています。
私が手にエラーが
Msg 7399, Level 16, State 1, Line 3
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7303, Level 16, State 1, Line 3
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
です。注:I以下の例ではmyXXXXで実際のファイル、サーバー名とフォルダ名を置き換えています。しかし、いくつかのコンテキストを取得するには、
1. Select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\myFileServer\MyFolder\myFileName.xlsx;HDR=YES', 'SELECT * FROM [mySheetName$]')
2. Select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\MyFolder\myFileName.xlsx;HDR=YES', 'SELECT * FROM [mySheetName$]')
まずすべての問題(スペースなし、特殊文字など)が発生します名には何もありません。クエリ2については、myFileName.xlsxを、SQL Server 2008インスタンスをホストするWindows ServerのC:ドライブにコピーしました。 SSMSは
Query 1:
c. Run from SSMS connected to MySQLServer on SQl Server Box directly: Works
d. Run from SSMS connected to MySQLServer on my Windows 10 PC: FAILS
偶数のWindows Serverと私のローカルアカウントの作品としてSSMSを実行するにログインし、ドメイン管理者アカウントの私のドメインユーザーアカウントとして実行されているかどうか仕事上の
Query 2: Accessing the file that is stored locally on the SQL Server box:
a. Run from SSMS connected to MySQLServer on SQl Server Box directly: Works
b. Run from SSMS connected to MySQLServer on my Windows 10 PC: Works
両方。
次のステップは、SQLホストボックスのイベントをチェックすることでした(BTW:SQLインスタンスがホストOS上で直接実行されていて、どこにでもVMが含まれていません) SQLホストボックスでprocmonを実行し、私はシナリオdを実行する。上記。
Process = sqlservr.exe
Operation = CreateFile
Path = \\myFileServer\MyFolder\myFileName.xlsx
Result = ACCESS DENIED
Details = Desired Access: Read Attributes, Disposition: Open, Options: Open For Backup, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, Impersonating: myDomainName\administrator
ログの実行シナリオの確認c。上記
Process = sqlservr.exe
Operation = CreateFile
Path = \\myFileServer\MyFolder\myFileName.xlsx
Result = SUCCESS
Details = Desired Access: Read Attributes, Disposition: Open, Options: Open For Backup, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, Impersonating: myDomainName\administrator, OpenResult: Opened
を与える私は、フォルダとファイルがSQLインスタンスが稼働することを完全なドメイン管理者とドメインユーザーアカウントからアクセスしても、サービスアカウントを持っていることをチェックしました。 私はまた、同じアカウントがSQLホストボックスのC:\ tempにアクセスできることを確認しました。
私は次に何を試していいのか分かりません。私はこのようなデータを同じサーバー上で何年もインポートしてきましたが、私はこれまでこれをOKにすることができたと確信していますが、見つかった既存のスクリプトはすべてローカルドライブを指していました。
もう1つ:フォルダにドライブをマップしようとしましたが、同じエラーが発生しました。
誰かが私を正しい方向に向けることができればと思っています。
読んでいただきありがとうございます!
ありがとう、私は認証委任をチェックアウトし、何か成功したかどうかを知らせます。私は今朝までこれを行うことができないかもしれないが、私は返信する。 –