Tôi có một cặp nút Microsoft SQL Server 2016 trong Nhóm Luôn sẵn sàng. Tôi đang cố gắng thực hiện BULK INSERT
(sử dụng truy vấn SQL Server 2016 Management Studio) trên một tệp nằm trong Cụm chuyển đổi dự phòng máy chủ Windows Server 2016, nhưng tôi gặp phải lỗi sau:
Msg 4861, Cấp 16, Trạng thái 1
Không thể tải hàng loạt vì không thể mở tệp "\ Nas2.my.domain \ Microsoft SQL Server 2016 Enterprise \ test.txt". Mã lỗi hệ điều hành 5 (Truy cập bị từ chối.).
Điều này sẽ xảy ra bất kể tôi sử dụng tên nút hoạt động ( nas2.my.domain
) hay trình nghe cụm chuyển đổi dự phòng ( nas.my.domain
).
Sau khi nhìn xung quanh tôi phát hiện ra điều này là do SQL Server không thể mạo danh tài khoản người dùng mà tôi được kết nối do các sắc thái với BULK INSERT
.
Nếu bạn kết nối với Máy chủ SQL bằng Xác thực Windows, tài khoản dịch vụ SQL Server sẽ cố gắng mạo danh tài khoản người dùng của bạn khi kết nối với máy chủ tệp. Nếu bạn kết nối bằng xác thực Máy chủ SQL, nó sẽ kết nối với máy chủ tệp dưới dạng tài khoản dịch vụ SQL Server.
Nếu ủy quyền và mạo danh không được cấu hình đúng (trạng thái mặc định), dịch vụ SQL Server sẽ không thể mạo danh tài khoản người dùng của bạn và sẽ quay lại cố gắng kết nối với máy chủ tệp dưới dạng người dùng ẩn danh.
Điều này có thể được xác nhận bằng cách xem qua nhật ký sự kiện bảo mật trên máy chủ tệp. Những sự thật này cùng với hướng dẫn về cách định cấu hình ủy quyền không bị ràng buộc và bị ràng buộc được ghi lại trong các liên kết sau:
Tôi đã thử làm theo các hướng dẫn trong hướng dẫn của thesqldude nhưng nó vẫn không hoạt động.
Cơ sở dữ liệu mà tôi đang cố gắng BULK INSERT
không phải là một phần của nhóm khả dụng nên chỉ có nút MSSQL1 mới phù hợp. Máy chủ tệp đã hoạt động trên nút NAS2. Kiểm tra nhật ký sự kiện trên máy chủ tệp cho thấy nó vẫn đang gặp phải vấn đề này và SQL Server đang cố xác thực máy chủ tệp với tư cách là người dùng ẩn danh thay vì mạo danh tài khoản người dùng của tôi.
Có ai biết những gì đang xảy ra sai? Hoặc nếu có gì đó thay đổi trong SQL Server 2016 để làm cho các hướng dẫn này trở nên lỗi thời?
- Nhật ký sự kiện bảo mật máy chủ
- Đoàn tài khoản dịch vụ
- Tài khoản dịch vụ SPN
- SQL Server # 1 Đoàn tài khoản máy tính
- Máy chủ tệp số 2 SPN tài khoản máy tính
- Đối tượng chính sách nhóm
sys.dm_exec_connections
- Kerberos
Tôi có thể xác nhận rằng GPO này đã được áp dụng cho MSSQL1 thông qua gpresult.exe /R
và cả hai nút SQL và File Server đã được khởi động lại sau đó để đảm bảo mọi bộ đệm đã được xóa.