質問 |
||
| 質問者:waki16 | BULK INSERT でファイルが開けなくて困っています | |
|---|---|---|
困り度:
|
初めての質問なのでトンチンカンなこと言ってたらすみません。 SQL Server 2005のストアドプロシージャを使ってBulk InsertでSQL Server とは別のパソコンにあるcsvファイルをテーブルにインポートしようとしているのですが、「...を開けなかったので、一括読み込みできません。...アクセスが拒否されました。」とエラーが出てしまいます。ストアドプロシージャは別パソコンのVB2005からパラメータ(ファイルパス等)を与えて実行しています。 ファイルの保存先フォルダは共有にしています。 ちなみにSQL Server側のパソコンからストアドプロシージャを実行するとちゃんとインポートしてくれます。 パスワードや権限が関係してるんでしょうか? 長くなりましたが、よろしくお願い致します。 |
|
質問投稿日時:08/07/04 16:27 質問番号:4150915 |
||
回答良回答10pt |
|
| 回答者:jamshid6 | Windows認証の場合、ローカルログインであればログインユーザの権限を借用してリモートファイルにアクセスしますが、リモートログインの場合は、それができないはず、というのが前回の趣旨でした。 探してみたら、記述がありました。 http://msdn.microsoft.com/ja-jp/library/ms188365.aspx >セキュリティ アカウントの委任 (権限借用) >SQL Server ユーザーが Windows 認証を使用してログインした場合、そのユーザーは SQL Server プロセスのセキュリティ プロファイルに関係なく、そのユーザー アカウントでアクセス可能なファイルだけを読み取ることができます。 >あるコンピュータで sqlcmd または osql を使用して BULK INSERT ステートメントを実行し、2 台目のコンピュータの SQL Server にデータを挿入し、UNC パスを使用して 3 台目のコンピュータの data_file を指定した場合、エラー 4861 が返されることがあります。 >この問題を解決するには、SQL Server 認証を使用し、SQL Server ログインを指定します。このログインでは、SQL Server プロセス アカウントのセキュリティ プロファイルが使用されます。 SQL Server側のインストール時の設定をどうされているかによりますが、ドメインユーザでなければフォルダのアクセスの縛り方は考える必要があります。一旦共有フォルダの権限を緩めてみると、今フォルダアクセスが問題なのかどうかわかると思います。 |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/07/08 20:26 回答番号:No.2 |
|
| この回答へのお礼 | 色々とすみません。 他のやり方も考えながらやっていこうと思います。 初めての質問だったのですが、ご丁寧に回答頂きましてありがとうございます。 結果が出る前に、まずはお礼致まで。 |
回答 |
|
| 回答者:jamshid6 | もし、SQL ServerにWindows認証でログインしているならば、SQL Server認証でログインして実行してみてください。 SQL Serverにリモート接続している場合、Windows認証ではリモートファイルでBULK INSERTできなかったと思います。 |
|---|---|
| 種類:アドバイス どんな人:専門家 自信:参考意見 |
|
| |
回答日時:08/07/04 19:41 回答番号:No.1 |
|
| この回答への補足 | SQL Server認証で実行した結果、「ユーザー名を認識できないか、またはパスワードが間違っています」 とメッセージが出てしまいます。 saのログインを有効にして、VB側からの接続は成功しています。 csvファイルがあるパソコンはパスワード設定するしていますが 何が原因なのでしょうか? |
| この回答へのお礼 | ご回答ありがとうございます。 試してみます。 |