ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者: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ファイルがあるパソコンはパスワード設定するしていますが
何が原因なのでしょうか?
この回答へのお礼ご回答ありがとうございます。
試してみます。
 
最新から表示回答順に表示良回答のみ表示