トップ回答者
リモートサーバへBCPコマンドでの接続時に失敗する

質問
-
ネットワーク上のSQLServer2008R2のデータベースに同ネットワーク上の端末からアクセスしてBCPでファイル入出力をしたいと思っています。
試しに実行してみましたが、SQLState = 28000, NativeError = 18456
Error = [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user [ユーザ名].となってしまい、解決方法ご教示いただきたく投稿しました。リモートサーバ機のSQLServer2008R2はSTD、認証はWindows認証またはSQLServer認証いずれか、となっています。
また、Windows認証のユーザはSQLServerManagementStudioでインポートエクスポートいずれも可能であるユーザです。
Windows認証:bcp [DB名].[テーブル名] out "出力先" -S [サーバ名] -T
SQLServer認証(usera):bcp [DB名].[テーブル名] out "出力先" -S [サーバ名] -U usera -P ****
よろしくお願いします。
回答
-
こんにちは
BCPに必要な権限はSELECT権限ですが、これは問題ないですか?
https://msdn.microsoft.com/ja-jp/library/ms162802.aspxそのクライアントPCで、ODBCデータソースを作ってみて、テストは通りますかね?Select権限が必要なので、ODBCデータソースでそのDBにログインできるはずです。
で、もしAccessやExcelが入っているならそのテーブルが選択でき、データが見えるはずですよね。いかがでしょう?
Shigeru Murai / SIMOZ
すみません、訂正です。
Select権限が必要なのは、BCP Outです。
BCP Inはまた異なる権限が必要です。URLご参照ください。- 回答の候補に設定 星 睦美 2015年2月2日 1:31
- 編集済み SIMOZ 2015年2月2日 4:51 記載不十分のため
- 回答としてマーク schineenee 2015年2月3日 8:58
-
SQLState が 28000 は認証に失敗ということですね。
NativeError が 18456 というのも認証に失敗を意味しています。SQL Server をサービスしているサーバー側のイベントログや SQL Server エラーログに「状態」コードが記録されているはずです。
これによって、ログイン名のタイプミスなのか、パスワード不一致なのか、等々といったところの区別が付きますので、確認されることをお勧めします。
各状態コードが何を意味するかは以下にあります。
https://technet.microsoft.com/ja-jp/library/cc645917(v=sql.105).aspx
MCITP(Database Developer/Database Administrator)
- 回答の候補に設定 星 睦美 2015年2月2日 1:31
- 回答としてマーク schineenee 2015年2月3日 8:59
すべての返信
-
こんにちは
BCPに必要な権限はSELECT権限ですが、これは問題ないですか?
https://msdn.microsoft.com/ja-jp/library/ms162802.aspxそのクライアントPCで、ODBCデータソースを作ってみて、テストは通りますかね?Select権限が必要なので、ODBCデータソースでそのDBにログインできるはずです。
で、もしAccessやExcelが入っているならそのテーブルが選択でき、データが見えるはずですよね。いかがでしょう?
Shigeru Murai / SIMOZ
すみません、訂正です。
Select権限が必要なのは、BCP Outです。
BCP Inはまた異なる権限が必要です。URLご参照ください。- 回答の候補に設定 星 睦美 2015年2月2日 1:31
- 編集済み SIMOZ 2015年2月2日 4:51 記載不十分のため
- 回答としてマーク schineenee 2015年2月3日 8:58
-
SQLState が 28000 は認証に失敗ということですね。
NativeError が 18456 というのも認証に失敗を意味しています。SQL Server をサービスしているサーバー側のイベントログや SQL Server エラーログに「状態」コードが記録されているはずです。
これによって、ログイン名のタイプミスなのか、パスワード不一致なのか、等々といったところの区別が付きますので、確認されることをお勧めします。
各状態コードが何を意味するかは以下にあります。
https://technet.microsoft.com/ja-jp/library/cc645917(v=sql.105).aspx
MCITP(Database Developer/Database Administrator)
- 回答の候補に設定 星 睦美 2015年2月2日 1:31
- 回答としてマーク schineenee 2015年2月3日 8:59