Always On 가용성 그룹에 Microsoft SQL Server 2016 노드 쌍이 있습니다. BULK INSERTWindows Server 2016 파일 서버 장애 조치 (Failover) 클러스터에있는 파일 에서 (SQL Server 2016 Management Studio 쿼리 사용) 을 수행하려고 하는데 다음 오류가 발생합니다.
메시지 4861, 수준 16, 상태 1
"\ nas2.my.domain \ Microsoft SQL Server 2016 Enterprise \ test.txt"파일을 열 수 없으므로 대량로드 할 수 없습니다. 운영 체제 오류 코드 5 (액세스가 거부되었습니다.).
활성 노드 이름 ( nas2.my.domain) 또는 장애 조치 클러스터 리스너 ( nas.my.domain)를 사용하는지 여부에 관계없이 발생 합니다 .
둘러 본 후 이것은 SQL Server가와의 뉘앙스로 인해 연결된 사용자 계정을 가장 할 수 없기 때문이라는 것을 알았습니다 BULK INSERT.
Windows 인증을 사용하여 SQL Server에 연결하면 SQL Server 서비스 계정이 파일 서버에 연결할 때 사용자 계정을 가장하려고합니다. SQL Server 인증을 사용하여 연결하면 파일 서버에 SQL Server 서비스 계정으로 연결됩니다.
위임 및 가장이 제대로 구성되지 않은 경우 (기본 상태) SQL Server 서비스는 사용자 계정을 가장 할 수 없으며 익명 사용자로 파일 서버에 연결하려고합니다.
파일 서버의 보안 이벤트 로그를 통해 확인할 수 있습니다. 제한되지 않고 제한 위임을 구성하는 지침과 함께 이러한 사실은 다음 링크에 문서화되어 있습니다.
sqldude 의 가이드 의 지침을 따르 려고 했지만 여전히 작동하지 않습니다.
내가 시도하는 데이터베이스 BULK INSERT는 가용성 그룹의 일부가 아니므로 MSSQL1 노드 만 관련되어야합니다. 파일 서버가 NAS2 노드에서 활성화되었습니다. 파일 서버에서 이벤트 로그를 확인하면 여전히이 문제가 발생하고 있으며 SQL Server가 내 사용자 계정을 가장하는 대신 익명 사용자로 파일 서버를 인증하려고 시도하고 있음을 나타냅니다.
아무도 무엇이 잘못되고 있는지 알고 있습니까? 또는이 가이드를 더 이상 사용하지 않기 위해 SQL Server 2016에서 변경된 사항이 있습니까?
- 파일 서버 보안 이벤트 로그 항목
- 서비스 계정 위임
- 서비스 계정 SPN
- SQL Server # 1 컴퓨터 계정 위임
- 파일 서버 # 2 컴퓨터 계정 SPN
- 그룹 정책 개체
sys.dm_exec_connections-Kerberos
이 GPO가를 통해 MSSQL1에 적용되었음을 확인할 수 있으며 gpresult.exe /R, 캐시가 플러시되도록 SQL 및 파일 서버 노드가 모두 재부팅되었습니다.