최근에 모든 데이터베이스를 MyServerA
에서 MyServerB
으로 이동했습니다. 모든 MyServerA
에 잘 작동,하지만 난 xp_cmdshell
를 사용하여 bcp
명령을 호출 할 때, 나는 다음과 같은 오류 얻을 :SQL Server BCP 호스트 데이터 파일을 열 수 없습니다.
Error = [Microsoft][SQL Server Native Client 11.0]Unable to open BCP host data-file
일부 정보 :
을 나는 '사용자를 확신
MyServerB
아래에 로그인하면 내가 게시하려고하는 원격 서버 위치에 할당 된 권한이 있습니다. 명령 프롬프트에서 "whoami"를 실행하고 원격 폴더 (btw가 공유 됨)에 대한 모든 권한을 보안에 추가했습니다. 또한지도에 매핑하거나 잘 액세스 할 수 있습니다.흥미롭게도
Access denied
메시지가있는sp_send_dbmail
을 사용하여 첨부 파일로 보내려는 기존 위치의 기존 파일을 보내려고 할 때. 보안상의 문제로 보입니다. 그러나 위의 # 1을보십시오.로컬
MyServerB
에있는 폴더에 저장하려고했지만 그 중 하나를 수행 할 수 없습니다.
샘플 코드 : xp_cmdshell을에서
DECLARE @bcp varchar(2000);
SET @bcp = 'bcp "SELECT 1" queryout "\\MyServerA\Reports\MyFile.txt" -c -T -S MyServerB';
EXEC master..xp_cmdshell @bcp;
bcp는 텍스트 내보내기 도구가 아닙니다. 왜 SSIS를 사용하지 않습니까? 'xp_cmdshell'을 실행하기 위해 권한을 강화해야한다는 사실은 경고가되어야합니다. –
어쨌든, 왜 SQL Server 내부에서'bcp'를 실행합니까? 명령 줄에서 실행하거나 예약 된 작업에서 주기적으로 실행되도록 예약 할 수 있습니다. SQL Agent에서 실행되도록 명령을 예약 할 수도 있습니다. 'xp_cmdshell'을 실행하려면 보안을 약화시켜야합니다. –
이것은 내가 상속 한 것입니다. 이 시점에서 SSIS로 업데이트하거나 스크립트 또는 방법을 변경하는 권한이 있습니다. 이것은 이전 상태로 작동하고 있었고 그대로 고정되기를 원했습니다. 생각해 줘서 고마워. – ptownbro