네트워크를 통한 대량 삽입


13

누군가 나를 도와 줄 수 있습니까?

BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
    FIELDTERMINATOR = ' ',
    rowterminator = '\n',
    tablock
)

열 수없는 오류가 표시됩니다.

'\ SERVERNAME \ FOLDERNAME \ textFile.txt'파일을 열 수 없어서 대량 삽입 할 수 없습니다. 운영 체제 오류 코드 5 (액세스가 거부되었습니다.)

경로가 네트워크의 다른 컴퓨터에 있습니다.


8
합니까 계정 SQL 서버 액세스 권한이 실행되고 있음을 '\\COMPUTER01\FOLDER01\TextFile.txt'? 계정은 일반적으로 다를 수 않습니다 귀하의 계정.
Damien_The_Unbeliever

3
또한 정확한 오류를 추가 할 수 있습니까?
ypercubeᵀᴹ

@Damien_The_Unbeliever에 추가 : "공유 데이터 파일을 지정하는 일반적인 형식을 취의 범용 명명 규칙 (UNC) 이름, \\ 서버 이름 \ 공유 이름 \ 경로 \ 파일 이름을 사용하려면"
JoseTeixeira

@ypercube- '\\ SERVERNAME \ FOLDERNAME \ textFile.txt'파일을 열 수 없으므로 대량 삽입 할 수 없습니다. 운영 체제 오류 코드 5 (액세스가 거부되었습니다.). 감사합니다
조나스 아이비 V. 임페리얼

동일한 도메인과 교차 도메인을 사용하는 동일한 문제가 있습니다 (운영 체제 오류 코드 5 (액세스가 거부되었습니다)). 흥미롭게도 XP_CMDSHELL을 사용하여 파일이 있는지 테스트하거나 파일을 이동할 수도 있지만 대량 삽입은 액세스가 거부됩니다. SQL 서비스 계정과 내 Windows 계정에는 모두 폴더에 대한 권한이 있습니다.

답변:


14

나는 믿음의 도약을 만들고 Windows 인증을 사용하여 SQL Server에 연결한다고 가정합니다. 이러한 경우 Kerberos 이중 홉이 있습니다. 하나의 홉은 SQL Server에 연결하는 클라이언트 응용 프로그램이고 두 번째 홉은 원격에 연결하는 SQL Server \\COMPUTER01입니다. 이러한 이중 홉은 Constrained Delegation의 제한 사항에 해당되며 익명 로그인으로 액세스에 액세스하여 액세스가 거부됩니다.

이 문제를 해결하려면 SQL Server 서비스 계정에 대해 제한된 위임을 활성화해야합니다. 이 블로그 방법 : 제한 위임이있는 SQL Server 대량 삽입 (액세스가 거부 됨) 에 대한 예가 있으며, 제한되지 않은 위임을 활성화하는 방법에 대한 단계가 제한되지 않은 위임으로 오타가되기를 바랍니다. 평범한 악.

총을 뛰고 SQL 인증을 사용하여 SQL Server에 로그인하는 경우 SQL 로그인을위한 자격 증명을 생성하고이를 사용하여 네트워크 리소스에 액세스해야합니다. 참조하십시오 CREATE CREDENTIAL.


1

SQL Server에서 파일을 열려고 시도했지만 SQL Server에서 실행하는 계정에 파일을 열 수있는 권한이 없기 때문에 파일 서버에서 "액세스 거부"라고했습니다. 그에 따라 파일의 보안 설정을 변경하면 작동합니다.


1

SQL 로그인 (대량 관리자 권한으로)에서 스크립트를 실행하고 네트워크 폴더에 대한 권한이 SQL 서비스 계정 또는 SQL Server 에이전트 계정에 대해 인증되도록합니다.


-2

이 메시지를받을 때마다 어떤 것이 효과가 있는지 알려 드리겠습니다. 메모장에서 텍스트로 CSV 파일을 열고 파일의 모든 공백 줄을 삭제하면 Excel 파일에서 해당 빈 줄을 볼 수 없습니다. 일반적으로 비어 있지만 표시되는 것처럼 보이는 마지막 줄


같은 오류입니까?
dezso

이것은 액세스 거부 오류와 관련이 없습니다. 파일 형식 오류 만 수정합니다.
Julien Vavasseur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.